在交付过程中,很多项目可能会存在大量的与第三方其他系统的集成,存在相互之间数据同步的问题,你是否存在遇到大量系统集成时不知道如何来规划和部署的困境?是否存在因为部署不合理或者集成方式不合理造成的性能瓶颈呢?下面就结合实际支持过的项目案例来分享一下如何做好多系统集成的环境规划和部署,解决性能瓶颈能帮助到更多的项目。
(一)项目背景:
由于特殊原因客户购买了两家供应商的产品。
(1) 客户购买了金蝶云星空供应链、财务、生产制造及另外一家供应商的资金支付、费用报销、司库管理模块,另外一家供应商的凭证需要统一同步到金蝶云星空制证,付款时金蝶需要将付款单推送到另外一家供应商进行支付。
(2) 该项目由多家实施伙伴及一家开发伙伴进行交付,其中财务模块有自己的实施人员交付
(3) 开发伙伴使用了自己的集成开发平台工具来集中处理集成,实现方式是集成平台定期去抓星空ERP系统的数据或者定期通过接口调用另外一家财务系统供应商的数据,然后形成任务,定期推送到对方的系统,使用事务的方式。
(二)事故描述:
支付事故1:
现场10.25反馈出现系统卡顿,从下午3点、晚上9点监控应用服务器结果,存在TCP连接数高、端口释放不及时的情况,导致网络连接很慢(局域网ping延时可达3667ms)。其中mysqld.exe、java.exe程序占了连接数的主要部分。如下图所示:
(三)部署现状:
服务器部署情况说明:
(1) 110:管理中心、应用服务器、集成平台(对接本机)
(2) 111:应用服务器
(3) 114:数据库服务器
(4) 115:文件服务器
备注说明:
应用服务器两台(110及111)做了集群,但管理中心、应用服务器和第三方的集成平台有部署在同一服务器。
(四)问题分析:
第三方集成平台和星空管理中心、应用服务器在一起。目前排查问题主要因素就在集成平台的网络连接存在异常情况,此服务器网络资源消耗殆尽将导致星空这边无法接受客户端的连接问题,进而导致用户无法登录星空环境。
(五)优化思路:
(1) 部署优化:
建议将集成平台和星空相关功能分开独立部署,避免因单一功能异常导致服务器整体不可用。
(2) 集成平台优化:
集成平台及时释放连接,将目前一次一张单的模式,修改为批量的模式,减少连接建立数量。
(六)解决方案:
1. 部署调整方案:
将应用服务器、第三方集成平台、管理中心分开部署,分别为单独的服务器
具体调整如下:
(1) 集成平台(110服务器)
(2) 应用服务器(111、113服务器)
说明:111与113仍然集群部署,但分工上有差别,仅111服务器与集成平台对接
(3) 数据库服务器(114服务器)
(4) 文件服务器(115服务器)
(5) 管理中心(119服务器)
调整后部署图:
2. 集成平台优化方案:
(1) 使用批量接口,调用批量保存及查询方法,减少集成连接次数
(2) 修改集成平台调用接口及时释放连接
(七) 优化后的效果:
系统使用稳定,即时在月底结账前凭证传输高峰期也再没出现过性能瓶颈。
(八)总结:
1. 对于系统集成时部署时,星空应用服务器、管理中心、第三方系统(或者第三方平台)
需分别独立部署,防止相互之间产生影响
2. 如果涉及到大数据量需同步时需尽量减少对星空应用服务器请求,可使用批量同步的办法,不要频繁的调用接口方法,调用批量同步,可以使用中间表进行过度的方式(比如有电商需要与星空系统集成)
3. 在调用接口方法访问后需要及时释放连接
推荐阅读