如何使用Spring Cloud Consul的其他配置和发现功能,不会来学

其他配置和发现功能

前篇文中提到“服务发现”和“使用Spring Cloud Config”进行分布式配置”中讨论了大量有关服务发现和分布式配置的内容。我们详细讨论了两种解决方案,其中的第一个解决方案是Eureka,由Netlix Oss提供,并已被Spring Cloud用于服务发现; 第二个解决方案是Spring Cloud Config项目,仅专用于分布式配置。但是,市场上有一些有趣的解决方案有效地结合了这两个功能。目前,Spring Cloud支持其中两个。

如何使用Spring Cloud Consul的其他配置和发现功能,不会来学

 

口Consul: 该产品由HashiCorp构建。它是一种高度可用的分布式解决方案,旨在跨动态分布式基础架构连接和配置应用程序。Consul是一个相当复杂的产品,具有多个组件,但其主要功能是在任何基础架构中发现和配置服务。

口Zookeeper: 该产品由Apache Software Foundation构建。它是一个用Java编写的分布式、分层键/值存储。它旨在维护配置信息、命名和分布式同步。与Consul相比,它更像是一种原始的键/值存储而不是现代服务发现工具。但是, Zookeeper仍然非常流行,特别是对基于Apache Sofware堆栈的解决方案更是如此。对该领域其他两种受欢迎产品的支持仍处于开发阶段。以下项目尚未添加到官方Spring Cloud版本列车中。

口Kubernetes: 这是一 个开源解决方案,旨在实现最初由Google创建的容器化应用程序的自动化部署、扩展和管理。这个工具现在很受欢迎。最近,Docker 平台已经开始支持Kubermetes。

口Eted:这是一个分布式可靠的键/值存储,用于Go中编写的分布式系统的最关键数据。它被许多公司和其他软件产品用于生产,如Kubernetes。本章将仅介绍官方支持的解决方案,即Consul和Zookeeper。Kubernetes 不仅仅是一个键/值存储或服务注册表,本书将在第14章“Docker支持”中详细讨论它。

使用Spring Cloud Consul

Spring Cloud Consul项目可以通过自动配置为Consul和Spring Boot应用程序提供集成。通过使用众所周知的Spring Framework注解样式,开发人员可以在基于微服务的环境中启用和配置常见模式。这些模式包括:使用Consul代理进行服务发现、使用Consul键/值存储进行分布式配置、使用Spring Cloud Bus进行分布式事件以及使用Consul Events等。该项目还支持基于Netflix Ribbon的客户端负载均衡器和基于Nettlix Zuul的API网关。在开始讨论这些功能之前,必须先运行并配置Consul代理。

运行 Consul代理

我们将从在本地计算机上启动Consul代理的最简单方法开始。可以使用Docker容器轻松设置独立开发模式。以下命令将从Docker Hub上可用的官方Hashicorp 镜像启动Consul容器。

docker run -d --name consul -p 8500:8500 consul

在启动之后,Consul的地址为htp://9/168.99.100.85000 它公开了RESTful HTTP API,这也是它的主接口。所有API路由都以/VI/为前缀。当然,它不需要直接使用API。有一些编程库可以更方便地使用API,其中一个是consul-api,客户端用Java编写,内部也由Spring Cloud Consul使用。Consul 提供的Web用户界面仪表板在与HTTP API相同的地址下可用,但在不同的上下文路径/ui/上。它允许查看所有已注册的服务和节点,查看所有运行状况检查及其当前状态,以及读取和设置键/值数据。

如前文所述,我们将使用Consul的3个不同功能一代理、事件和键值存储。它们的对应端点分别是/agent. /event 和Av。 最有趣的代理端点是与服务注册相关的端点。表10.1是这些代理端点的列表。

如何使用Spring Cloud Consul的其他配置和发现功能,不会来学

 

/kv端点专用于管理简单的键/值存储,这对于存储服务配置或其他元数据特别有用。值得注意的是,每个数据中心都有自己的KV存储,因此,要在多个节点之间共享它,开发人员应该配置Consul复制守护进程。表10.2是管理键/值存储的3个端点的列表。

如何使用Spring Cloud Consul的其他配置和发现功能,不会来学

 

Spring Cloud使用Consul Events 提供动态配置重新加载。有两种简单的API方法。第一种是PUT /event/fire/:name,它将触发一个新事件。第二种是GET /event/list,它将返回一个事件列表,并且可以按名称、标记、节点或服务名称进行过滤。

在客户端集成

要在项目中激活Consul服务发现,应该在依赖项中包含spring 
cloud-tarter-consul-discovery启动器。如果要使用Consul 启用分布式配置,只需包含spring-cloud-starter-consul-confg.在某些情况下,开发人员可能会在客户端应用程序中使用这两个功能,这样的话就应该声明对spring cloud. starter consu-al工件的依赖。

<dependency>

<groupId>org. spr ingframework. cloud</groupId>

<artifactId>spring-cloud-starter-consul-all</arti factId>

</dependency>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值