《微服务基础知识》课件.docx
《《微服务基础知识》课件.docx》由会员分享,可在线阅读,更多相关《《微服务基础知识》课件.docx(12页珍藏版)》请在课桌文档上搜索。
1、微服务基础知识1 .基本概念微服务(Microservices):一种架构风格,一个大型复杂软件应用由一个或者多个微服务组成。系统中各个微服务可被独立部署,各个微服务之间松耦合。每个微服务仅关注完成T牛任务并能完成的很好;每个任务代表一个小的业务能力。1.1. 特征 根据业务模块划分服务种类。 每个服务可以独立部署并且互相隔离。 通过轻量的API调用服务。 服务需要保证良好的高可用性。1.2. 微服务应用4个设计原则AKF拆分原则前后端分离无状态服务Restful通信风格1.AKF拆分原则AKF扩展立方体(参考TheArtofScalability),是f叫AKF的公司的技术专家抽象总结的应用
2、扩展的三个维度。理论上按照这三个扩展模式,可以将一个单体系统,进行无限扩展。X轴:指的是水平复制,很好理解,就是讲单体系统多运行几个实例,做个集群加负载均衡的模式。z轴:是基于类似的数据分区,比如一个互联网打车应用突然或了,用户量激增,集群模式撑不住了,那就按照用户请求的地区进行数据分区,北京、上海、四川等多建几个集群。Y轴:就是我们所说的微服务的拆分模式,就是基于不同的业务拆分。场景说明:比如打车应用,一个集群撑不住时,分了多个集群,后来用户激增还是不够用,经过分析发现是乘客和车主访问量很大,就将打车应用拆成了三个乘客服务、车主服务、支付服务。三个服务的业务特点各不相同,独立维护,各自都可以
3、再次按需扩展。2 .前后端分离前后端分离原则,简单来讲就是前端和后端的代码分离也就是技术上做分离,我们推荐的模式是最好直接采用物理分离的方式部署,进一步促使进行更彻底的分离。不要继续以前的服务端模板技术,比如JSP,把JaVaJSHTMLCSS都堆到一个页面里,稍复杂的页面就无法维护。这种分离模式的方式有几个好处:前后端技术分离,可以由各自的专家来对各自的领域进行优化,这样前端的用户体验优化效果会更好。分离模式下,前后端交互界面更加清晰,就剩下了接口和模型,后端的接口简洁明了,更容易维护。前端多渠道集成场景更容易实现,后端服务无需变更,采用统一的数据和模型,可以支撑前端的webUI移动App等
4、访问。3 .无状态服务对于无状态服务,首先说一下什么是状态:如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个状态数据的服务被称为有状态服务,反之称为无状态服务。那么这个无状态服务原则并不是说在微服务架构里就不允许存在状态,表达的真实意思是要把有状态的业务服务改变为无状态的计算类服务,那么状态数据也就相应的迁移到对应的有状态数据服务中。场景说明:例如我们以前在本地内存中建立的数据缓存、Session缓存,到现在的微服务架构中就应该把这些数据迁移到分布式缓存中存储,让业务服务变成一个无状态的计算节点。迁移后,就可以做到按需动态伸缩,微服务应用在运行时动态增删节
5、点,就不再需要考虑缓存数据如何同步的问题。4 .RestfuI通信风格作为一个原则来讲本来应该是个无状态通信原则,在这里我们直接推荐一个实践优选的Restful通信风格,因为他有很多好处:无状态协议HTTP,具备先天优势,扩展能力很强。例如需要安全加密是,有现成的成熟方案HTTPS可用。JSON报文序列化,轻量简单,人与机器均可读,学习成本低,搜索引擎友好。语言无关,各大热门语言都提供成熟的RestfulAPI框架,相对其他的一些RPC框架生态更完善。当然在有些特殊业务场景下也需要采用其他的RPC框架,如thrift,avro-rpcxgrpc0但绝大多数情况下ReStfUl就足够用了。13优
6、缺点优点:服务独立性:由于每个服务都是独立开发和部署的,因此无需任何开销即可轻松扩展应用程序的特定部分。例如,使用微服务构建的电影票务系统可能会在新电影上映时扩大其预订服务,同时保留通知服务。领蝴区动设计:通过微服务,开发者首先专注于理解业务领域。之后,将微服务开发为最终有助于反映微服务的领域实体会更容易。差异化技术栈:当独立团队构建和维护服务时,他们不再需要使用一种编程语言来构建整个应用程序。相反,不同的团队可以使用最适合该任务的其他编程语言,并使用定义良好的API来改善这些服务之间的通信。限制:可观察性困难:通过微服务,团队将许多可移动组件引入到通常分布的应用程序中。正因为如此,很难一目了
7、然地获得整个应用程序的高级视图。因此,监控和观察基于微服务的应用程序变得越来越困难。大多数团队都会很早就采用监控和可观察性工具。延迟增加:随着可移动部件的增加,应用程序中会发出更多请求,这样会造成单个请求的更多延迟,服务必须与多个其他服务通信才能编译和构造响应。这通常会增加往返时间,因此会减慢应用程序的速度。2.最佳实践一、分离业务逻辑微服务架构的核心思想是分而治之,即将一个大型应用系统拆分成多个小型服务,每个服务都有自己的业务逻辑。因此,分离业务逻辑是微服务架构设计的首要彳壬务。首先,要根据业务需求将系统拆分成不同的服务。每个服务应该尽可能独立,按照功能进行分组。其次,服务之间的交互应该通过
8、明确定义的接口来实现。这样可以确保服务之间的通信是可靠的,并且可以根据需要进行升级和扩展。二、确保服务的可靠性服务的可靠性是微服务架构设计中非常重要的一个方面。由于系统被拆分成多个服务,因此单个服务出现问题不会对整个系统造成影响。但是,如果一个服务始终不可用,系统的整体可用性将会受到影响。为了确保服务的可靠性,可以采用以下措施:1 .使用容器化技术来隔离服务。这样可以确保每个服务都运行在独立的环境中,相互之间不会产生干扰。2 .服务可用性监控。监控服务的响应时间和错误率,及时发现服务出现问题并采取措施。3 .保留备份服务。如果一个服务出现问题,可以快速切换到备份服务,确保系统的稳定运行。三、采
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微服务基础知识 微服 基础知识 课件
链接地址:https://www.desk33.com/p-1216523.html