apache camel
时不时地,我会以Camel速度较慢的观点来询问有关优化Camel应用程序的问题。 骆驼只是连接不同系统的粘合剂,路由引擎全部在内存中,并且不需要任何持久状态。 因此,在99%的情况下,性能问题是由于其他系统的瓶颈所致 ,或者是在没有性能考虑的情况下完成了应用程序设计。 如果真是这样,那么进一步调整Camel并没有太大的作用,您必须回到绘图板上。 但是有时候,从您的骆驼路线中挤出几毫秒可能是值得的。 调整每个应用程序非常具体,并且取决于技术和用例。 这里有一些关于调整基于骆驼的系统的想法,这些想法可能适用于您(或不适用)。
端点调整
Camel中的端点是与其他系统的集成点,它们的配置方式将对系统的性能产生巨大影响。 了解不同端点的工作方式并对其进行调整应该是最开始的地方之一。 以下是一些示例:
- 消息传递 –如果您的Camel应用程序正在使用消息传递,则总体性能将在很大程度上取决于消息传递系统的性能。 这里有太多因素需要考虑,但主要因素有:
-
- 消息代理 –网络和磁盘速度以及代理拓扑将决定代理性能。 为了给您一个想法,使用ActiveMQ,基于关系数据库的持久性存储将执行约50%的基于文件的存储,而使用代理网络进行水平扩展将花费另外30%的性能。 令人惊讶的是,ActiveMQ中的一项配置更改如何对消息传递系统以及Camel应用程序产生巨大影响。 必须阅读Red Hat的ActiveMQ 调优指南 ,其中包含许多要考虑和评估的细节。 克里斯蒂安·波斯塔 ( Chrisitan Posta)的一个真实示例也展示了在某些情况下如何使经纪人加速25倍 。
- 消息客户端 –如果将性能放在首位,则还可以在ActiveMQ客户端上进行一些黑客操作,例如:增加TCP socketBufferSize和ioBufferSize,调整OpenWire协议参数,使用消息压缩,批处理确认 与optimizeAcknowledge,异步发送与useAsyncSend&#x