人傻了,在学校也没人跟我说微服务这么重要啊!惨遭工作毒打的我只能说这份微服务笔记真是我的救星!
“小”这个概念,一方面体现在微服务的内聚性上。内聚性也可以称之为单一职责原则:“把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来。”也就是说,微服务应该专注于做好一件事情。由业务边界来确定服务的边界另一方面体现在代码库的大小,这里有几个参考的标准或者说原则代码库小到团队结构相匹配代码库小到易于迅速重写辩证的看待。服务越小,微服务架构的优点和缺点也就越明显“自治”这个概念,强调
什么是微服务
微服务就是一些协同工作的小而自治的服务。
关键词: 小而自治
“小”
“小”这个概念,一方面体现在微服务的内聚性上。
内聚性也可以称之为单一职责原则:“把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来。”
也就是说,微服务应该专注于做好一件事情。
由业务边界来确定服务的边界
另一方面体现在代码库的大小,这里有几个参考的标准或者说原则
代码库小到团队结构相匹配
代码库小到易于迅速重写
辩证的看待。服务越小,微服务架构的优点和缺点也就越明显
自治
“自治”这个概念,强调的是,一个微服务就是一个独立的实体。体现在服务之间的松耦合上。
黄金法则:你是否能够修改一个服务并对其进行部署,而不影响其他任何服务?
关键点:要学会正确的建模服务,正确的设计服务API,才能做到上述两点。
面向服务的架构
SOA(Service-Oriented Architecture,面向服务的架构)是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。一个服务通常以独立的形式存在于操作系统进程中。服务之间通过网络调用,而非采用进程内调用的方式进行通信。
就像认为 XP 或者 Scrum 是敏捷软件开发的一种特定方法一样,微服务架构是 SOA 的一种特定方法。
实施SOA会遇到的问题:
通信协议(SOAP or REST)
第三方中间件选型
服务粒度划分
......
本文就给大家分享一份带你快速入门微服务的学习笔记。希望能够由浅入深、由表及里系统为你讲解微服务的各个关键环节,帮你上手微服务。
总目录
本文档总共包括以下内容:
- 入门微服务:将介绍微服务体系的基本原理和组成,帮你解答什么是微服务、什么时候适合微服务改造、微服务架构到底是什么样的这些问题。* 落地微服务:将结合实际业务中的经验,给你讲述微服务架构改造过程中可能遇到的问题,提供对应的解决方案,帮助中小型团队将微服务落地。* 进阶微服务:将分析微服务、容器化、DevOps这三者之间的关系,以及如何将这些技术应用在实际业务中。这部分内容适合具有一定经验的开发者。* 展望微服务:将探讨下一代微服务体系的发展方向,分享作者的观察和洞见。
一、入门
二、落地
三、进阶
四、展望
写在最后
微服务确实有许多优点:“反脆弱性(anti-fragility)”、容错、独立部署与扩展、架构抽象、技术隔离。但并不是说采用了微服务就自然地具备了这些特性。
比如,要具备反脆弱性,需要充分考虑分布式系统的不确定性,清楚异步、网络划分、节点故障、平衡可用性与数据一致性等问题。
同样地,要具备可维护性和可扩展性,首先要有恰当的基础设施和组织结构。
理论上讲,微服务可以提高开发速度,但在创建组织依赖时,“微服务佣金(MicroservicePremium)”可能会降低开发速度。
所以,采用微服务架构需要具备一些先决条件,包括恰当的持续发布管道、能胜任的DevOps 和Ops 团队、审慎的服务边界等等。此外,周密的测试和集成模式也很重要。
微服务不是银弹,你需要在部署、测试和监控等方面做很多的工作。你还需要考虑如何扩展系统、并且保证他们的弹性,甚至还需要处理类似分布式事务、CAP相关的问题。
我觉得,这也是为什么服务化到云原生是大势所趋,因为只有结合“容器 +编排调度”的云平台,微服务才能将自己的优点发挥到最大。
更多推荐
所有评论(0)