主要观点:文章介绍了 HashiCorp Consul 服务的一些基础知识及其配置,它是一个服务网络解决方案,提供服务注册和发现功能,与 Spring Boot 无缝集成,类似 Netflix Eureka 且功能更多,支持现代响应式编程范式,通过一些应用进行讲解。
关键信息:
- 架构包含 Consul、服务应用、网关三个主要组件。
- 需从 HashiCorp Consul 官网下载安装 Consul 服务,开发时在 PowerShell 中启动
consul agent -dev。 - 服务应用中添加
@EnableDiscoveryClient注解在主类注册服务,使用 Actuator 暴露健康状态,有相应的 Maven 配置和应用属性文件。 - 网关使用 Spring Cloud Gateway 开发,包含相同库,通过 Consul 注册和发现服务,需配置路由等。
- 最终 Consul 仪表盘可看到网关和服务应用的实例。
重要细节: - Consul 仪表盘默认端口 8500,多个服务实例时 Consul 用“Actuator”监控健康并自动注销不健康实例。
- 服务应用属性文件中对各种配置的详细设置,如为服务分配唯一 ID、使用 IP 地址注册等。
- 网关中由于
spring.cloud.gateway.discovery.locator.enabled设为 false 需显式配置路由,通过lb://service-app映射到 Consul 提供的负载均衡 URL。 - 测试时通过网关调用示例 API 可看到每次从不同实例返回响应。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。