1-初识微服务
1.1了解过程
1.2-什么是软件架构
1.3-软件架构的进化
1.3.1-单体架构
定义:功能、业务集中在一个发布包,部署在同一个进程中。
优势:易于开发、易于测试、易于部署、易于水平伸缩
挑战:代码膨胀,难以维护;构建、部署成本大;新人上手困难;创新困难;可扩展性差;
1.3.2-微服务
定义:使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署。
特征:单一职责、轻量级通信、隔离性、有自己的数据、技术多样性
诞生背景:互联网行业的快速发展;敏捷开发,精益方法深入人心;容器技术的成熟;
微服务架构图:
2- 微服务带来的问题及解决方案分析
2.1- 微服务架构引入的问题及解决方案
微服务如何通讯?
微服务如何发现彼此?
微服务怎样部署?更新?扩容?
2.2-微服务如何通讯
MQ-适用于消息的发布订阅模式
2.2.1 如何选择RPC框架
I/O、线程调度模型;序列化方式;多语言支持;服务治理
流行的RPC框架:Dubbo/Dubbox Thrift Motan Grpc
2.2.2-服务发现
传统服务vs 微服务
2.2.3-服务编排
工具:Metons Docker Swaram Kubernetes
2.2.4 SpringBoot 与微服务
SpringBoot的使命:化繁为简
Sprintboot的核心功能:独立运行(java -jar xxx.jar) 内嵌服务器(tomcat) 简化配置 准生产的应用监控
SpringBoot与微服务的关系:Java的润滑剂
SpringCloud的使命:简化Java的分布式系统
SpringCloud的核心功能:一系列框架 简化java的分布式系统 SpringBoot封装
SprintBoot vs SpringCloud
SpringBoot意在简化,是一种开发、配置风格
SpringCloud意在简化分布式,是功能的集合,风格 的统一
SpringCloud vs微服务
SpringCloud 是java的微服务;侧重功能,侧重开发;