基于 Spring Cloud的流程中心设计与实现
摘要:Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,如果利用好这些高性能组件,便可以快速提升我们的业务处理能力,提高执行效率,使得复杂的业务趋于简单化。本文旨在研究利用Spring Cloud分布式微服务技术构建一套完整的流程中心,快速提升企业的办事效率,降低企业的运营成本。
关键词:流程;微服务;架构;Spring Cloud;
引言:随着时代的发展,各种智能手机、智能平板等设备在人们的生活中普及度越来越高,与此同时硬件的高速发展必然带动软件的革新,一款好的工作软件可以快速提升企业的办事效率,使得业务流转更快捷,大大降低企业的运营成本。流程涉及到企业运营的方方面面,在智能化设备未普及之前,人们通过纸质的流程单进行流转,挨个部门人办事签字,严重影响工作效率,本文旨在设计一款高效的流程,将纸质的流程搬到手机上,搬到平板上,搬到工作电脑上,使得流程无纸化,提高办事能力,提升企业运营效率。
1.
流程中心的任务及功能
(一)主要任务
流程中心旨在快速的构建工作流程,发布工作流程,使得工作流程同时满足在多种设备平台上使用,如移动客户端、PC电脑;满足多种业务场景,如流程的流转过程中接收人待办消息提醒,我的已办,我的所有流程,流程的串行,流程的监督。
(二)具备的功能
第一,流程图的快速构建、快速部署,现实生活中会有各种各样的流程业务,快速的流程构建对应提升工作效率至关重要,它使得需求从提出到落地使用,周期变短,在有限的时间内可以完成更多的工作内容;第二,流程的消息提醒,工作流中每一步处理环节都需要有消息提醒给下一步待办人,这样避免工作延误,造成一些意想不到的损失;第三,流程的跨平台性,当今社会设备的种类很多,有安卓、IOS、各种平板、PC电脑,每种都有庞大的用户体,所以流程中心需要满足在这所有设备上都可以使用,避免个别平台无法使用导致应用的覆盖范围被限制。
二、流程中心的架构设计
由上文分析可知,流程中心采用的是Spring Cloud分布式微服务架构,其中包含了几大核心组件,Eureka注册中心、负载均衡Ribbon、熔断器Hystrix、服务调用Feign、Spring Cloud Gateway网关、Spring Cloud Config分布式配置中心、Spring Cloud Bus服务总线,流程采用activity可视化工作流引擎。
该系统核心架构设计如下图:
(一)Eureka注册中心
Eureka注册是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。
(二)负载均衡Ribbon
负载均衡Ribbon,主要提供客户侧的软件负载均衡算法,使得请求分发到不同的服务上,避免某一个服务负载过大,导致服务宕机不可用。
(三)熔断器Hystrix
在高并发领域,在分布式系统中,可能因为一个小小的功能扛不住压力,宕机了,导致其他服务也跟随宕机,最终导致整个系统宕机,所以在SpringCloud中采用Hystrix进行处理。目前有两种手段进行处理,一种是服务熔断,一种是服务降级。服务熔断,当某个请求超时,服务器的响应时间变长,造成服务阻塞,如果是一个高并发的系统,大量的请求打到服务器上,则所有人都在等待,导致整个服务无法正常使用,所以需要使用Hystrix将某个超时服务进行断路,保证其他服务正常使用,避免系统服务形成雪崩效应,Hystrix为每个依赖服务调用分配一个小的线程池,如果线程池已满调用将被立即拒绝,默认不采用排队,加速失败判定时间。用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务。服务降级,优先保证核心服务,而非核心服务不可用或弱可用。
(四)服务调用Feign
springcloud难学吗服务调用Feign,分布式系统中,将原始单一的应用拆分成多个微服务,不同微服务直接存在相互依赖,相互调用的问题,Feign可以很好解决不同服务直接的相互请求,增加了服务的高内聚低耦合。
(五)Spring Cloud Gateway网关
Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。Gateway是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,从而加强安全保护。其本身也是一个微服务,需要注册到Eureka服务注册中心。网关是基于Filter链提供网关基本功能:安全、监控/埋点、限流等。加入网关后系统核心结构图如下:
(六)Spring Cloud Config分布式配置中心
微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。
SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
(七)Spring Cloud Bus服务总线
Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能,它能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、事件推送等,也可以当作微服务间的通信通道。
其有两种实现方式,第一种方式(消息发送给一个客户端而刷新所有的配置);
第二种方式(消息发送给服务配置中心来刷新所有配置)如下图所示:
(八)Activity可视化工作流引擎
activity工作流引擎,目是Apache软件基金会的一个开源的BPM项目,它是从基础开始构建的,但是到目前为止其功能及实用性已经十分强大了;它支持对象组的管理(OMG),还包括对流程的定义、执行以及多方式的运行。其核心原理是通过绑定节点显示数据到数据库中的表上来实现动态的根据流程图来更新流程,从而不需要修改业务代码实现流程的即时更新。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论