微服务架构实战读书笔记(一)---微服务概述
1. 什么是微服务
微服务是一种软件架构模式,将大型系统或者复杂的应用分割成多个服务的架构。服务之间互相协调,故乡配合,为用户提供最终价值。每个服务都有独立的生命周期,可以单独维护和部署,各个业务模块之间是松耦合的。简单地说,微服务架构就是把一个大系统按业务功能分解成多个职责单一的小系统,并利用简单的方法使得多个小系统相互协作,组成一个大系统。
2. 为什么使用微服务
传统方式管理服务复杂,基础服务多。服务之间调用复杂。服务监控难度大,部署复杂。
优势:
开发简单,每个服务完成独立的功能;
技术栈灵活,可以选择不同的语言完成不同的服务,发挥各种语言的最大优势;
服务独立无依赖:每个服务都可以单独部署,一个服务出现问题不会导致整个系统瘫痪;
独立按需扩展:以应对高并发与大流量;
可用性高:当一个点出现问题,能及时切换,不影响业务的正常运行;
复杂应用解耦成小而众的服务:拆分可以基于一定的原则,将耗时的应用解耦;
各个服务精而专
服务间通信通过API完成:选择轻量的API
问题:
架构设计变得复杂;
部署单个五福比较快,但溢出部署多个服务会复杂;
吞吐量会变大,但响应时间会变长;
运维复杂度会因为服务变多而变得很复杂
3. 微服务与SOA的区别
相同点:都需要Registry,实现动态地服务注册发现机制。
需要考虑分布式下面的事务一致性,CAP原则下,两段式提交不能保证性能,事务补偿机制需要考虑。
同步调用还是异步消息传递。
都需要统一的网关来汇聚、编排接口,实现统一认证机制,对外提供APP使用的RESTFUL接口。
差异:
持续集成、持续部署?CI/CD 这本身和敏捷、DevOps交至在一起,更倾向于软件工程领域而不是微服务技术本身。
使用不同的通信协议是不是区别?微服务的标杆通信协议是RESTFUL,而传统的SOA一般是SOAP,不过目前来说采用轻量级的RPC框架比较多。
自动化程度的不同,大部分的SOA时下只达到服务级别的抽象,而微服务达到了对实现和运行环境的抽象级别。
#笔记##读书笔记#