什么是微服务?
微服务是一种架构风格,一种软件架构,是由多个服务组成的集合体,集合体中的每一个服务都是独立存在,均可以独立部署。
各个服务之间是送耦合的,各个服务经过通讯机制进行通讯。
每一个服务都只关注一个业务功能,完成本身的业务任务便可。如:订单服务,用户服务。
- 优势
开发、维护相对简单:微服务单个服务至关于一个项目,只须要关心这个模块的业务逻辑便可。代码量、代码复杂度都会下降,易于开发、维护。
技术栈灵活:各个服务可用不一样的技术来实现,订单服务用java实现,用户服务用python实现。
服务独立解耦:微服务是高内聚的,每一个服务处理每一个服务相应的业务便可。每一个微服务可独立部署,再也不须要协调其它服务对本服务的影响。
- 缺点维护和部署复杂度的增长:单体应用可能只须要维护、部署一个项目便可,可是微服务是由多个服务构成,须要维护、部署多个服务,当微服务中某一个服务出现异常,想要肯定是哪个服务出现问题是不容易的,没法经过debug来肯定问题。服务间通讯的成本:单体应用只须要调用服务内接口便可。可是微服务之间,是须要服务与服务之间相互通讯,经过RPC、MQ等来通讯,那么调用接口的成本明显增长,提升了复杂度,引入许多问题,如:网络延迟,消息序列化,容错性等等。系统集成测试难度大:微服务测试,须要启动这个服务全部相关的服务。