微服务优点
1、通过分解巨大单体式应用为多个服务方法解决了复杂性问题,每个微服务相对较小
2、每个单体应用不局限于固定的技术栈,开发者可以自由选择开发技术,提供API服务。
3、每个微服务独立的开发,部署
4、单一职责功能,每个服务都很简单,只关注于一个业务功能
5、易于规模化开发,多个开发团队可以并行开发,每个团队负责一项服务
6、改善故障隔离。一个服务宕机不会影响其他的服务
微服务缺点:
1.开发者需要应对创建分布式系统所产生的额外的复杂因素
> 目前的IDE主要面对的是单体工程程序,无法显示支持分布式应用的开发
> 测试工作更加困难
> 需要采用服务间的通讯机制
> 很难在不采用分布式事务的情况下跨服务实现功能
> 跨服务实现要求功能要求团队之间的紧密协作
2.部署复杂
3.内存占用量更高
内部服务之间的通信方式有两种:
1、基于HTTP协议的同步机制(REST、RPC);
2、基于消息队列的异步消息处理机制(AMQP-based message broker)。