产品级微服务的八大原则课件.pptxVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、微服务概念

微服务的内部结构

资源(Resources)作为由服务所暴露的应用协议以及表示域对象的消息之间的映射器。通常情况下,它们比较轻便,用于检查请求的完备性,并提供根据业务事务的输出来返回一个协议特定的响应。

域模型几乎所有在域模型中的业务逻辑都代表了业务域。在这些对象中,服务跨越多个领域进行协调,而库作用于域实体的集合,而且往往持续性支持。

服务协作如果一个服务需要另一服务进行协作,那么一些逻辑就需要与外部服务进行通信。网关打包域对象的请求和响应,封装消息并传递至远程服务。它可能会使用理解底层协议的客户机来处理请求-响应周期

域存储库除了最简单的情况,或当一个服务作为聚合其他服务所拥有的资源的聚合器之外,微服务需要能够在几个请求之间储存域的对象。通常这是通过使用对象关系映射或使用满足持久性要求的复杂性的更轻便的数据映射器实现。通常情况下,这个逻辑块被封装在一组由域存储库使用的专用对象中。

二、微服务的误区

一、数据驱动的迁移反模式可以分割成粗粒度的数据和服务,然后再进一步的分割成更小的微服务和数据,你可能要频繁地进行服务调整:粒度太小,合并微服务;粒度太大,分割成更小的微服务。数据迁移要比源代码迁移更复杂,更容易出错,理想情况下只为微服务迁移数据一次。理解数据迁移的风险性是避免这种反模式的第一步。

二、超时反模式服务不可用,服务消费者会在毫秒级的时间内得到通知,它可以返回错误信息或者尝试连接。但是如果服务接收了请求但是不响应,服务消费者该怎么办?可以无限等待或者设置一个超时时间

三、使用熔断器设计模式这种设计模式就像家里的电器的保险丝一样,当负载过大,或者电路发生故障或异常时,电流会不断升高,为防止升高的电流有可能损坏电路中的某些重要器件或贵重器件,烧毁电路甚至造成火灾。保险丝会在电流异常升高到一定的高度和热度的时候,自身熔断切断电流,从而起到保护电路安全运行的作用。

四、共享反模式微服务的目标之一就是尽量少的共享,这会帮助微服务确定它的有界上下文,服务更容易的测试和部署。服务之间依赖越多,服务则更难被隔离。不要把所有共享的代码放在一个库中,比如common.jar,而是根据它们的逻辑划分成更小的库,比如security.jar,persistence.jar,dateutils.jar

五、到达报告反模式数据库的非独立性批处理程序成批地将微服务的数据倒入到报告的数据库中,但是问题和HTTPpullmodel一样,这会带来数据库的非独立性,微服务数据库格式的改变也会影响报告服务影响微服务的性能,尤其是复杂报告的查询

五、到达报告反模式Event-basedpushmodel,也叫datapump。虽然相对复杂,但是不会违背微服务的原则。

六、沙粒陷阱采用微服务架构的时候最大的挑战之一就是服务粒度的问题。微服务的服务粒度多大合适?服务粒度至关重要,它会影响应用的性能、健壮性、可靠性、可测性、设置发布模型。当服务的粒度太小的时候就会遇到沙粒陷阱。微服务的微并不意味着服务越小越好,但是多小是小?

六、沙粒陷阱服务的范围和功能分析服务编排分析数据库事务

七、无因的开发者陷阱没有考虑tradeoff。发布、改变控制、测试都深受影响。

八、随大流陷阱微服务是现在的潮流,所以你选择了微服务,还没有仔细的分析你的商业需求、商业驱动、组织架构和技术环境,这就是随大流陷阱。?微服务并不适合所有的场景。?避免这个陷阱的方式充分理解微服务的好处和短处,俗话说,知己知彼,百战不殆。好处:?发布:易于发布?测试:易于测试?改变控制:更容易的改变一个服务的功能?模块-?规模可扩展短处?Team组织改变?性能?可靠性降低?运维难度加大

九、静态契约陷阱?要为你的服务设计版本号。?有两种实现方式,在header中加入版本号,或者在服务的schema中加入版本号。

十、我们到了吗?这个陷阱发生在你不知道远程调用要花多长时间的情况。50秒?平均多长时间呢,长尾的延迟呢??首先你应该测量服务的调用时间,至少能知道一个服务远程调用的大概时间。?然后你应该评估不同的服务通讯协议的性能,比如REST、JMS、AMQP等。?当然性能也不是唯一个衡量远程通讯协议的因素。

十一、REST陷阱?如果把REST作为唯一的通讯方式,就有可能掉入这个陷阱。比如如何处理异步通讯(http1.1是blocking的)、如何在一个事务中管理多次服务调用?如何支持广播??你应该考虑两种类型的消息标准作为微服务架构中的消息传递:特定平台的标准和平台无关的标准。?特定平台的标准比如JMSforjava、平台无关的比如AMQP。?使用消息系统的好处可以异步请求,还可以实现广播的方式,还可以实现事务请求。

二、微服务的事务

您可能关注的文档

文档评论(0)

173****5125 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体成都风星雨科技文化有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510106MAD5XC008M

1亿VIP精品文档

相关文档