集星獭 | 服务编排驱动的高并发处理探秘

35 阅读5分钟

概要介绍 introduction

服务编排是集星獭内置的高可用、易扩展的可视化流程任务调度模块。适用于流程化、即时或定时的任务调度,数据异构任务之间的适配打通,流程任务依赖及数据传递等,作为集成平台重要且不可或缺的一环,是驱动业务流、数据流的核心组成部分。

服务编排本身是提供高性能保障的,但是由于流程图是可以灵活配置的,可能会存在某些原因(流程的不合理配置、某些外部组件的不合理使用)导致流程处理效率变慢。

本文将以客户的高并发kafka订单处理调优场景为例,通过实践的方式带领大家如何进行流程性能优化。

高并发kafka订单处理

客户需求如以下流程图所示,从kafka中接收订单,解析订单作相应的处理后入库,需要在10分钟内处理10万条订单。

该流程中,每条kafka消息对应一条订单,每条订单的报文大小为21KB,需要分别插入到PG数据库的7张表中。这些表存在多层主从关系,流程较为复杂,本身耗时较长。

优化前,kafka消息是单条消费的,这也是处理效率低的根本原因,在10分钟内只能处理6400条订单。

针对该流程,作了以下优化措施:

流程图配置优化

针对流程性能优化的场景,首先需要考虑的是流程图本身能否优化。在此次场景中,原流程图作了以下优化:

  • 替换耗时节点,在满足原功能基础上,用耗时短的节点去替换耗时长的节点
  • 串行操作尽量改造为并行操作
  • 减少不必要节点,合并操作

kafka应用配置优化

原kafka配置是逐条消息消费的,这就极大地限制了处理效率。通过测试发现,kafka的分区数和并发消费数量存在一定关系,并且通过合适的配置能够提升消息的消费速度。其中并发消费数量不宜过大,其与CPU核心数有关,过大反而导致消费速度下降。下图是并发消费数量和订单处理量的关系。

调整kafka的topic分区数。

调整kafka的并发消费数量。

经过上述优化,该流程在10分钟内最大的订单处理量为7万。

水平扩展消费实例

服务编排其中一个优势就是具备水平扩展能力,即通过增加服务器节点的方式来提升系统处理能力。

本次优化额外增加一个服务器节点来水平扩展kafka订单的处理能力,运行编排定义时只需要在工作组中选择对应的服务器节点即可(本次流程选择的是default和worker006)。

经过水平扩展服务器节点后,即在两台服务器上10分钟最大的订单处理量为13万。

调优总结

本次性能瓶颈其实是和kafka的消费速度有关,服务编排本身的处理效率是很高的,基本上都是毫秒级的处理速度,因此只需要提升kafka消费速度即可提升处理效率。而kafka的消费速度是和服务器的核心数有关,这就需要寻找两者之间的平衡,找到最优的并发消费数量来提升处理效率。

回顾上述kafka订单的高并发处理优化过程,是没有任何代码优化的,都是通过应用的参数调优实现的,具备一定的普遍性。关于此类的高并发处理优化,可总结为以下几点:

1 流程图配置优化。尽量使用耗时低的节点、尽量使用并行流程、尽量合并节点。

2 kafka配置参数优化。主要是分区数和并发消费数量的合理配置,需要根据服务器的核心数来寻找最优配置,一般比核心数稍大。

3 水平扩展服务器节点。在单节点处理能力优化达到最大时,可通过增加服务器节点的方式来提升系统处理能力。

结语 conclusion

通过服务编排,我们能够充分发挥想象力和创造力,不仅是功能上的创造性实现,而且还能突破性能瓶颈,创造出独特的解决方案,实现无限的可能。

汉得企业级系统集成平台(中文名集星獭,英文名JeeStar),是一站式多系统集成、多云集成、多端集成、多协议集成、多设备集成、数据集成、页面集成的全域集成解决方案。集成平台沉淀了汉得多年ToB项目实施的系统集成经验,在消除企业信息孤岛、数据孤立、打通多源多端的数据断链及混合云对接等场景中提供了高效便捷的功能及策略方案。

联系我们

1.  如果您想了解集星獭更详细的功能介绍和产品信息,请查阅我们的产品文档。

移动端 👉:集星獭产品文档

PC端   👉:

open.hand-china.com/document-ce…


2.  如果您有疑问或者建议,可以通过开放平台进行工单反馈,问题分类请选择【产品/集星獭JeeStar】  👉  

https://open.hand-china.com


3.  相关产品咨询或更多信息了解,欢迎联系我们

邮箱:jeestar@sys.hand-china.com

转存失败,建议直接上传图片文件