北极星

搜索历史清空

  • 水处理
您的位置:电力电力软件关联软件技术正文

基于开源框架及容器技术的微服务架构研究

2018-07-20 13:37来源:远光软件股份有限公司关键词:远光软件微服务微服务架构收藏点赞

投稿

我要投稿

3.1.2基于ECP平台(SpringBoot)的微服务架构

SpringBoot提供了实现RestAPI的良好支持,并极大地简化了配置和部署。在无需WebUI而仅仅只为了提供RestAPI的情况下,是JavaEE/Spring体系下实现RestAPI的首选框架。

SpringBoot实现的RestAPI将被构建为jar,其中内置了Tomcat/Jetty,可以直接部署运行,无需外部的JavaEEServlet容器。

3.1.3原有旧系统接入

已有的应用系统(如财务管控),通常不可能大规模重构为微服务应用系统,还需要复用已有系统的部分服务并接入微服务运行环境。对于此类需求,建议采用下述方法实现:

基于SpringBoot实现微服务,这些微服务将调用已有系统的API实现其功能,如果这些服务有严格的性能要求,也可以直接访问原系统的数据库实现这些服务。总之,新实现的微服务进行接入,这些微服务的实现依赖已有系统,这些微服务适配已有系统的功能进行接入。

3.1.4服务接口演化

在日常开发的过程中,服务端对外开放的接口API会有一个变化的过程。

单体应用处理服务端接口的变化,直接修改对应的接口,然后再修改所有接口的调用即可。

微服务对于接口变化的处理,由于各个微服务的独立性,很难实时更新服务调用实现。在这种情况下,在不影响原有调用又要提供新的服务供调用的前提下,服务的提供者有可能提供2套服务,一套是新的接口API服务;另一套是旧的API服务。

当微服务的发布者对原接口进行修改时,考虑的是改动的大小及旧的服务API的兼容性。进程间使用轻量级通信机制进行通信对接口改造帮助很大,建议使用在最初的设计过程中,每个服务的设计都遵循健壮性的原则,比如:只是对某个特定场景设计API,调用API的服务使用旧的接口,能同时兼容调用新的接口一起工作,API服务仍然提供原有的默认响应值,调用服务忽略即可。有时接口改造涉及的改动很大并且与旧接口不兼容,由于不能强制所有调用服务进行升级,所以存在新老服务并存的情况,服务端调用会针对新老不同API服务,这就要求服务的API具有多版本概念,针对不同调用进行处理。

3.2微服务部署

微服务架构是由一组小但是独立的服务组成,各服务有独立的进程,需要独立部署,服务部署需要快速、可靠并且性价比高。选择基于容器部署的方式能满足上述需求,ECP微服务部署架构如图1所示。

图1ECP微服务部署架构

3.2.1基于GoogleKubernetes架构

GoogleKubernetes提供了完整的微服务运行环境,完全满足前述微服务调用、微服务管理与监控的要求。

1)APIServer/etcd:作为注册中心,微服务实例将在其中注册;

2)kube-proxy:实现反向代理,能够自动根据服务实例的运行状态调整其代理策略;

3)通过KubernetesService定义,保证集群中指定Service的实例数量;

4)具备完整的容器运行状态监控能力。

Kubernetes提供了完整的微服务架构实现方案,但其概念及实现方式与原生的Docker解决方案并不一致,与Docker版本的更新时间上不同步。

3.2.2基于DaoCloudDCE架构

DaoCloud提供的运行环境以及集群监控能力能满足前述基本目标中监控相关的要求。

DaoCloud基于原生Docker提供容器集群管理方案,仅作为容器管理产品使用,自动的服务发现和负载均衡需要通过HAProxy+etcd自行实现。

因此具体实现为:

1)微服务调用均通过HAProxy进行,HAProxy作为反向代理(负载均衡器);

2)etcd作为注册中心;

3)每个微服务启动时向etcd注册;

4)HAProxy自动发现etcd中微服务实例的变化并透明代理。

3.3微服务研发过程

微服务架构模式容易实现敏捷开发,将开发和运维高度协调,提高生产率。通过流程和工具自动化,更敏捷的交付产品。ECP微服务持续交付过程如图2所示。

3.4成果展现

最终通过ECP微服务架构平台,将现有应用的基础组件拆分为多个微服务,如缓存服务、消息服务、调度服务、非结构化服务、流程服务、接入服务、配置服务、认证授权服务、日志服务等。各个服务自治,服务之间协同,所有服务调用都使用统一的HTTP服务通信框架,达到标准化。提供开发者中心和微应用发布中心,实现了服务注册、服务自动发现、负载均衡、容错、会话跟踪、访问控制、灰度发布、数据可视化。

图2ECP微服务持续交付过程

4结语

本文研究微服务架构平台实现,通过ECP微服务架构平台快速完成了应用源码构建、镜像打包和应用部署,实现了微服务的高效运营,在该平台下,研发人员可以快速构建微服务。微服务技术架构和底层实现代码全部由平台提供,屏蔽了复杂的技术细节,研发人员只需要关注业务代码编写即可。实践证明,该平台能够大幅加快开发速度,有较高的应用价值。

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。

远光软件查看更多>微服务查看更多>微服务架构查看更多>