《springcloud学习》十 Springcloud整合consul作为注册中心

1.简介

consul是一套开源的分布式服务发现和配置管理系统,用go语言开发,raft协议,提供图形界面管理

2 window环境搭建consul注册中心

下载地址:https://www.consul.io/

下载window版本,解压后,可得到一个consul.exe

通过cmd进入,该文件夹目录

cmd>>>d:

cmd>>>cd /consul_1.5.2_windows_amd64

启动consul命令

consul agent -dev -ui -node=cy

通过http://localhost:8500访问图形界面

   注意:如果需要外面的电脑也能连上该配置,需要修改配置127.0.0.1为本地ip的地址

3 consul实现服务注册和发现

需要导入父模块依赖,具体查看之前的博客

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

    <groupId>com.fqyd</groupId>
    <artifactId>springcloud</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>
    <modules>
        <module>springcloud_eureka</module>
        <module>springcloud_eureka_ha</module>
        <module>springcloud_product</module>
        <module>springcloud_product_member</module>
        <module>springcloud_consumer</module>
        <module>springcloud_zk_member</module>
        <module>springcloud_consul_member</module>
    </modules>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!-- Spring Cloud 管理依赖 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

会员提供者 

 3.1 pom.xml 

   <!-- SpringBoot整合consul客户端 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
    </dependencies>

3.2 application.yml

###会员服务的端口号
server:
  port: 8002
###服务别名----服务注册到注册中心名称
spring:
  application:
    name: zk-member
  cloud:
    zookeeper:
      #注册到zk的地址
      connect-string: 127.0.0.1:2181

3.3 controller类

package com.fqyd.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Description:
 * Author: wude
 * Date:  2019/7/10 16:44
 * Modified By:
 */
@RestController
public class MeberApiController {
    @Value("${server.port}")
    private String port;

    @RequestMapping("getMember")
    public String getMember() {
        return "this is member!端口号为:" + port;
    }
}

3.4启动类

package com.fqyd;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient   //如果服务注册是consul或者zk,可以使用该注解
public class SpringcloudZkMemberApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudZkMemberApplication.class, args);
    }

}

3.5效果

上面提供的代码是提供者的代码,消费者的代码可以把zk+springcloud博客,对应的代码修改一下就可以

发布了263 篇原创文章 · 获赞 366 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/qq_16855077/article/details/96966019
今日推荐