OA微服务分享系列 | 微服务架构第一趴

Posted FinTech技术创新

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OA微服务分享系列 | 微服务架构第一趴相关的知识,希望对你有一定的参考价值。

三月的风,四月的雨,但永恒不变的还是热爱工作的你,希望我们的出现,能给你带来一丝的阳光与轻松。让我们在被生活追逐的同时能有自己的一个小世界,一起畅游在纯粹的技术海洋...行了行了我编不下去了,为了想放一张图铺垫这么多也是蛮累的。


OA微服务分享系列 | 微服务架构第一趴

仿佛看见了你和我


不贫了,胡海天老师已经等不及跟我们分享今天的主题了--OA系统的微服务架构。


OA微服务分享系列 | 微服务架构第一趴

胡海天


(上周胡老师跟我们分享微服务化的适用场景,以及服务拆分的粒度回顾一下。)


OA微服务分享系列 | 微服务架构第一趴


说到微服务架构,目前的主流为Alibaba开源的分布式服务框架Dubbo,以及Spring开源的SpringCloud。


如何选择,从以下几点出发



▧ 社区活跃度方面,SpringCloud项目社区非常活跃,强于Dubbo。


▧ 文档方面,SpringCloud相关文档的完善程度高于Dubbo。


▧ 应用案例方面,SpringCloud主要的实施案例是netflix,而Dubbo有众多的互联网公司成功实施案例。


▧ 配套体系方面,SpringCloud有完善的体系支持,强于Dubbo。


▧ 在架构设计方面,无论目前火热的微服务架构,还是区块链分布式账本的概念,或是所谓Web3.0的概念,都在强调去中心化。


OA系统的微服务架构选型遵循了分布式系统CAP原则:

即一致性(C)、可用性(A)、分区容错性(P),三者不可兼得。


OA微服务分享系列 | 微服务架构第一趴


对于微服务体系的服务治理,我们更注重的是可用性(A)及分区容错性(P),而针对数据一致性(C),只需要满足最终一致即可。


在此方面,SpringCloud的Eureka比Zookeeper更加合适。Zookeeper作为提供分布式一致性服务的软件,必须满足CP原则,而Eureka只提供服务注册发现能力,Eureka的设计理念更加符合及贴近去中心化,强调服务对等。


同时,考虑到框架成熟度、社区活跃度、功能适配度、体系完善度、整合底层框架系统等因素,我们最终选择了SpringCloud框架。


SpringCloud是个什么鬼


springCloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。


总之,SpringCloud是进行众多微服务管理的强劲兵团,有很多大将,并且每一个都身怀绝技、武艺高强。


OA微服务分享系列 | 微服务架构第一趴


OA的微服务架构只用到一部分,包括服务注册中心、配置中心、消息总线、服务网关、融断控制、集群监控、日志收集等,下面就向大家简单介绍一下:


OA微服务分享系列 | 微服务架构第一趴

服务注册中心


基于Eureka搭建了服务注册中心,它的地位非常牛鼻,无论你是精兵猛将、还是虾兵蟹将,统统都要向它报备你的独门武功,在它的小本本上登记,方便其他兄弟们调用,并且调用时根本不用管到底是谁提供的,只要找服务注册中心,直接就能拿来用。


Eureka提供了服务注册(Register)、服务续约(Renew)、服务下线(Cancel)、服务剔除(Eviction),以及安全保护等能力。


搭建Eureka集群需要注意的事项为:


▧ 同一个Eureka集群内的服务名字必须一致。

   

▧ 部署三个或更多对等节点,注册动作只会传递给相邻节点,部署时需保证节点之间均能相互传递,服务能注册到所有的节点上。


▧ 注册一个实例,到客户端发现这个实例可能需要一段时间。


▧ 同时出现大量节点心跳故障,Eureka会开启自我保护机制,防止产生惊群效应。


OA微服务分享系列 | 微服务架构第一趴


OA微服务分享系列 | 微服务架构第一趴
配置中心


OA系统使用Spring Cloud Config 进行配置管理,解决了跨多环境的系统配置,以及配置信息散落在代码内部、配置文件的版本及敏感信息管理等问题。


配置中心让你可以把配置放到远程服务器,集中化管理,就像兵团的武器、枪火什么的都集中放到一起,别随便自己带,方便以后统一管理、升级装备。目前支持本地存储、Git以及SVN三种存储方式。


OA微服务分享系列 | 微服务架构第一趴


对于配置信息的获取,OA系统要求通过Eureka服务注册中心,来获取配置中心的信息列表的,这样解决了配置中心节点新增、减少,以及出现故障的配置更新、重试等问题。


OA微服务分享系列 | 微服务架构第一趴


OA微服务分享系列 | 微服务架构第一趴
消息总线


如果我们在配置文件里配置了系统的公共邮箱,现在因为要更换邮箱就修改了配置文件,那客户端要如何知道配置文件修改了,并去重新获取新的配置?


这就需要引入SpringCloud Bus(消息总线)了,SpringCloud Bus用于集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。相当于水浒传中日行八百里的神行太保戴宗,确保各个小弟之间消息保持畅通。


OA微服务分享系列 | 微服务架构第一趴


OA微服务分享系列 | 微服务架构第一趴


好了,今天就先分享到这儿咯,接下来还会有关于服务网关、系统监控、融断器等一系列组件要跟大家聊呢,期待一下~

OA微服务分享系列 | 微服务架构第一趴

最后送大家一个礼物



喜欢四月

喜欢四月的雨

喜欢四月的阳光

最喜欢的还是四月的假期

还有你

嘻嘻嘻


我们下次再见啦~


想看更多绝对干货和有趣新闻的请点赞并分享

               

以上是关于OA微服务分享系列 | 微服务架构第一趴的主要内容,如果未能解决你的问题,请参考以下文章

技术干货 | 微服务架构软件的持续集成与交付

#私藏项目实操分享#权限设计系列「认证授权专题」微服务架构的登陆认证问题

微服务架构应用实战(core-grpc)

ECUG 演讲分享吴海黎:CODING 微服务架构演进之路

PPT | 从架构到组件,深挖istio如何连接管理和保护微服务2.0?

PPT | 从架构到组件,深挖istio如何连接管理和保护微服务2.0?