微服务架构开发实战之概览
微服务架构开发实战之概览
介绍下什么是微服务以及spring Cloud为开发微服务架构应用程序提供了哪些组件。
- 视频讲解
01. 微服务架构开发实战之概览
更多精彩内容: 微服务架构开发实战专栏简介
1.1 简单理解微服务
1.1.1 什么是微服务?
”微服务就是一些协同工作的小儿自治的服务“ —— Sam Newman
1.1.2 微服务的优点?
- 异构性:支持每个微服务使用不同的语言编写存储(实际上使用单一语言Java)
- 弹性:一个组件不可用不会导致级联故障
- 扩展:单体服务不易扩展,多个较小的服务可以按需扩展
1.1.3 微服务的缺点
- 分布式系统的复杂性
- 开发测试等研发过程变得复杂性
- 部署监控等很多运维复杂性
1.2 微服务组件
1.2.1 服务治理
遇到问题:
- 作为消费者如何访问并调用生产者,
- 作为生产者如何让消费者知道并进行消费
- 服务着是否处于在线提供服务状态
解决方案:服务治理包括服务注册和服务发现
使用组件: Spring Cloud Eureka
1.2.2 微服务的负载均衡
遇到问题:
- 服务消费者如果有多个服务生产者实例,该选择哪个服务生产者实例进行消费?
- 也就是说如何进行客户端负载均衡?
解决方案:消费者客户端负载均衡
使用组件:Spring Cloud Open Feign
(简化Ribbon使用)
1.2.3 微服务的API Gateway
遇到问题:各个API 之间如何调用问题
解决方案: 门户模式,API Gateway就是为微服务提供一个统一入口
使用组件:Spring Cloud Gateway
1.2.4 微服务的容错保护
遇到问题:雪崩效应
解决方案:断路器,服务降级
使用组件:Spring Cloud Circuit Breaker( 支持 Netflix Hystrix
1.2.5 微服务的统一配置
遇到问题:各个微服务之间的一些公用配置
解决方案:gi t 方式远程修改维护配置
使用组件:Spring Cloud Config
1.2.6 微服务的服务追踪
遇到问题:多个微服务异常日志追踪
解决方案:日志聚合
使用组件:Spring Cloud Sleuth +ELK (Elasticsearch+Logstach+Kinabalu)日志聚合
或Spring Cloud Sleuth + Zipkin(可视化分析展示)
1.2.7 微服务的安全
遇到问题:微服务调用如何授权认证问题
解决方案:Spring Cloud Security+ Oauth 2.0+ JWT(Java web Token)
使用组件:Spring Cloud Security 整合Oauth 2.0 以及 JWT (Java Web Token)来构建我们的安全体系
1.2.8 微服务之间通信
遇到问题:各个微服务进程之间如何通信的问题
解决方案:引入消息中间件, Restful API ,RPC
使用组件: Spring Cloud Stream
1.2.9 微服务消息总线
遇到问题:如何解决修改的配置文件更新问题
解决方案:自动刷新配置
使用组件:Spring Cloud Bus
1.2.10 微服务部署
遇到问题:微服务实例上线和下线
解决方案:使用容器或 命令行,脚本方式管理微服务
使用组件:Spring Cloud Kubernetes + Jenkins 或 Spring Cloud Cli
本篇完~