一、工具及说明
开发工具:IntelliJ IDEA 2018.2.2 (Ultimate Edition)
框架:spring boot 2.0.8、spring cloud Finchley.SR2
以通用户ID获取用户信息为例,搭建一套spring cloud微服务系统。
需要搭建一个父工程spring-cloud,一个服务注册中心eureka-server,两个微服务cloud-client,cloud-provider。
两个微服务均注册到服务注册中心。
二、微服务运行展示
- 运行
依次启动cloud-discovery、cloud-provider、cloud-client,三个项目分别对应的端口为8080、8081、8082.
- 服务注册中心WEB界面,
在浏览器打开http://localhost:8080,即进入登陆界面。
对应输入basic认证的用户名user和密码123456,进入监控页面。
在监控页面可以看到:服务注册中心的主机名称、已经注册的微服务及状态、服务注册中心的注册地址等等。
- 调用接口。
在浏览器输入http://localhost:8082/user/1,调用cloud-client获取用户信息的接口,cloud-client会通过Feign请求cloud-provider对应接口,返回用户信息。
- 健康检查actuactor/health。
访问http://localhost:8082/actuactor/health,或http://localhost:8081/actuactor/health。
可以获得对应微服务的健康状态,UP是正常。这个用处不是很大。
- 获取微服务的运行环境信息actuactor/env。
访问http://localhost:8082/actuactor/env,或http://localhost:8081/actuactor/env。
可以查看对应微服务完整的运行环境信息,非常有用。
- 大部分可用节点见下表。
节点 | 节点描述 | 默认启用 |
---|---|---|
auditevents | 公开当前应用程序的审核事件信息 | 是 |
beans | 显示应用程序中所有Spring bean的完整列表。 | 是 |
conditions | 显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。 | 是 |
configprops | 显示所有的整理列表@ConfigurationProperties。 | 是 |
env | 露出Spring的属性ConfigurableEnvironment。 | 是 |
health | 显示应用健康信息。 | 是 |
httptrace | 显示HTTP跟踪信息(默认情况下,最后100个HTTP请求 - 响应交换)。 | 是 |
info | 显示任意应用信息。 | 是 |
loggers | 显示和修改应用程序中记录器的配置。 | 是 |
metrics | 显示当前应用程序的“指标”信息。 | 是 |
mappings | 显示所有@RequestMapping路径的整理列表。 | 是 |
scheduledtasks | 显示应用程序中的计划任务。 | 是 |
shutdown | 允许应用程序正常关闭。 | 是 |
threaddump | 执行线程转储。 | 是 |
sessions | 允许从Spring Session支持的会话存储中检索和删除用户会话。使用Spring Session对响应式Web应用程序的支持时不可用。 | 是 |
-
一个简单的微服务集群就搭建完成了,是不是很简单。
但要构建一个高可用的微服务集群,还需要做一些调整,加入一些配套微服务和功能,加入一些方便维护的监控微服务和功能。**高可用:**首先服务注册中心至少得有两个实例,各个微服务至少两个以上的实例,这样才能其中一个异常停止服务后,还能对外提供服务;
**配套微服务和功能:**配置中心、网关、负载均衡、断路器等;
**监控微服务和功能:**断路器监控、链路追踪监控、健康监控、日志管理工具等等。
下一节将开始搭建高可用的微服务集群。