微服务是什么?
程序员文章站
2022-06-09 12:39:57
...
微服务是一个架构风格,它给了我们一个开发物理上独立(physically separated)的模块化应用的途径。
微服务不是被发明出来的。许多组织,如Netflix、Amazon,以及eBay都成功了使用了分而治之
(divide-and-conquer)的技术将它们的应用分割成小的原子单元,每个单元执行单一功能。这些组织的
成功,使得许多其他组织开始引入此模式来重构它们的一整个大应用。后来,就有人将此模式命名为
“微服务架构”
微服务是一个架构风格,是一个将IT系统实现为一组业务特性的方法,这些特性是自制的、自包含的、
低耦合的。
对于微服务间的交互或传输机制是没有标准的。通常,它们利用被广泛运用的轻量级协议,如HTTP
和REST,或消息协议,如JMS或AMQP。在一些特定的情况下,可能要选择更优化的交互协议,如
Thrift、ZeroMQ、Protocol Buffers,或Avro。
微服务架构的一些原则:
1、每个服务有着单一的责任(Single responsibility per service)
它是SOLID设计模式定义的许多原则中的一个。它指出一个单元应当只有一个责任。
2、微服务是自包含的,可独立部署,自制的服务。
在传统应用开发中,我们构建好了一个war或一个ear,然后将其部署到一个JEE应用服务器中。
我们可能在同一个JEE容器中部署多个应用。如果是微服务方式,每一个微服务将被构建为一个
fat Jar,内嵌了所有的依赖,并作为一个独立的Java进程来运行。