RabbitMQ-Java客户端API指南-下
来源:互联网 发布:用友软件销售 编辑:程序博客网 时间:2024/06/15 21:17
RabbitMQ-Java客户端API指南-下
使用主机列表
可以将Address数组传递给newConnection()。的地址是简单地在一个方便的类com.rabbitmq.client包与主机 和端口组件。
例如:
Address[] addrArr = new Address[]{ new Address(hostname1, portnumber1), new Address(hostname2, portnumber2)};Connection conn = factory.newConnection(addrArr);
使用AddressResolver接口进行服务发现
从版本3.6.6开始,可以让AddressResolver的实现 在创建连接时选择连接的位置:
Connection conn = factory.newConnection(addressResolver);public interface AddressResolver { List<Address> getAddresses() throws IOException;}
就像主机列表一样,返回的第一个地址将首先被尝试,如果客户端无法连接到第一个地址,则返回第二个,依此类推。
从网络故障中自动恢复
连接恢复
ConnectionFactory factory = new ConnectionFactory();factory.setUsername(userName);factory.setPassword(password);factory.setVirtualHost(virtualHost);factory.setHost(hostName);factory.setPort(portNumber);factory.setAutomaticRecoveryEnabled(true);// connection that will recover automaticallyConnection conn = factory.newConnection();
如果由于异常而导致恢复失败(例如,RabbitMQ节点仍然无法访问),则会在固定的时间间隔(默认值为5秒)后重试。间隔可以配置:
ConnectionFactory factory = new ConnectionFactory();// attempt recovery every 10 secondsfactory.setNetworkRecoveryInterval(10000);
当提供地址列表时,列表被混洗,并且所有地址在下一个地方被尝试:
ConnectionFactory factory = new ConnectionFactory();Address[] addresses = {new Address("192.168.1.4"), new Address("192.168.1.5")};factory.newConnection(addresses);
指标和监测
从版本4.0.0开始,客户端收集运行时指标(例如已发布消息的数量)。度量标准集合是可选的,并使用setMetricsCollector(metricsCollector)方法在ConnectionFactory级别进行设置 。此方法需要一个MetricsCollector实例,在客户端代码的多个位置调用该实例。
客户端支持 Micrometer (截至版本4.3)和 Dropwizard Metrics 开箱即用。
以下是收集的指标:
打开连接的数量
开放频道的数量
已发布消息的数量
消耗的消息数量
已确认消息的数量
被拒绝的邮件数量
Micrometer和Dropwizard Metrics都提供计数,但也包括平均速率,最后五分钟速率等,用于与消息相关的指标。他们还支持通用的监控和报告工具(JMX,Graphite,Ganglia,Datadog等)。
Micrometer支持
ConnectionFactory connectionFactory = new ConnectionFactory();MicrometerMetricsCollector metrics = new MicrometerMetricsCollector();connectionFactory.setMetricsCollector(metrics);...metrics.getPublishedMessages(); // get Micrometer's Counter object
支持 多种报告后端:Netflix Atlas,Prometheus,Datadog,Influx,JMX等
您通常会将MeterRegistry的一个实例传递 给MicrometerMetricsCollector。这里是JMX的一个例子:
JmxMeterRegistry registry = new JmxMeterRegistry();MicrometerMetricsCollector metrics = new MicrometerMetricsCollector(registry);ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setMetricsCollector(metrics);
Dropwizard Metrics支持
ConnectionFactory connectionFactory = new ConnectionFactory();StandardMetricsCollector metrics = new StandardMetricsCollector();connectionFactory.setMetricsCollector(metrics);...metrics.getPublishedMessages(); // get Metrics' Meter object
支持 多种报告后端:Netflix Atlas,Prometheus,Datadog,Influx,JMX等
您通常会将MetricsRegistry的一个实例传递 给StandardMetricsCollector。这里是JMX的一个例子:
MetricRegistry registry = new MetricRegistry();StandardMetricsCollector metrics = new StandardMetricsCollector(registry);ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setMetricsCollector(metrics);JmxReporter reporter = JmxReporter .forRegistry(registry) .inDomain("com.rabbitmq.client.jmx") .build();reporter.start();
- RabbitMQ-Java客户端API指南-下
- RabbitMQ Java客户端API指南
- RabbitMQ的Java客户端API指南
- RabbitMQ-Java客户端API指南-上
- Java客户端API指南
- Sqoop2 Java客户端API指南
- Sqoop2 Java客户端API指南
- RabbitMQ的java客户端API使用文档中文版
- RabbitMQ指南(下)
- RabbitMQ指南(Java)
- RabbitMQ java API中文翻译
- rabbitmq java api原版
- RabbitMQ 入门指南(Java)
- RabbitMQ 入门指南(Java)
- RabbitMQ 入门指南(Java)
- RabbitMQ 入门指南(Java)
- RabbitMQ 入门指南(Java)
- rabbitmq学习(java客户端)
- Java语言的一些小总结
- RabbitMQ磁盘警报
- angular 全选 全删 修改 排序
- 移动端常见问题总结
- RabbitMQ-Java客户端API指南-上
- RabbitMQ-Java客户端API指南-下
- RabbitMQ吞吐量测试-PerfTest上
- kafka-0.9消费者新API
- RabbitMQ高可用镜像队列
- 机器学习笔记(X)线性模型(VI)类别不平衡问题
- 我国 I T 企业是如何吸引风险投资
- 基础数据结构
- okhttp的二次封装
- 不爱学习的小W hnust