Springcloud学习日记(四)服务注册与发现之Consul

上篇文章介绍了如何使用zookeeper作为服务与注册中心,本篇文章将介绍一下如何使用Consul来实现服务注册与发现,当然这个也不是我个人杜撰,是springcloud官网介绍推荐的组件之一,既然要学就要学的彻底一些,我在实际项目开发中,用的都是eureka和最新的nacos,Consul也仅限于在个人学习中使用过,踩的坑很少,可能也有一些理解上的错误,还是那句话,欢迎批评指正,技术是需要交流的。

Consul我接触的不多,第一次和最后一次接触只在springcloud官网上见过,度娘了一下它的用途,在这里简单提一下。

Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司使用GO语言开发的,提供了微服务系统中的服务治理,配置中心,控制总线等功能,这些功能中的每一个都可以独立使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。

它能够作为服务注册发现组件,并提供HTTP和DNS两种发现方式;也可用作健康监测,支持HTTP,TCP,DOCKER,SHELL脚本定制等方式(没研究过尚不清楚);也可用作KV存储,支持key、value的存储方式;也可以作为多数据中心使用;并且提供了可视化的Web界面。

安装和运行

安装Consul比较顺利,按照官网给出的步骤一步一步执行即可,此过程我没有踩过坑,所以也给不出什么注意事项,启动的话,可以通过参数指定已何种方式运行,我自己学习用使用的是开发模式,命令是 consul agent -dev,运行起来以后直接访问http://ip:8500即可进入它的web控制台,忘记截图了,后期在补吧

下面开始对我们的代码进行改造

服务者代码

pom文件


    
        com.zdd.springcloud
        cloud-api-commons
        ${project.version}
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    
    
    
        org.springframework.cloud
        spring-cloud-starter-consul-discovery
    
    
    
        org.springframework.boot
        spring-boot-devtools
        runtime
        true
    
    
        org.projectlombok
        lombok
        true
    
    
        org.springframework.boot
        spring-boot-starter-test
        test
    

 yml文件

server:
  port: 8006

spring:
  application:
    name: consul-provider
#consul注册中心地址
  cloud:
    consul:
      host: 192.168.102.10
      port: 8500
      discovery:
        service-name: ${spring.application.name}

 主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class ProvideConsul8006 {

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

测试controller

 

@RestController
@Slf4j
public class TestController {

    @Value("${server.port}")
    private String serverPort;

    @RequestMapping(value = "/provider/consul")
    public String paymentConsul() {
        return "springcloud consul:" + serverPort + "\t" + UUID.randomUUID().toString();
    }
}

启动项目,访问 http://localhost:8006/procider/consul,成功打印端口号和随机uuid字符串

打开之前consoul的web控制台可以看到我们consoul-provide服务已经注册进consul。

至此,Consoul服务注册中心搭建完成,下一篇准备对目前eureka,zookeeper,consul几个注册中心组件进行一下分析,至于nacos作为当前最新的spring cloud alibaba成员想放在后面单独写一篇着重写一下。

你可能感兴趣的:(SpringCloud,java)