1212import io .scalecube .cluster .metadata .MetadataCodec ;
1313import io .scalecube .cluster .metadata .MetadataStore ;
1414import io .scalecube .cluster .metadata .MetadataStoreImpl ;
15- import io .scalecube .cluster .monitor .ClusterMonitorMBean ;
16- import io .scalecube .cluster .monitor .ClusterMonitorModel ;
17- import io .scalecube .cluster .monitor .JmxClusterMonitorMBean ;
1815import io .scalecube .cluster .transport .api .Message ;
1916import io .scalecube .cluster .transport .api .Transport ;
2017import io .scalecube .cluster .transport .api .TransportConfig ;
2118import io .scalecube .cluster .transport .api .TransportFactory ;
2219import io .scalecube .net .Address ;
2320import io .scalecube .utils .ServiceLoaderUtil ;
2421import java .io .Serializable ;
25- import java .lang .management .ManagementFactory ;
2622import java .nio .ByteBuffer ;
2723import java .util .Collection ;
2824import java .util .Collections ;
3632import java .util .regex .Pattern ;
3733import java .util .stream .Collectors ;
3834import java .util .stream .Stream ;
39- import javax .management .MBeanServer ;
40- import javax .management .ObjectName ;
41- import javax .management .StandardMBean ;
4235import org .slf4j .Logger ;
4336import org .slf4j .LoggerFactory ;
4437import reactor .core .Disposable ;
4538import reactor .core .Disposables ;
46- import reactor .core .Exceptions ;
4739import reactor .core .publisher .Flux ;
4840import reactor .core .publisher .Mono ;
4941import reactor .core .publisher .Sinks ;
@@ -73,8 +65,6 @@ public final class ClusterImpl implements Cluster {
7365 private static final Set <String > SYSTEM_GOSSIPS =
7466 Collections .singleton (MembershipProtocolImpl .MEMBERSHIP_GOSSIP );
7567
76- private volatile String jmxBeanName = null ;
77-
7868 private ClusterConfig config ;
7969 private Function <Cluster , ? extends ClusterMessageHandler > handler =
8070 cluster -> new ClusterMessageHandler () {};
@@ -100,7 +90,6 @@ public final class ClusterImpl implements Cluster {
10090 private MembershipProtocolImpl membership ;
10191 private MetadataStore metadataStore ;
10292 private Scheduler scheduler ;
103- private ClusterMonitorModel .Builder monitorModelBuilder ;
10493
10594 public ClusterImpl () {
10695 this (ClusterConfig .defaultConfig ());
@@ -255,7 +244,6 @@ private Mono<Cluster> doStart0() {
255244 transport = new SenderAwareTransport (boundTransport , localMember .address ());
256245
257246 scheduler = Schedulers .newSingle ("sc-cluster-" + localMember .address ().port (), true );
258- monitorModelBuilder = new ClusterMonitorModel .Builder ();
259247
260248 failureDetector =
261249 new FailureDetectorImpl (
@@ -285,8 +273,7 @@ private Mono<Cluster> doStart0() {
285273 gossip ,
286274 metadataStore ,
287275 config ,
288- scheduler ,
289- monitorModelBuilder );
276+ scheduler );
290277
291278 actionsDisposables .add (
292279 // Retransmit inner membership events to public api layer
@@ -304,7 +291,6 @@ private Mono<Cluster> doStart0() {
304291 .then (Mono .fromRunnable (() -> metadataStore .start ()))
305292 .then (Mono .fromRunnable (this ::startHandler ))
306293 .then (membership .start ())
307- .then (Mono .fromRunnable (this ::startJmxMonitor ))
308294 .then ();
309295 })
310296 .doOnSubscribe (s -> LOGGER .info ("[{}][doStart] Starting, config: {}" , localMember , config ))
@@ -360,33 +346,6 @@ private void startHandler() {
360346 ex -> LOGGER .error ("[{}][onGossip][error] cause:" , localMember , ex )));
361347 }
362348
363- private void startJmxMonitor () {
364- ClusterMonitorModel monitorModel = monitorModelBuilder .config (config ).cluster (this ).build ();
365- JmxClusterMonitorMBean monitorMBean = new JmxClusterMonitorMBean (monitorModel );
366- try {
367- StandardMBean standardMBean = new StandardMBean (monitorMBean , ClusterMonitorMBean .class );
368- MBeanServer server = ManagementFactory .getPlatformMBeanServer ();
369- String beanName = "io.scalecube.cluster:name=" + member ().id () + "@" + System .nanoTime ();
370- jmxBeanName = beanName ;
371- ObjectName objectName = new ObjectName (beanName );
372- server .registerMBean (standardMBean , objectName );
373- } catch (Exception ex ) {
374- throw Exceptions .propagate (ex );
375- }
376- }
377-
378- private void stopJmxMonitor () {
379- String beanName = jmxBeanName ;
380- if (beanName != null ) {
381- try {
382- MBeanServer server = ManagementFactory .getPlatformMBeanServer ();
383- server .unregisterMBean (new ObjectName (beanName ));
384- } catch (Exception ex ) {
385- throw Exceptions .propagate (ex );
386- }
387- }
388- }
389-
390349 private Flux <Message > listenMessage () {
391350 // filter out system messages
392351 return transport .listen ().filter (msg -> !SYSTEM_MESSAGES .contains (msg .qualifier ()));
@@ -515,7 +474,6 @@ private Mono<Void> doShutdown() {
515474 () -> {
516475 LOGGER .info ("[{}][doShutdown] Shutting down" , localMember );
517476 return Flux .concatDelayError (leaveCluster (), dispose (), transport .stop ())
518- .then (Mono .fromRunnable (this ::stopJmxMonitor ))
519477 .then ()
520478 .doFinally (s -> scheduler .dispose ())
521479 .doOnSuccess (avoid -> LOGGER .info ("[{}][doShutdown] Shutdown" , localMember ));
0 commit comments