【Spring Cloud H 版教程】第四篇:注册中心组件Consul

本文详细介绍了如何使用Spring Cloud Consul作为注册中心和配置中心。从安装Consul服务端,到客户端的配置与连接,再到利用Consul进行服务发现和动态属性配置,展示了Consul在微服务架构中的重要作用。
摘要由CSDN通过智能技术生成

1.概述

在前面的文章我们已经提到过,服务发现是微服务架构不可或缺的基础设施组件,Eureka 作为 Spring Cloud 标准服务发现的实现组件之一,由 Netflix 公司研发,是目前企业用得最多的注册中心组件。Eureka 包含了 1.x 版本 和 2.x 版本,其中 1.x 版本在国内被广泛使用,Netflix 本来想趁热打铁,推出 Eureka 2.x 版本,然而就在 2018 年 7 月,其官方突然宣布 Eureka 2.0 的开源工作不再继续,并警告用户使用 2.x 版本来部署生产环境,需要自己承担一切后果。

在当时这样的背景之下,各大企业不得不需要重新考虑在注册中心组件上的技术选型,由于当时 Nacos 还没有被纳入到 Spring 官方正式项目大家庭中,所以并没有引起人们足够的关注,倒是 Spring 官方之前一直不温不火的 Consul 突然开始流行起来,成为中小企业首选的注册中心组件。Consul 全称 Spring Cloud Consul ,采用 Go 语言开发,是 Spring 官方的正式项目之一,是 Spring Cloud 大项目的组成部分。如同 Eureka 一样,Consul 也提供了非常方便整合 Spring Boot 项目的能力,同样只需要少量的注解和配置用户就可以快速地启用 Consul ,构建出大型分布式系统。Consul 不仅拥有服务发现的功能,还拥有 Eureka 没有的分布式配置中心功能,并且 Consul 可以很好地支持 Spring Cloud Netflix 相关的开源组件,例如 Ribbon、Zuul 等。

2.安装服务端

Consul 同样包含的服务端和客户端,其中服务端程序不需要我们像 Eureka 那样需要手动创建,已经提前发布在其官网上,截止到作者写该篇文章时 Consul 最新版为 1.7.2 。

2.1下载Consul管理台

Consul 下载地址:

官方网站:https://www.consul.io
下载地址:https://www.consul.io/downloads.html

图片: https://uploader.shimo.im/f/rzsrYjGwYX4KtTYQ.png

2.2安装Consul管理台

实际开发中一般使用 Linux 环境部署 Consul,所以作者只演示在 Linux 环境的安装和启动,其他环境读者朋友可以查阅相关资料自己去安装和启动,作者演示的 Linux 注解 IP 地址为:192.168.0.149 。

第一步:安装 Consul。安装非常简单只需要解压 zip 文件即可:

[root@test home]# unzip consul_1.7.2_linux_amd64.zip

解压完成之后可以将 consul 命令 拷贝到 /usr/local/bin 目录中,这样就可以全局使用该命令。

[root@test software]# mv ./consul /usr/local/bin/

第二步:启动 Consul。执行以下命令启动:

consul agent -server -bind=192.168.0.149 -client=0.0.0.0 -bootstrap-expect=1 -data-dir=./data -node=server1 -ui

-server 表示以服务端身份启动
-bind 绑定主机地址,默认是 127.0.0.1
-client 指定客户端访问的 IP (consul 有丰富的 api 接口,这里的客户端指浏览器或调用方),0.0.0.0 表示不限制客户端 IP
-bootstrap-expect=1 表示 server 集群最低节点为 1,低于这个值将工作不正常(注:类似zookeeper一样,通常集群数为奇数,方便选举,consul采用的是raft算法)
-data-dir 表示指定数据的存放目录
-node 表示节点在 web ui 中显示的名称
-ui 表示启用web管理台

第三步:访问 Consul 管理台,管理台默认端口是 8500 。在浏览器输入地址 http://192.168.0.149:8500 即可访问。
图片: https://uploader.shimo.im/f/d3LS1QSVTDkbvtQF.png
注意:Consul 管理台目前存在一些 bug,在谷歌浏览器下会经常出现 Error 错误,建议使用其他浏览器打开,例如火狐浏览器。

Consul returned an error. You may have visited a URL that is loading an unknown resource, 
so you can try going back to the root or try re-submitting your ACL 
Token/SecretID by going back to ACLs.Try looking in our documentation

在这里插入图片描述

3.注册中心

3.1加入consul-discovery依赖

客户端程序整合 Consul 需要在 POM 中加入 spring-cloud-starter-consul-discovery 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值