ActiveMQ 中的性能优化主要包括:
1、 调整内存参数:
- activemq.broker.useJmx(true):开启JMX监控,监控Broker性能。
- activemq.gc.interval(10000):设置垃圾回收频率,默认30秒。
- activemq.broker.store.limit(100):Tmp文件同步频率,默认600毫秒。
2、 调整线程参数:
- activemq.broker.taskRunnerPriority(1):任务执行线程优先级。
- activemq.broker.maxThreads(3000):Broker最大线程数。
- activemq.broker.dedicatedTaskRunner(true):使用独立线程池执行任务。
3、 优化网络参数:
- activemq.transport.defaultNioBufferSize(703860):TCP缓冲区大小,默认670KB。
- activemq.transport.defaultTcpNoDelay(true):设置TCP_NODELAY,默认true。
- activemq.transport.useEpoll(true):Linux系统使用Epoll I/O模型,默认true。
4、 优化持久化方式:
- 使用KahaDB+索引: förder文件读写效率更高。
- 启用Journaled消息和索引预加载:减少消费过程中对消息文件的访问。
- 使用预创建策略:避免消息生成时创建文件和索引。
- 存储跟踪整合事件:减少保存点文件大小,优化恢复性能。
5、 优化Broker连接端点配置:
- 使用少量的Broker连接端点:避免消费者连接到每个Broker实例。
- 使用代理连接端点和目标地址:进行TCP连接聚合。
6、 优化消费者并发度:
- consumer.dispatchAsync(true):设置为异步调度消费,默认true。
- activemq.prefetchPolicy.queuePrefetch(1):设置每个消费者的预取消息数,默认1000。
7、 启用消息压缩:
compressLargeMessages(true) :启用 > 250KB 消息压缩。
ActiveMQ 的性能优化涉及到许多参数的调整,要根据服务器配置和业务需求进行综合判断。