Set up a working directory:
cd /tmp
rm -rf stream-load-balancer
mkdir stream-load-balancer
cd stream-load-balancerdocker-compose configuration to create 3-node RabbitMQ cluster with haproxy in front of it:
Set up a working directory:
cd /tmp
rm -rf stream-load-balancer
mkdir stream-load-balancer
cd stream-load-balancerdocker-compose configuration to create 3-node RabbitMQ cluster with haproxy in front of it:
| for (String dc : new String[] {"us", "europe", "asia"}) { | |
| CompositeMeterRegistry compositeMeterRegistry = new CompositeMeterRegistry(); | |
| MeterRegistry datadogRegistry = new DatadogMeterRegistry(config, Clock.SYSTEM); | |
| MeterRegistry jmxRegistry = new JmxMeterRegistry(JmxConfig.DEFAULT, Clock.SYSTEM); | |
| Tags tags = Tags.of("host", hostname, "dc", dc); | |
| new ClassLoaderMetrics(tags).bindTo(compositeMeterRegistry); | |
| new JvmMemoryMetrics(tags).bindTo(compositeMeterRegistry); | |
| new JvmGcMetrics(tags).bindTo(compositeMeterRegistry); | |
| new ProcessorMetrics(tags).bindTo(compositeMeterRegistry); |
| for (String dc : new String[] {"us", "europe", "asia"}) { | |
| Tags tags = Tags.of("host", hostname, "dc", dc); | |
| MeterRegistry jmxRegistry = new JmxMeterRegistry(JmxConfig.DEFAULT, Clock.SYSTEM); | |
| new ClassLoaderMetrics(tags).bindTo(jmxRegistry); | |
| new JvmMemoryMetrics(tags).bindTo(jmxRegistry); | |
| new JvmGcMetrics(tags).bindTo(jmxRegistry); | |
| new ProcessorMetrics(tags).bindTo(jmxRegistry); | |
| new JvmThreadMetrics(tags).bindTo(jmxRegistry); | |
| ConnectionFactory connectionFactory = new ConnectionFactory(); | |
| MicrometerMetricsCollector metricsCollector = new MicrometerMetricsCollector( |
| MeterRegistry jmxRegistry = new JmxMeterRegistry(JmxConfig.DEFAULT, Clock.SYSTEM); | |
| // JVM and system metrics: | |
| new ClassLoaderMetrics().bindTo(jmxRegistry); | |
| new JvmMemoryMetrics().bindTo(jmxRegistry); | |
| new JvmGcMetrics().bindTo(jmxRegistry); | |
| new ProcessorMetrics().bindTo(jmxRegistry); | |
| new JvmThreadMetrics().bindTo(jmxRegistry); | |
| ConnectionFactory connectionFactory = new ConnectionFactory(); | |
| MicrometerMetricsCollector metricsCollector = new MicrometerMetricsCollector( | |
| jmxRegistry, "rabbitmq.client" |
| MeterRegistry jmxRegistry = new JmxMeterRegistry(JmxConfig.DEFAULT, Clock.SYSTEM); | |
| ConnectionFactory connectionFactory = new ConnectionFactory(); | |
| MicrometerMetricsCollector metricsCollector = new MicrometerMetricsCollector( | |
| jmxRegistry, "rabbitmq.client" | |
| ); | |
| connectionFactory.setMetricsCollector(metricsCollector); | |
| Connection connection = connectionFactory.newConnection(); | |
| Channel channel = connection.createChannel(); | |
| String queue = channel.queueDeclare().getQueue(); |