微服务架构技术栈
所属分类 architecture
浏览量 1559
微服务基础架构
服务框架
tcp http rest rpc 序列化
二进制 文本
客户端代码自动生成
跨语言
运行时支撑服务
服务网关 微服务注册与发现 负载均衡 配置中心
服务容错
超时 熔断 隔离 限流 降级
服务监控
日志监控 调用链监控 metrics监控 健康检查 告警通知
部署运维
发布机制(蓝绿 灰度 金丝雀)
发布系统 发布流水线
容器镜像 容器调度平台
租户资源治理
服务安全
oauth jwt
IAM Identity and Access Management
后台服务
消息系统 分布式数据访问层 缓存管理 任务调度
微服务技术栈
开发框架 SpringBoot,Spring,SpringMVC springcloud
服务注册与发现 Eureka Consul Zookeeper
服务调用 Rest RPC gRPC
服务熔断器 Hystrix Envoy
负载均衡 Ribbon Nginx
服务接口调用(客户端调用服务封装) Feign
配置中心 SpringCloudConfig Apollo
消息队列 Kafka RabbitMQ ActiveMQ
服务路由(API网关) Zuul gateway
服务监控 日志监控ELK Metrics监控 prometheus
链路追踪 Zipkin Dapper 点评CAT Pinpoint
服务部署 Docker OpenStack k8s
事件消息总线 SpringCloud Bus
分布式消息 Kafka RocketMQ RabbitMQ
分布式数据访问层 shardingjdbc
任务调度系统 xxl-job
持续交付流水线(CD Pipeline)
一个简单的微服务流程
1.使用支持 OAuth 2.0 和 OpenID Connect 标准协议的授权服务器
2.使用 API 网关作为单一访问入口,统一实现安全治理
3.客户在访问微服务之前,先通过授权服务器登录获取 access token,然后将 access token 和请求一起发送到网关
4.网关获取 access token,通过授权服务器校验 token,同时做 token 转换获取 JWT token
5.网关将 JWT Token 和请求一起转发到后台微服务
6.JWT 中可以存储用户会话信息,该信息可以传递给后台的微服务,也可以在微服务之间传递,用作认证授权等用途
7.每个微服务包含 JWT 客户端,能够解密 JWT 并获取其中的用户会话信息。
access token 是一种 by reference token,不包含用户信息可以直接暴露在公网上
JWT token 是一种 by value token,可以包含用户信息但不暴露在公网上
简化的发布流程
1.应用通过 CI 集成后生成镜像,用户将镜像推到镜像治理中心
2.用户在资产治理中心申请发布,填报应用,发布和配额相关信息,等待审批通过
3.发布审批通过,开发人员通过发布控制台发布应用
4.发布系统通过查询资产治理中心获取发布规格信息
5.发布系统向容器云发出启动容器实例指令
6.容器云从镜像治理中心拉取镜像并启动容器
7.容器内服务启动后自注册到服务注册中心,并保持定期心跳
8.用户通过发布系统调用服务注册中心调拨流量,实现蓝绿,金丝雀或灰度发布等机制
9.网关和内部微服务客户端定期同步服务注册中心上的服务路由表,将流量按负载均衡策略分发到新的服务实例上
上一篇
下一篇
java8 jvm 参数
CMS JVM参数介绍
微服务简介
Spring Cloud Eureka 常用配置及说明
三十条架构设计原则
单体应用vs微服务