spring boot2X整合Consul一服务注册与发现总结

熊孩纸 阅读:195 2021-06-16 22:17:47 评论:0

Consul 

  是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。

  关键特性:

    服务注册/发现

    数据强一致性保证

    多数据中心

    健康检查

    key/value存储

1.下载 IT虾米网

  eg:下载的文件consul_1.6.1_windows_amd64.zip

  解压

  在path添加consul.exe所在路径

2.启动

  启动就是运行一个Consul Agent实例

  可以作为Server或Client角色运行

consul agent -dev

 

  -dev 表示开发模式运行, -server 表示服务模式运行

  说明:

    启动dev模式需要使用到的端口有

8300 服务间通信(tcp) 
8301 lan cossip的端口 
8302 wan gossip的端口 
8500 web ui界面的端口 
8600 dns通信

浏览器打开http://localhost:8500

3.spring boot 整合

 spring boot 版本 2.2.1.RELEASE

(1)添加依赖

修改pom.xml

<properties> 
    <java.version>1.8</java.version> 
    <spring-cloud.version>Greenwich.SR3</spring-cloud.version> 
</properties> 
 
<dependencies> 
    <dependency> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
 
    <dependency> 
        <groupId>org.springframework.cloud</groupId> 
        <artifactId>spring-cloud-starter-consul-discovery</artifactId> 
    </dependency> 
</dependencies> 
 
<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>

(2)修改配置

application.properties

server.port=8010 
 
spring.application.name=provider 
spring.cloud.consul.host=localhost 
spring.cloud.consul.port=8500 
spring.cloud.consul.discovery.health-check-path=/actuator/health 
spring.cloud.consul.discovery.service-name=service-provider 
spring.cloud.consul.discovery.heartbeat.enabled=true 
 
management.endpoints.web.exposure.include=* 
management.endpoint.health.show-details=always

说明:

  spring.cloud.consul.discovery.service-name是指注册到 Consul 的服务名称,后期客户端会根据这个名称来进行服务调用

(3)修改启动类

开启服务发现支持,添加注解 @EnableDiscoveryClient

package com.xyz.provider; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 
 
@EnableDiscoveryClient 
@SpringBootApplication 
public class ProviderApplication { 
 
    public static void main(String[] args) { 
        SpringApplication.run(ProviderApplication.class, args); 
    } 
 
}
View Code

(4)添加测试方法

package com.xyz.provider.controller; 
 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
 
@RestController 
public class demoController { 
    @RequestMapping("/hello") 
    public String Hello(){ 
        return "hello,provider"; 
    } 
     
}

浏览器打开http://localhost:8500


标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们