pascloud微服务之路尝试
Pas云平台系统和微服务整合具有得天独厚的条件,那我们的pasBuilder系统和微服务整合又是怎么样的呢?大概花了几周的时间,基于pas新业务需求,运用微服务开发的模式,实现了新业绩模块功能的开发,并且整合到了pasBuilder系统,完成了微服务的尝试之路。下面会介绍微服务是什么,整合的全过程。
什么是微服务
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。这次我们微服务之路只是运用了其架构的核心的思想。
总结下来,微服务架构中的核心部分包括以下几点:
- 小, 且专注于做⼀件事情
- 独立的进程中
- 轻量级的通信机制
- 松耦合、独立部署
微服务之项目的结构
整合后Pas项目结构.png
依据微服务的构想,结合我们的pas业务,我们在原有的系统上增加一层微服务层,在数据层上我们增加数据库中间件mycat,redis缓存数据库,使我们的服务能够满足异构的数据库。系统Web端,既客户看到的部份称之为微服务的调用者,中间微服务层提供各种数据接口。在pasBuilder整合过程中使用的是单数据源的方式。
根据自己的认识,微服务使得的项目具有几个优点:
- 将业务进行单元划分,使得我们可以将产品做到极致,而不受其他的影响
- 不影响原来pas系统、云平台系统的功能运行,它们是独立存在的应用,可以做到任意的插拔
- 在部署方面,就像在电脑上启动一个应用一样,在原pas系统中只要加入指向的http请求路径就可以,如果加入自动化部署工具,可以做到界面操作
- 同一个微服务,云平台和pasBuilder系统可以共用
合并后web前端页面展示
整合后的效果展示.png
如图上所示,整合后的页面,红色框内为新做的业绩功能,为业绩微服务,而外层为原pasBuilder系统。
微服务之项目部署
整合后Pas项目部署.png
说明:
- 红色块部分是相对原PAS系统的部署,原来需要一个java文件,Tomcat容器,DB数据库,加入微服务后,增加有Redis缓存数据库,Zookeeper服务治理中心,业务微服务应用,目前有权限和新业绩服务,新业绩web端。
- 我们的项目是内网单机版系统,所有的应用和环境都安装在一个服务器上,程序之间通过访问对方提供的端口获取资源,例如,web端是放在tomcat容器中,端口是80端口,业绩服务是一个独立的进程,端口是8016。
微服务之一次请求
整合后数据交互.png
说明:
-
图上清晰的展现了PAS系统和微服务之间的数据交互的全过程。
-
对于客户来说只关注的业绩的数据,那体现在图中的是第12-14步,其中第1-11是系统鉴权部分。
以上就是我们项目的微服务之路尝试的全过程,整个过程的实现,是云平台项目小组共同的努力。当然文中提到的内容如果有错误,希望能够指正,包括有更好的想法也可以一起去完善。