课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
微服务架构是目前互联网行业常用的一种架构方式,而今天我们就通过案例分析来了解一下,微服务架构实现包含哪些内容。
1、系统需要利用现实
微服务架构带来的一个很大优势就在于它提供了一套工具,能够利用现实,模仿真实的世界来创建系统,包括真实世界的限制和机会。
先根据“康威定律”,微服务的部署是和现实中工程组织/部门如何工作是相适应的。此外,还需要注意的是现实不是一致的,任何事情都是相对的,即使是时间和“现在”这个概念。
信息的传播速度不可能比光快,甚至大部分是很慢的,这也意味着信息通信是有延迟的。信息都是来自过去的,我们稍微思考一下可以知道信息承载的都是我们观察到的东西。而我们观察/学习到的事实至少都是很短时间之前发生的,也就是说我们总是在看过去,“现在”只是旁观者的视角。
每一个微服务都可以看做一个安全的小岛,提供了确定性和强一致性,上面的时间和“目前”都是绝对的。但是当离开一个微服务的边界时,就进入了一片充满非确定性的大海-分布式系统的世界。如很多人所说,构建分布式系统是困难的。但现实世界同时也提供了如何解决诸如弹性、可伸缩、隔离性等分布式问题的解决思路。因此,即使构建分布式系统是困难的,但是我们也不应该退化为单体应用,而是学习如何使用一系列的设计原则、抽象概念和工具来管理它。
2、服务发现
服务发现要解决的问题就是如何定位一系列的服务从而可以使用地址去调用。其中简单的手段就是将地址和端口信息硬编码在所有服务中或者外置在服务的配置文件中。这种方式的问题在于其是一种静态部署模型,与微服务的初衷是相矛盾的。
服务需要保持解耦和移动,而系统需要是弹性和动态的。因此可以通过使用控制反转(InversionofControl)模式引入一个间接层来解决此问题。也就是说每一个服务都上报自己的信息(位置、如何访问)给一个统一的平台。这个平台被称作“服务发现”,是微服务平台的一个基础部分。这样,一旦服务的信息被存储了,服务就可以使用“服务注册中心”来查找调用服务的信息,这种模式被称作“Client-Side服务发现”。另一种策略是将信息存储、维护在一个负载均衡器(AWS的ELB)或者直接维护在服务提供方的地址中-“Server-Side服务发现”。
可以选择CP特性的数据库作为服务信息的存储,能够保证信息的一致性。但是这种数据库是牺牲了一定程度的可用性来达到强一致性的,并且依赖一些额外的基础设施,而很多时候强一致性并非那么需要。因此,更好的选择是使用AP特性的点对点的技术来存储,比如使用CRDTs(Conflict-FreeReplicatedDataTypes)与EpidemicGossip可以实现信息的终一致性传播,能够有更好的弹性,也不需要额外的基础设施。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。