1、每个微服务可独立运行在自己的进程里;
2、一系列独立运行的微服务共同构建起整个系统;
3、每个服务为独立的业务开发,一个微服务只关注某个特定的功能,如:订单管理、用户管理等;
4、微服务之间通过一些轻量的通信机制进行通信,比如 通过restful进行调用;
5、可以使用不同的语言与数据存储技术;
6、全自动的部署机制。
优点:
1、易于开发和维护:一个微服务只关注一个功能,业务清晰;
2、单个微服务启动较快:单个微服务代码量较少;
3、局部修改容易部署;
4、技术不受限制;
5、按需伸缩。
挑战:
1、运维要求高:更多的服务需要更多的运维投入;
2、分布式固有的复杂性:系统容错、网络延迟、分布式事务等;
3、接口调整成本高:微服务之间通过接口通信,修改一个接口,可能其他调用该接口的服务都需要做调整;
4、重复劳动:多个服务之间可能使用到相同功能。