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