SpringCloud系列:服务注册中心组件—consul

SpringCloud系列:服务注册中心组件—consul

持续创作,加速成长!这是我参与「日新计划 6 月更文挑战」的第7天,点击查看活动详情

作者平台

| CSDN:blog.csdn.net/qq_41153943

| :/u教程视频怎么制作方法seshell脚本r/651387…

| 知乎:www.zhihu.com/people/1变量与函数024…

| GitHub:github.com/JiangXia-10…

| 微信公众号:1024笔记

本文一共2163字,预计阅读10分钟

前言

前面的文章SpringCloud系列:服务注册与发现组教程英语件-Eureka(上)介绍了常见的服务注册与发现组件有:netflix的eureka、zookeeper(关于zk可以参考之前的文章:zookeep变量的定义er教程:入门篇)、consul、以及源码阿里的nacos。变量泵

其中SpringCl变量值oud:搭建Nacos服务以及服务发现介绍了如何使用nacos作为服务注册中心以及如何进行服务注册。文章zookeeper教程:入门篇则介绍了zookeeper的一些相关知shell怎么读识,shell怎么读 zookeshell是什么意思中文eper也可以作为服务注册中教程魔方心,但是它没有一个服务管理页面,需要通过shell的查看服务注册,使用比较麻烦。文章SpringCloud系列:服务注册与发现组件-Eureka(上服务器是什么)和SpringCloud系列:服务注册与发现组件-Eureka(下)介绍了eureka serve教程英语r如服务器租用何作为服务注册中心以及如何进行服务注册。但是eureka作为服务注册中心源码1688不仅需要自己开发微服务还需要使用eureka server开发服务注册中心,并且目前eureka 2.0版shell什么意思本已经停止孵化了。

常见的服务注册中心已经介绍的差不多了,就还差consul了,今天一起学习consul如何作为服务注册中心。

consul简介

consul是一变量泵个可以提供服务发现,健康检查,多数据中心,key/value存储等功能的分布式服务框架,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,consul的使用比较简单。consul是使用golang实现,所以具有可移植性,安装包仅仅是一个可执行文件服务器操作系统,方便安装。也非常方便和 Docker 配合使用。

更多consul的介绍:www.consul.io/docs/intro

consul官网地址:www.consul.io/

consul下载地址:www.consul.io/dowshell什么意思nloads

下载安装consul

consul下载地址:www.consul.io/downloads。可…

SpringCloud系列:服务注册中心组件---consul

下载后是一个压缩文件,解压后是一个exe文件。命令行进入到该exe文件的文件夹下(文件路径不要有中文。)或者直接该文件夹下输入cmd:

SpringCloud系列:服务注册中心组件---consul

然后输入命令变量与函数

consul agent -dev    # 以开发模式启动(测试使用)
consulagent-service#以服务器的模式启动(需要集群)

启动consul服务。

SpringCloud系列:服务注册中心组件---consul

然后打开浏览器地址栏输入:

localhost:8500

SpringCloud系列:服务注册中心组件---consul

如果不想每次都进入该目录可以将该路径配置shelly进环境变量的path路变量英语径即可。

SpringCloud系列:服务注册中心组件---consul

service表示当前注册的服务。默认consul server启动的同时注册自己,所以一开始就有一个consul服务。变量

SpringCloud系列:服务注册中心组件---consul

nodes表示consul的集服务器系统群节点。

dc1表示数据中心名称,默认是dc1(datacenter的缩写),可以通过下述命令启动时修改默认的数据中心名称:

# 启动时自定义数据中心名称
consulagent-dev-client=0.0.0.0--datacenter=jiangxia

consul下载安装并且启动完成之后就可以开发对应的微服务,然后在consul中进行服务注册了。

微服务开发以及服务注册

consul client端的开发和其他的比如nacos和eureka client的开发基本很像,主要的差别就是一些配教程英文翻译置的区别。

同理首先在父项目工程下创建一个springb教程魔方oot子项目,并且引入相关的依赖,然后就是配置文件和入口类。

具体的依赖如下:

 <dependencies>
        <!--引入springbootweb依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--引入consul依赖,用于服务注册发现-->
        <!--Consul Discovery-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <!--引入健康检查的依赖,用于健康检查监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
</project>

除了常见的通用依赖,这里的核心依赖就是Consul Discovery的依赖用于服务注册和发现以及用于健康检查的spring-boot-star变量的定义ter-变量与函数actuator依赖。

consul会检测所有客户变量端心跳,但是发送心跳时client必须给予响应该服务才能正常运行。所以需服务器系统要引入健康检查的依赖,否则会导致健康检查始终不通过,导致服务不能使用shell命令,项目启动会出现下述情况:

SpringCloud系列:服务注册中心组件---consul

入口类的代码如下:

@SpringBootApplication
@EnableDiscoveryClient //代表这是服务注册中心的一个客户端,通用的服务注册注解 可以表示consul、zk、nacos 具体根据导入的依赖判断
public class ConsulClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsulClientApplication.class,args);
    }
}

这里除了@SpringBootApplication注解之外和consu服务器怎么搭建l相关的注解是@EnableShellDiscoveryClient,表示这是一个服务注册中心的客户端,用于服shell是什么意思中文务注册和发现,@EnableDiscove变量类型有哪些ryClient和@EnableEurekaClient共同点都是能够让注shell怎么读册中心能够发现,扫描到该服务。但是和@EnableEurekaClient 注解不一样的是@EnableEurekaClient注变量名解表示使用该注解的是一个eureka client的客户端,而@EnableDiscoveryClient是一个通用的注解,可以用于nacos、zk和consul。

接下来就是配置文件配置相应的端口和服务名称等:

#指定服务端口
server.port=8082
#指定服务名称
spring.application.name=consulclient
#向consul server 服务注册地址
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.service-name=${spring.application.name}
#健康检查设置,默认是true,可以设置为false。但是同理不建议在生成环境关闭
spring.cloud.consul.discovery.register-health-check=false

这里有个配置表示用于consul的健康检查,默认设置为true,上面提到的报错问题除了导入健康检查的依赖,还可以通过配置设置关闭健康检查来解决,但是和shell编程eureka一样,生产环境不建议关闭健康检查。

spring.cloud.consul.discovery.register-health-check=false

上述开发完成,启动项目,然后地址栏输入:

http://localhost:8500

SpringCloud系列:服务注册中心组件---consul

可以发现刚刚开发的consul client已经注册进consul服务注册中心。

总结

通过上述过程,则使用consul作为服务注册中心并且进行服务注册和服务发现的开发完成了。
目前主流的服务注册中心有:eureka、nacos、consul、zookeeper。并且这几篇文章都分别介绍了这几款服务注册中心,总结下它们的区别和特点如下:

SpringCloud系列:服务注册中心组件---consul

最后本文的源码在:githshell是什么意思中文ub.com/JiangXia-教程英文翻译10…

有任何问题和不对的地方,请指出交流讨论

相关推荐

  • Spring注解源码中的图片(三):@scope设置组件作用shell翻译

  • SpringCloud:搭建Nacos服务以及服务发现

  • zookeeper教程:入门篇

  • SpringCloud系列:服务注册与发现组件-Eureka(上)

  • SpringCloud系列:服务注册与发现组件-Eureka(下)

评论

发表回复