update content

This commit is contained in:
oopsguy 2017-08-24 00:59:45 +08:00
parent 31d4fce13c
commit 68d3bd8037
3 changed files with 17 additions and 5 deletions

View File

@ -73,4 +73,16 @@
从表面上看,微服务架构模式类似于 SOA。微服务是由一组服务组成。然而换另一种方式去思考微服务架构模式它是没有商业化的 SOA没有集成 [Web 服务规范](http://en.wikipedia.org/wiki/List_of_web_service_specifications)WS-\*和企业服务总线Enterprise Service BusESB。基于微服务的应用支持更简单、轻量级的协议例如REST而不是 WS-\*。他们也尽量避免使用 ESB而是实现微服务本身具有类似 ESB 的功能。微服务架构也拒绝了 SOA 的其他部分,例如,数据访问[规范模式](https://en.wikipedia.org/wiki/Canonical_schema_pattern)概念。
## 1.4、微服务的优点
微服务架构模式有许多非常好的地方。第一它解决了复杂问题。它把可能会变得庞大的单体应用程序分解成一套服务。虽然功能数量不变但是应用程序已经被分解成可管理的块或者服务。每个服务都有一个以远程过程调用RPC驱动或者消息驱动的 API 明确定义的边界。微服务架构模式强制一定程度的模块化,实际上,使用单体基础代码来实现是极其困难的。因此,个体服务能被更快地开发,并更容易理解与维护。
第二,这种架构使得每个服务都可以由一个团队独立专注开发。开发者可以自由选择任何符合服务 API 契约的技术。当然,更多的组织是希望通过技术选型限制来避免完全混乱的状态。然而,这种自由意味着开发人员不再有可能在这种自由的新项目开始时使用过时的技术。当编写一个新服务时,他们可以选择当前的技术。此外,由于服务比较小,使用当前技术重写旧服务将变得更加可行。
第三微服务架构模式可以实现每一个微服务独立部署。开发人员根本不需要去协调部署本地变更到它们的服务。这些变更一经测试即可立即部署。比如UI 团队可以执行 A|B 测试,并快速迭代 UI 变更。微服务架构模式使得持续部署成为可能。
最后,微服务架构模式使得每个服务能够独立扩展。您可以仅部署满足每个服务的容量和可用性约束的实例数目。此外,您可以使用与服务资源要求最匹配的硬件。例如,您可以在 EC2 Compute Optimized 实例上部署一个 CPU 密集型图像处理服务,并且在 EC2 Memory-optimized 实例上部署一个内存数据库服务。
## 1.5、微服务的缺点
就像 Fred Brooks 近 30 年前写的[《人月神话》](https://en.wikipedia.org/wiki/The_Mythical_Man-Month)说的,没有银弹。像其他技术一样,微服务架构模式也是如此,存在着缺点。其中一个缺点就是名称本身。微服务这个术语的重点过多偏向于服务的规模。事实上,有些开发者主张构建极细粒度的 10-100 LOC代码行 服务虽然小型服务可能比较好,但重要的是要记住,小型服务只是一种手段,而不是主要目标。微服务的目标在于充分分解应用程序以方便应用敏捷开发和部署。
微服务另一个主要的缺点是由于微服务是一个分布式系统而变得复杂。开发者需要选择和实现基于消息或者 RPC 的进程间通信机制。此外,由于目标请求可能很慢或者不可用,他们还必须编写代码来处理部分故障。虽然这些都不是火箭科学,但模块间通过语言级方法/过程调用相互调用,这比单体应用要复杂得多。
**待续……**

View File

@ -11,8 +11,8 @@
- [1.1、构建单体应用](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#11构建单体应用)
- [1.2、走向单体地狱](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#12走向单体地狱)
- [1.3、微服务-解决复杂问题](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#13微服务-解决复杂问题)
- 1.4、微服务的优点
- 1.5、微服务的缺点
- [1.4、微服务的优点](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#14微服务的优点)
- [1.5、微服务的缺点](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#15微服务的缺点)
- 1.6、总结
- 1.7、微服务实战NGINX作为反向代理服务器

View File

@ -5,9 +5,9 @@
## [1、微服务简介](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#1微服务简介)
- [1.1、构建单体应用](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#11构建单体应用)
- [1.2、走向单体地狱](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#12走向单体地狱)
- 1.3、微服务——解决复杂问题
- 1.4、微服务的优点
- 1.5、微服务的缺点
- [1.3、微服务-解决复杂问题](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#13微服务-解决复杂问题)
- [1.4、微服务的优点](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#14微服务的优点)
- [1.5、微服务的缺点](https://github.com/oopsguy/microservices-from-design-to-deployment-chinese/blob/master/1-introduction-to-microservices.md#15微服务的缺点)
- 1.6、总结
- 1.7、微服务实战NGINX作为反向代理服务器