SpringCloud 上
Spring Cloud 是在 Spring Boot 基础上构建的, 用于检查分布式系统构建的工具集. 工具集包括 配置管理, 服务发现, 智能路由,断路器,为代理和控制总线.
服务发现 Eureka
包括 服务发现组件(Eureka Server) 也叫做注册中心 和 客户端发现组件 (Eureka Client)
服务之间的调用, 现在假设已经注册完成, consumer 先去 注册中心获取到了服务地址, 然后再去调用相关服务.
在服务调用过程中, 用到了一个工具, 叫做 RestTemplate, RestTemplate 是由 Spring 提供的一个 HTTP 请求工具(要知道一个HTTP请求, 可能需要带head等)
当然, Java 也提供了一个自带的 HttpUrlConnection 或者经典的 HttpClient, 只是在 Spring 项目中, 使用 RestTemplate 更方便一些.
RestTemplate 提供常见的 REST 请求方案的模板, 例如 GET 请求, POST 请求,
Ribbon 负载均衡器
Hystrix + Dashboard
这个 Dashboard 本身是配合 Hystrix 使用的, 有相关的注解, 然后这个 Dashboard 本身自己也是一个微服务.
启动这个工程(实际上本身就是一个微服务), 通过浏览器 http://localhost:8031/hystrix.stream 将会看到下图:
API 网关
实际上, API 网关也是一个微服务, 也需要注册到注册中心.
分布式配置管理
Spring Cloud Config, 传统的单体的, 会将配置和代码放在一起, 但随着系统越来越大, 引入了分布式系统, 同时也将系统功能进行更加细化的拆分.
拆分后, 所有的服务应用都会有自己的配置文件, 当需要修改某个服务的配置时, 我们可能需要修改很多处, 并且为了某一项配置的修改, 可能需要重启这个服务相关的所有服务, 非常麻烦.
为了便于集中配置的统一管理, 在分布式架构中通常会使用分布式配置中心组件, 现在比较流行的有 携程的 apollo, spring Cloud Config 等.
Spring Cloud Config 为分布式系统的 外部配置 提供了 服务器(Config Server) 和 客户端(Config Client) 支持.
服务器端: 被称为分布式配置中心, 它是一个独立的微服务, 主要用于集中管理应用程序各个环境下的配置, 默认使用 Git 存储配置文件内容, 也可以使用SVN存储, 或者本地文件存储.
客户端: 就是微服务架构中的各个微服务应用. 它们通过指定的配置中心(Config Server) 来管理应用资源以及与业务相关的配置内容, 并在启动时从配置中心获取和加载配置信息.
而且, 还可以通过 BUS 总线的方式, 实现动态修改配置(为了已经启动的微服务)
1) 客户端 也要加相关注解