问题描述:微服务架构基本理念和原则,相关实现技术,为什么会在团队中选择微服架构,实行微服架构过程中遇到的问题及其解决方案
关键思路:
1.服务建模
2.服务拆分和集成
3.基础组件与关键要素
4.spring cloud技术体系
5.团队业务发展特点和组织架构,微服务粒度和边界
具体剖析:
集中式架构的优缺点:
优势:
1.易于开发,测试,部署
2.具有一定的程度多水平伸缩性
劣势:
1.维护成本与业务复杂度
2.团队规模与结构
3.交付周期与管理
4.可扩展性
微服架构的定义:
1.微服架构是一种架构模式,它提倡将单一应用划分成一组小的服务,服务于服务之间相互协调配合,为用户提供最终价值。
2.每个服务运行在独立的进程中,服务与服务之间采用轻量级通信机制相互沟通。(通常是基于http的restfull api)
3.每个服务围绕着业务进行构建,并且能够被独立打部署到生产环境中
4.尽量避免统一的,集中式的服务管理机制,对具体对服务而言,应该根据业务上下文,选择适合的工具,语言进构建。
”微“ 特性
1.业务独立
2.团队自主
3.技术无关轻量级通信
4.交付独立性
微服架构实现策略
1.采用松散的服务体系
1.1:独立开发,部署,维护,独立部署单个服务,而不需要修改其他的服务
1.2:技术无关的集成接口,尽可能使用轻量级的通信方式进行服务集成
2.围绕业务组件团队
3.融合技术多样性
4.确保业务数据独立
5.基础设施自动化:devops
5.1:服务部署
5.2:健康诊断
5.3:错误回滚
5.4:日志分析
5.5:服务治理
总体原则:
1.围绕业务概念建模
2.自动化的文化
3.一切都是去中心化
4.独立部署
5.隔离失败
6.高度可观察
微服务架构存在的问题
1.分布式系统固有的复杂性
1.1:性能
1.2:可靠性
1.3:异步
1.4:数据一致性
2.部署自动化与运维成本
2.1:配置
2.2:监控和报警
2.3:日志收集
2.5:部署流水线
3.组织架构
4.服务间的依赖管理
5.测试的复杂性
理想的集成技术
1.服务兼容性修改,尽量避免服务定义的修改导致服务消费方也需要修改
2.保证api的技术无关性
3.服务易于消费分使用
4.隐藏内部实现细节
集成技术:
文件传输,数据共享,远程过程调用,消息传递
请求/响应模式:
1.rpc:本地调用,结果由远程服务器产生。
2.rest:rest+http+json
事件驱动模式:
1.各种消息中间件