好的系统,是进化出来的,设计可进化的微服务需要注意以下几点:
1. 隔离,或者单一职责。服务之间的职责不要重合,最好职责单一。可以单独发布,不影响其他服务。
2. 高效通信。如使用rest、消息队列等进行通信,可以适用于不同技术栈开发的服务之间,发挥各技术栈的优势。
3. 粒度均衡。服务如果粒度太细,服务间的通信就会更多,降低效率。服务如果太粗,就会有冗余,比如每个服务上都搭建一套鉴权功能。
形散(解偶隔离)而神聚(高效通信)
此外,如果服务或调用链路比较复杂,需要有链路追踪、日志监控等能力。