微服务技术体系

微服务技术体系

微服务是基本定义:微服务是
    ①一系列微小的服务
    ②可独立运行在自己的进程中
    ③去中心化管理
    ④可使用不同的语言开发
    ⑤可使用不同的数据存储技术的集合

一、微服务 相对于 单体应用

1.优势:

a,按需伸缩:根据业务需求对不同服务进行扩展,避免资源浪费
b,错误隔离:明确责任,隔离资源,避免小错误导致系统瘫痪
c,异构性:根据需要选择不同的技术栈,小规模试用新技术降低迭代风险
d,独立部署测试:代码管理粒度更细,代码更新部署风险更小,测试工作量更小

2.劣势:

a,运维困难:微服务部署复杂,运维成本较高
b,请求延时:调用链路长且复杂,平均响应时间长,且难以定位高延时环节
c,数据弱一致性:为满足高可用无法做到强一致性,跨服务事务实现难度高
d,架构复杂:微服务架构复杂,需要较高的学习成本

二、微服务使用场景

1    需求层面
    A 适合需求变更频繁,快速迭代的系统
    B 不适合需求比较稳定的系统比如OA
2    性能层面
    A 适合吞吐量要求比较高的应用场景
    B 不适合响应时间要求严格的软件,如股票软件
3    交付层面
    A 适合公有云平台
    B 不适合私有化部署