ActiveMQ详细配置方案

简介: 本文总结ActiveMQ重要的一些配置,包括高可用failover配置、消息策略等。

一、高可用Failover配置

failover:(uri,...,urlN)?transportOptions负载均衡,默认使用随机的uri进行连接,可以在多个broker中达到负载均衡的效果,有两种方式:

  • failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false默认优先使用primary,只有当primary机器掉线之后,会自动转移到secondary,但是当primary又重新恢复之后,不会自动切换会primary。
  • failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false&priorityBackup=true默认优先使用primary,只有当primary机器掉线之后,会自动转移到secondary,但是当primary又重新恢复之后,又会自动切换回primary。


以上两种方式都会存在一个问题,就是当切换到备用机之后,主机器还可能遗留一些未处理的数据,为了解决这个问题,可以在集群之间搭建一个network,这样子数据可以在多个broker之间流转。


二、消息策略配置

  • 禁掉scheduler功能
<broker>节点增加schedulerSupport="false"</broker>
  • 配置按照顺序分发策略
<dispatchPolicy><!--按顺序分发--><strictOrderDispatchPolicy/></dispatchPolicy>
  • 配置恢复策略
<subscriptionRecoveryPolicy><!--只恢复最后一个message--><lastImageSubscriptionRecoveryPolicy/></subscriptionRecoveryPolicy>
  • 配置networkConnector
<networkConnectors><networkConnectoruri="static:(tcp://127.0.0.1:61617,tcp://127.0.0.1:61616)"/></networkConnectors>
  • 配置消息回流到broker
<destinationPolicy><policyMap><policyEntries><policyEntryqueue="test.>"enableAudit="false"><networkBridgeFilterFactory><conditionalNetworkBridgeFilterFactoryreplayWhenNoConsumers="true"/></networkBridgeFilterFactory><pendingMessageLimitStrategy><constantPendingMessageLimitStrategylimit="1000"/></pendingMessageLimitStrategy></policyEntry></policyEntries></policyMap></destinationPolicy>

三、权限配置

  • 配置用户名密码
<beanid="securityConstraint"class="org.eclipse.jetty.http.security.Constraint"><propertyname="name"value="BASIC"/><propertyname="roles"value="admin"/><propertyname="authenticate"value="false"/></bean>

四、发送方式配置

  • 同步发送
failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false&jms.useAsyncSend=false&priorityBackup=true
  • 异步发送
failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false&jms.useAsyncSend=true&priorityBackup=true
相关文章
|
消息中间件 Java
ActiveMQ调优方案
讨论ActiveMQ性能调优的方向,提供调优参考。
773 0
|
消息中间件 前端开发 网络性能优化
基于RabbitMQ的MQTT实现
基于RabbitMQ的MQTT实现
976 0
|
JavaScript 前端开发
layui实现点击按钮全屏
layui实现点击按钮全屏
621 0
|
监控 安全 API
Elasticsearch实例磁盘占用率高排查及解决
开源 ES 实例健康状态 首先,先介绍下开源 Elasticsearch 的三种健康状态:绿色、黄色和红色。 在分片层面, 绿色:所有的主分片和副本分片都已分配。你的集群是 100% 可用的。 黄色:所有主分片都已经分配,但至少有一个副本分片未被分配。
9176 0
|
消息中间件 Java 调度
消息队列 MQ使用问题之消费者自动掉线是什么导致的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
存储 自然语言处理 Java
Elasticsearch常见错误及如何排查错误
Elasticsearch常见错误及如何排查错误
884 0
|
开发者 C# UED
WPF多窗口应用程序开发秘籍:掌握窗口创建、通信与管理技巧,轻松实现高效多窗口协作!
【8月更文挑战第31天】在WPF应用开发中,多窗口设计能显著提升用户体验与工作效率。本文详述了创建新窗口的多种方法,包括直接实例化`Window`类、利用`Application.Current.MainWindow`及自定义方法。针对窗口间通信,介绍了`Messenger`类、`DataContext`共享及`Application`类的应用。此外,还探讨了布局控件与窗口管理技术,如`StackPanel`与`DockPanel`的使用,并提供了示例代码展示如何结合`Messenger`类实现窗口间的消息传递。总结了多窗口应用的设计要点,为开发者提供了实用指南。
951 0
|
SpringCloudAlibaba 监控 Java
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
|
安全 前端开发 PHP
Upload-labs 通关解析(上)
Upload-labs 靶场通关解析(上)
|
存储 缓存 NoSQL
Redis分片(分布式缓存)
分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集. 1 分片何用 Redis 的分片承担着两个主要目标: 允许使用很多电脑的内存总和来支持更大的数据库。
8514 0