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文件

<dependencies>
    <dependency><!-- 引用自定义的通用包 -->
        <groupId>com.zdd.springcloud</groupId>
        <artifactId>cloud-api-commons</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--监控-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!-- SpringCloud consul server-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>
    <!--热部署-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

 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成员想放在后面单独写一篇着重写一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值