码迷,mamicode.com
首页 > 其他好文 > 详细

注册服务到服务中心(Consul)

时间:2019-09-30 09:42:01      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:均衡   host   discover   cond   修改   文件中   ppi   lease   service   

注册服务到服务中心(Consul)

添加POM文件中的依赖

在POM文件添加如下依赖:

                <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>

spring-boot-starter-actuator负责健康检查,spring-cloud-starter-consul-discovery负责对Consul的支持。
在引用spring-cloud-starter-consul-discovery时必须明确版本号,我们这个项目BOOT的版本是2.1.8.RELEASE,spring-cloud-starter-consul-discovery版本号是2.1.3.RELEASE,可以在Spring Cloud官网查到。
技术图片

或者使用dependencyManagement进行版本号的管理,在POM文件里添加如下内容可以不指明spring-cloud-starter-consul-discovery的版本号:

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    </properties>

    <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>
    
    <dependencies>

        .....

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>

        .....

    </dependencies>

配置文件

spring.application.name=spring-cloud-provider-01
server.port=9000
spring.cloud.consul.host=localhost
#consul端口可以自行修改
spring.cloud.consul.port=8500
#注册到consul的服务名称
spring.cloud.consul.discovery.serviceName=service-provider

启动类

SpringCloudProviderApplication.java

@SpringBootApplication
//支持服务发现
@EnableDiscoveryClient
public class SpringCloudProviderApplication {

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

}

启动服务

启动服务后自动完成注册服务的过程,回到consul控制界面可以看到服务已经注册好了:
技术图片
点击service-provider可以看到该服务只有一个微服务:
技术图片

负载均衡

我们参照spring-cloud-provider项目在复制一个微服务项目spring-cloud-provider-second,并对HelloWorld类进行修改以便区分:
spring-cloud-provider项目中的HelloWorld类:

@RestController
public class HelloWorld {

    @RequestMapping("/hello")
    public String Hello(@RequestParam String name){
        return "你好!" + name + ",这是第一个微服务。";
    }
}

spring-cloud-provider-second项目中的HelloWorld类:

@RestController
public class HelloWorld {

    @RequestMapping("/hello")
    public String Hello(@RequestParam String name){
        return "你好!" + name + ",这是第二个微服务。";
    }
}

修改spring-cloud-provider-second项目的端口号:
spring-cloud-provider-second项目中的application.properties文件内容:

spring.application.name=spring-cloud-provider-02
server.port=9001
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
#注册到consul的服务名称
spring.cloud.consul.discovery.serviceName=service-provider

启动spring-cloud-provider-second项目,查看service-provider服务提供者已经出现了两个服务提供者:
技术图片

源码

Github仓库:https://github.com/sunweisheng/spring-cloud-example

注册服务到服务中心(Consul)

标签:均衡   host   discover   cond   修改   文件中   ppi   lease   service   

原文地址:https://www.cnblogs.com/bluersw/p/11610699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!