设计方案架构&服务端

ESB架构,从支撑几千到百万订单的优化过程

2020-08-19  本文已影响0人  小石桥胡同

ESB架构,从支撑几千到百万订单的优化过程

背景说明

2016年左右是SAAS快速发展的阶段,公司转型SAAS业务,变成了风口的猪,业务快速发展,同时也避免不了互联网公司的发展初期的痛点,技术严重拖了业务发展的后腿,几千的订单数已经让系统不堪重负,三天一个小故障,五天一个大故障,系统基本处于不可用的状态。没有监控系统,基本都是客户发现问题电话打过来了,才知道系统出问题了。

公司的技术栈是JAVA,基于一个国外比较流行,国内比较冷门的开源ESB框架"Mule"来开发,当时公司决定做技术转型,将ESB往微服务转,同时选择GRPC作为微服务的开发框架。

当时面临的问题是该领域的SAAS服务业务逻辑非常复杂,整个老的代码已经沉淀了一段时间,往新的框架迁移的时间周期比较长,所以老的代码还需要继续支撑一段很长的时间,但是业务量又高速发展,所以需要针对老的代码做性能优化,能够支撑到新的框架能够上线

架构介绍

What is Mule ESB?

Mule, the runtime engine of Anypoint Platform, is a lightweight Java-based enterprise service bus (ESB) and integration platform that allows developers to connect applications together quickly and easily, enabling them to exchange data. It enables easy integration of existing systems, regardless of the different technologies that the applications use, including JMS, Web Services, JDBC, HTTP, and more. The ESB can be deployed anywhere, can integrate and orchestrate events in real time or in batch, and has universal connectivity.

what-mule-esb.png

框架数据流转

数据流转.png

服务部署架构图

服务的部署主要是按照粗粒度的系统功能做了集群的划分:定时任务主要是


mule.png

主要是面向对外的服务,流量较大,SLA要求比较高,出问题概率也比较高,系统故障的容忍度低

优化过程

监控报警

最开始没有监控报警,服务挂掉全是靠客户的电话才能知道,那么首先就是构建监控报警系统,基于小米开源的Open-Falcon构建了最早的监控报警系统,然后开始分析整个Mule开发框架的问题,通过分析部署图和Mule的框架可以得出,出问题最直接的表象,队列阻塞和队列的consumer数量异常,那么就是基于这个来实现一个报警。

Mule基于ActiveMQ来作为自己的数据总线,ActiveMQ是一个典型的AMQ,类似于RabbitMQ、RocketMQ,都有自己的admin管理页面或者api接口,那么就是基于admin-api来操作,由于ActiveMQ产品比较老,很多的协议还是基于XML,那么就是通过接口获取队列的stat信息,然后分析队列的消息数量和consumer数量来触发报警,Open-Falcon的开放性非常强,只需要写一个plugin就可以实现自己需要定制化报警

ActiveMQ.png

其中queues/queue/stats/size队列为消费的堆积消息数;queues/queue/stats/consumerCount是消费者的数量。消费者消息规定的数报警、消息对接数量过多报警;

故障分析

通过流量分析和故障检测,发现两个点是主要的瓶颈点

处理措施

总结

题外话

MuleSoft公司成立于2006年,最初是实现一个ESB的开发框架并开源,框架的名字命名为"Mule",由于单纯通过框架和服务支持很难盈利;

2009年在新CEO加入以后,开始转型,并构建一个名为"Anypoint"的云平台,平台打通了数千个SAAS服务平台,并将服务通过API接口的方式暴露给用户,用户可以在Anypoint上边按照自己的业务场景和依赖的三方SAAS平台,组装自己的自定义业务,可以说Anypoint是对于ESB的上层抽象,将SAP、NetSuite、Salesforce等三方SAAS服务当做企业的应用,Anypoint就是连接SAAS服务的数据总线,同时用户可以基于Anypoint的编排能力用最低的代价实现自己的业务,大量的减少了IT的投入成本。用当前比较流行的概念来说,Anypoint就是一个通用的业务中台,也是一个有业务编排能力的低代码平台。

也正是得益于MuleSoft的转型和在云服务的优秀表现,2018年被Salesforce用65亿美元的价格收购,彻底逆袭。

从MuleSoft的成功我们也能看到,对于计算机和软件体系,任何概念和理论都是互通的,都是可以借鉴并发展的,同时需要有一个明确的可以落地的方向,沿着方向持续的走下去。

上一篇 下一篇

猜你喜欢

热点阅读