首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud 微服务(一) :概述

Spring Cloud 微服务(一) :概述

原创
作者头像
安宁
修改2020-07-17 10:51:42
6070
修改2020-07-17 10:51:42
举报

本教程记录笔者实现微服务的过程。

1. Spring Cloud 微服务

下图是 Spring 官网的微服务架构图:

microservice
microservice

Figure 1. Spring 的微服务架构

组件职责明确,结构清晰。以下简单介绍各组件的主要职责:

Config Server

配置中心,集中管理微服务系统中所有应用的配置。

Service Registry

注册中心,集中管理微服务系统中所有应用的运行状态。

Circuit Breaker Dashboard

断路器中心,集中监控微服务系统中所有接口的响应速率。

Spring Cloud Sleuth

链路追踪中心,集中监控微服务系统中所有请求的执行路径。Sleuth 是侦探的意思。

API Gateway

接口网关,集中管理微服务系统中所有应用的接口,向外提供一个统一门面。

Spring Boot Apps

Spring Boot 应用集群,实现具体业务功能。除了 Spring Boot Apps 是多个,其他组件都是一个,因为它们的职责很明确,负载不会太重。

微服务架构搭建完成之后,后续工作只需要新增 Spring Boot Apps 和配置网关代理。

2. 本教程构建的微服务

下图是本教程构建的微服务架构图:

微服务架构
微服务架构

Figure 2. 安宁的微服务架构.png

Spring 官网的微服务架构图没有体现安全模块,实际使用需要加上。这里使用 spring-security 提供的基于 OAuth2 和 OIDC 的认证授权服务。额外提供一个 Authorization Server(认证中心),与 Config Server 平级,Spring Boot Apps 作为 Resource Server(资源服务)使用 JWT 认证。

红色连接配置中心

凡是需要使用公共配置的应用,都要连上 配置中心。上图除了 客户端-外,都要连接。

洋红连接注册中心

凡是需要使用集群的应用,都要连上 注册中心。图上重叠 1 次的应用(配置中心)只需要部署一台,即使宕机也不影响其他运行中的应用;重叠 2 次的应用(注册中心、认证中心和网关)负载较轻,部署 2 台做灾备;重叠 3 次的应用(资源服务),根据实际情况部署多台。

蓝色连接认证中心

凡是涉及到认证的应用,都要连上 认证中心。客户端从 认证中心 获取访问令牌后,调用 资源服务 的接口,资源服务 通过 认证中心 校验访问令牌是否有效。

青色连接资源服务

客户端-外通过网关调用接口,网关代理转发请求到对应资源服务客户端-内直接调用资源服务的接口。客户端-外指外部第三方系统,客户端-内指自己内部的业务系统。

3. 配置中心优先还是注册中心

配置中心优先是指先启动配置中心,然后启动注册中心,最后启动其他服务。 除配置中心之外的服务都连上配置中心,从而实现统一管理配置; 除配置中心和注册中心之外的服务都连上注册中心,从而实现统一管理应用状态。

注册中心优先是指先启动注册中心,然后启动配置中心,最后启动其他服务。除注册中心之外的服务都连上注册中心,从而实现统一管理应用状态;除注册中心和配置中心之外的服务都连上配置中心,从而实现统一配置。

类别

好处

不足

配置中心优先

统一所有配置

其他服务连接配置中心时需要提供绝对地址

注册中心优先

其他服务连接配置中心时可以使用应用名

注册中心无法使用统一配置

笔者这里采用配置中心优先。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Spring Cloud 微服务
  • 2. 本教程构建的微服务
  • 3. 配置中心优先还是注册中心
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档