一、微服务是什么?
定义:微服务是一些协同工作的小而自治的服务,这个服务是高凝聚力和松散耦合的。
微服务有以下特征:
1.一组小的服务(大写没有特别的标准,只要同一个团队的工程师理解服务的标识一致即可)。
2.独立的进程
3.轻量级的通信(不是soap,是http协议)
4.基于业务能力
5.独立部署(迭代速度快)
6.无集中式管理(无须统一技术栈)
二、为什么要用微服务?
通常我们把微服务说成是一个技术架构的进化,从第一代的单体架构,到期第二代SOA架构,第三代微服务架构。
第三代的出现,一定是为了解决第一代和第二代的不足之处的:
第一代的主要问题:太过耦合,部署成本过高(修改一行,均要全部改),重复做轮子,完全封闭的架构。
第二代的主要问题:ESB总线进行集成,扩容困难,集中式的。
第三代:松散耦合,专注某个业务的小团队(2个比萨的成员数),升级按天/周进行发布,全自动化,扩展弹性,高可用。
三、微服务特点及价值:
价值:(1) 高频发布或升级 (2)可复用 (3)分布式易扩容,满足高并发需求。
特点:一句“高凝聚力和松散耦合”。
特点解释:(1)专注某个业务 (2)自治性 (3)它是一个独立的实体 (4)对微服务有专门的划分原则及治理技术手段,避免把多个服务部署在同一台机器。