> 文章列表 > springboot集成consul

springboot集成consul

springboot集成consul

文章目录

  • 前言
  • 一、consul是什么?
  • 二、开始整合
    • 1.搭建一个父子模块项目架构
      • 第一步创建项目
      • 第二步配置项目
    • 2.分别启动项目
  • 总结

前言

consul 作为一个cloud支持的注册中心,安装方便,配置简单,小巧精致,是一款非常适合初学者来用的服务注册与发现中心;它没有nacos那样复杂,可以放配置文件,换句话说,他也没有nacos那样强大;


一、consul是什么?

一个注册中心,支持服务的注册与发现;

  • 下载windows版本 consul下载地址
    springboot集成consul

  • 解压后 cmd启动

 consul agent -dev -client=0.0.0.0

springboot集成consul

  • 访问 http://localhost:8500
    springboot集成consul

二、开始整合

由于是微服务,所以一般都是多个微服务,这里我采用分服务,但是不分包的做法

1.搭建一个父子模块的项目架构

第一步创建项目

  • idea 新建一个空的maven项目,删除src文件夹

  • 创建一个module,选择springboot,版本选择2.7.10,以及其他依赖
    springboot集成consul
    springboot集成consul

  • 在创建两个 module : service-b service-c
    springboot集成consul

第二步配置项目

  • 配置yml,改配置文件为bootstrap.yml,内容如下
    服务a的配置内容
spring:cloud:consul:host: 127.0.0.1port: 8500config:enabled: truediscovery:service-name: ${spring.application.name}instance-id: ${spring.application.name}heartbeat:enabled: trueapplication:name: servicea
server:port: 8081servlet:context-path: /${spring.application.name}

springboot集成consul

  • pom 内容
<?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 https://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.7.10</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>service-a</artifactId><version>0.0.1-SNAPSHOT</version><name>service-a</name><description>service-a</description><properties><java.version>1.8</java.version><spring-cloud.version>2021.0.6</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-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

另外两个项目也是如此配置,仅仅是yml中的名称,端口 不一样
application:
name: serviceb
server:
port: 8082
application:
name: servicec
server:
port: 8083

  • 启动类上开启服务发现注解 @EnableDiscoveryClient
    springboot集成consul

2.分别启动项目

找到每个服务的各自运行主类,右键 run ~~
springboot集成consul
再次查看consul
springboot集成consul


总结

以consul为注册中心,整合还是很快的,基本上没有版本不一致导致的各种问题,兼容性较好;
另整合过程视频地址: 传送门