微服务架构总结--1.微服务的特点

微服务架构一书读后感,并结合自己实际工作的归纳总结。

1.什么是微服务?

  • 官方说法:微服务架构就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信,通常是HTTP RESTFUL API。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。
  • 个人理解:每一个服务都有自己独立的功能、数据源,并能完成自治。最小程度依赖外部其他服务。

2.微服务应该满足的特性

  • 内聚性:与服务本身相关的功能聚合在一起,类似平时代码中使用的一个包结构。
  • 单一职责原则:一个微服务本身应该只做一件事情。当然实际工作中一个微服务的划分会和公司规模、组织结构、功能/复杂性都有关联。
  • 自治性:一个微服务本身应该有独立的、与其他服务隔离的主机(这里的主机套用书里的观点,可以是物理机、可以是容器,可以理解成支持服务运行的环境)。与其他服务隔离的数据库、缓存等。服务本身应该能独立使用其中的资源而不依赖与其他的服务。

之上所说的内容也即是常见的高内聚、松耦合

3.微服务的优点

  • 弹性:对比单块应用,理论上单个微服务崩溃只是其中一个功能不可用,而不是整个服务不可用。(实际情况如果不处理好熔断等机制,单个服务的崩溃是可能引起雪崩效应)

  • 扩展性:对比单块应用,微服务扩展相对简单。

    • 水平扩展:无状态的服务可以直接扩展,有状态的服务理论上也只需要修改更少的代码即可实现扩展。

    • 垂直扩展:因与其他服务依赖较低,理论上扩展功能也不易引起其他服务的修改。

  • 技术异构性:不同服务可以使用不同技术栈、不同类型的存储引擎去实现,具有更高的灵活性与针对性。

  • 敏捷开发,快速迭代:与单块应用相比,松耦合、代码数量少,因此能更快的开发、迭代、修复、交付。

  • 可组合型:不同粒度、功能的服务可以很快速的组合在一起提供一个复杂的服务。

  • 可替代性优化:与单块应用相比,对一个服务进行优化甚至替换都是快速并且可行的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章