SpringCloud 学习笔记5--SpringCloud 搭建Consul注册中心

八、Consul注册中心环境搭建

    1、 Consul简介

                Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用go语言开发。它具有很多优点,包括:基于             raft协议,比较简洁;支持健康检查,同时支持http和dns协议,支持跨数据中心的WAN集群,,提供图形界面跨平台,支持            linux、mac、windows。

                Consul整合SpringCloud学习网站:https://springcloud.cc/spring-cloud-consul.html

                Consul下载地址:https://www.consul.io/downloads.html

     2、Consul环境搭建

              (1)windows版安装

                        官网下载windows版,解压后有可执行文件,设置环境变量,在dos窗口直接使用consul命令,在path后面添加                           consul所在目录,然后执行启动命令:consul agent -dev -ui -node=gh    其中:-dev开发服务器模式启动,-node节点                    名为gh,-ui可以用界面访问,默认能访问,然后测试访问地址 http://localhost:8500。(默认端口8500)

              (2)mac版安装,

                   1)查看mac的os系统版本命令:uname -an,官网下载对应版本的mac版的consul文件。

                   2)将解压后的文件consul  拷贝到/usr/local/bin下sudo cp consul /usr/local/bin

                   3)打开bin文件,执行consul,查看consul命令,如下即表示成功。

                    

       4)输入启动命令,浏览地址栏输入http://localhost:8500,效果如下:

              

 

九、SpringCloud使用Consul替代Eureka作为注册中心

   1、建立maven工程,导入相关依赖jar包

     

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.gonghua</groupId>
  <artifactId>springcloud-consul-member</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <parent>
  	<groupId>org.springframework.boot</groupId>
  	<artifactId>spring-boot-starter-parent</artifactId>
  	<version>2.0.1.RELEASE</version>
  </parent>
  
  <!-- 管理依赖 -->
  <dependencyManagement>
  		<dependencies>
  			<dependency>
  				<groupId>org.springframework.cloud</groupId>
  				<artifactId>spring-cloud-dependencies</artifactId>
  				<version>Finchley.M7</version>
  				<type>pom</type>
  				<scope>import</scope>
  			</dependency>
  		</dependencies>
  </dependencyManagement>
  
  <dependencies>
  <!-- springboot整合web组件 -->
  	<dependency>
  		<groupId>org.springframework.boot</groupId>
  		<artifactId>spring-boot-starter-web</artifactId>
  	</dependency>
  	<!-- springboot整合consul客户端 -->
    <dependency>
  		<groupId>org.springframework.cloud</groupId>
  		<artifactId>spring-cloud-starter-consul-discovery</artifactId>
  	</dependency>
  	
  	 
  </dependencies>
  
  <!-- 注意:这里必须添加,否则各种依赖会出问题 -->
  <repositories>
  	<repository>
  		<id>spring-milestones</id>
  		<name>Spring Milestones</name>
  		<url>https://repo.spring.io/libs-milestone</url>
  		<snapshots>
  			<enabled>false</enabled>
  		</snapshots>
  	</repository>
  </repositories>
 
</project>

2、配置application.properties,如下:

##服务端口号
server.port=8005
##服务别名--服务注册到注册中心名称
spring.application.name=consul-member
##注册到consul服务地址
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
##服务地址直接为ip地址
spring.cloud.consul.discovery.hostname=127.0.0.1
##默认情况下,服务注册到注册中心,地址随机生成的英文

3、启动服务,访问consul页面,效果如下:

服务消费者的代码就不再写了,和其他的服务消费者一样,只需要更改pom的依赖和yml配置即可。

附加:如何获取到注册中心上服务列表信息,代码如下:

    //获取注册中心上的服务列表信息
	@RequestMapping
	public List<ServiceInstance> discoveryClientMember(){
		List<ServiceInstance> instances = discoveryClient.getInstances("zk-member");
		for (ServiceInstance serviceInstance : instances) {
			System.out.println("url:---"+serviceInstance.getUri());
		}
		return instances;
	}
发布了27 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gonghua0502/article/details/103264302