springboot3整合consul实现服务注册和配置管理快速入门

这篇具有很好参考价值的文章主要介绍了springboot3整合consul实现服务注册和配置管理快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

服务注册:

配置管理:

注册中心的比较:

在微服务的世界中,服务注册是必不可少的。现在比较流行的也就是Consul和Nacos,Zookeeper没有管理界面,一般不建议使用,而Eureka已经处于停更,并且本身就存在很多bug,一般不建议使用!

我之前写过一篇spring boot整合nacos实现服务注册和配置管理:

springboot3整合nacos实现注册中心和配置中心(详细入门)_springboot3 nacos-CSDN博客

现在,就在介绍以下使用consul实现服务注册和配配管理。

先简单介绍一下Consul:

Consul 是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案相比,Consul的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其它工具(比如ZooKeeper等) ,使用起来也较为简单。

Consul 使用Go语言编写,因此具有天然可移植性(支持Linux,Windows和Mac OS);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合。
Consul 官网介绍:

Consul Documentation | Consul | HashiCorp Developer
Consul 中文教程:

Spring Cloud中文网-官方文档中文版

Spring Cloud中文网-官方文档中文版
SpringCloud官网介绍Consul:

Spring Cloud Consul

Consul的搭建:

官网:https://www.consul.io/downloadshttps://www.consul.io/downloads

Consul在windows下和linux下是都可以安装的,并且基本上不用配置就能使用!

在windows下的话下载好后就是一个可执行的exe,我们可以通过命令来查看consul是否下载成功;

consul --version
 

如果有相应的版本输出信息,表明配置完成;(我的consul的版本为v1.17.0)

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

接下来启动Consul服务:

consul agent -dev

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

consul的默认端口为8500,在自己的电脑上可以查看启动的consul服务;

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

新建微服务项目,并导入相应的依赖;

服务注册:

创建一个maven聚合项目,并在这个项目下新建一些模块,用来进行入住consul的测试服务。

引入consul关于服务注册的依赖:(我已经在父工程下引入了spring cloud的依赖2022.0.4)
 

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

在yml文件中进行consul的连接配置:
 

spring:
  application:
    name: test-demo
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
         service-name: ${spring.application.name}
         prefer-ip-address: true

启动这个服务,就可以在consul的控制台中看到test-demo入驻到consul了。

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

在刚入住consul时,consul会去发心跳包,所以会出现红色的x号,可以稍等一会就可以消除了。

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

配置管理:

添加consul关于配置管理的依赖:
 

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

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

在resources目录下新建一个bootstrap.yml文件:

applicaiton.yml是用户级的资源配置项

bootstrap.yml是系统级的,优先级更加高

Spring Cloud会创建一个“Bootstrap Context”,作为Spring应用的`Application Context`的父上下文。初始化的时候,`Bootstrap Context`负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的`Environment`。

`Bootstrap`属性有高优先级,默认情况下,它们不会被本地配置覆盖。 `Bootstrap context`和`Application Context`有着不同的约定,所以新增了一个`bootstrap.yml`文件,保证`Bootstrap Context`和`Application Context`配置的分离。

 application.yml文件改为bootstrap.yml,这是很关键的或者两者共存

因为bootstrap.yml是比application.yml先加载的。bootstrap.yml优先级高于application.yml

因此,如果某些配置项需要在应用程序启动之前加载并生效,应该将它们放在 bootstrap.yml 中。而对于应用程序级别的配置,则可以放在 application.yml 中。

bootstrap.yml中的内容为:
 

spring:
  application:
    name: test-demo
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        prefer-ip-address: true
      config:
        profile-separator: '-' #默认的分隔符为  ","  我们自定义为"-"
        format: yaml  #文件格式为yml

接下来在consul的控制台创建相应的配置文件,并在项目中进行读取。

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

先创建一个config文件夹,在config文件夹下再创建一个test-demo文件夹(注意这个文件夹的名称应与模块的项目名称保持一致),在test-demo文件夹下新建一个data文件,文件格式为yml类型,在这个data文件中编写我们信息;

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

在项目中进行测试:

@GetMapping("/file")
public String file(@Value("${student.name}") String name){

    return "配置文件中的数据==>"+name;
}

访问相应的接口:

springboot3整合consul实现服务注册和配置管理快速入门,springcloud,consul,spring cloud

可以看到能正确的访问到我们编写的信息;

注册中心的比较:

最多只能同时较好的满足两个。

 CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。

AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

目录文章来源地址https://www.toymoban.com/news/detail-853563.html


到了这里,关于springboot3整合consul实现服务注册和配置管理快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Net Core Ocelot+Consul实现网关、服务注册、服务发现

    Net Core Ocelot+Consul实现网关、服务注册、服务发现

    Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关,它可以与现有的服务集成,并帮助您保护、监控和扩展您的微服务。 以下是Ocelot的一些主要功能: 路由管理:Ocelot允许您

    2024年01月21日
    浏览(13)
  • SpringBoot3整合SpringSecurity,实现自定义接口权限过滤

    SpringBoot3整合SpringSecurity,实现自定义接口权限过滤

    接口权限过滤是指对于某些接口或功能,系统通过设定一定的权限规则,只允许经过身份认证且拥有相应权限的用户或应用程序进行访问和操作 。这种技术可以有效地保护系统资源和数据安全,防止未授权的用户或程序进行恶意操作或非法访问。通常情况下,接口权限过滤需

    2024年02月08日
    浏览(9)
  • 【SpringBoot3】--03.数据访问、基础特性(外部化和内部外配置、整合JUnit)

    【SpringBoot3】--03.数据访问、基础特性(外部化和内部外配置、整合JUnit)

    学习视频: 尚硅谷SpringBoot3视频 SpringBoot 整合 Spring 、 SpringMVC 、 MyBatis 进行 数据访问场景 开发 勾选之后会导入以下包 安装 MyBatisX 插件,帮我们生成Mapper接口的xml文件即可 在接口处 : Alt + 回车 必须把mapper的xml文件映射位置在配置文件定义! 而驼峰命名转换建议也开启 编

    2024年02月16日
    浏览(28)
  • Asp .Net Core 系列:集成 Ocelot+Consul实现网关、服务注册、服务发现

    Asp .Net Core 系列:集成 Ocelot+Consul实现网关、服务注册、服务发现

    Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关,它可以与现有的服务集成,并帮助您保护、监控和扩展您的微服务。 以下是Ocelot的一些主要功能: 路由管理:Ocelot允许您

    2024年01月17日
    浏览(13)
  • SpringBoot3中Swagger整合knife4j和springdoc的配置说明

      springboot3开始javax包改成了jakarta,而swagger-oas等包中依然使用的是javax所以报错。另外springfox已经过时了,两年没更新了,并且不支持OpenAPI3 标准,而SpringBoot3只支持OpenAPI3规范,所以要迁移到springdoc Knife4J是一款基于Swagger快速生成API文档和调试平台的开源工具,它可以轻松地

    2024年02月04日
    浏览(21)
  • Asp .Net Core 系列: 集成 Consul 实现 服务注册与健康检查

    Asp .Net Core 系列: 集成 Consul 实现 服务注册与健康检查

    官网:https://www.consul.io/ Consul 是一款开源的服务发现和配置管理工具,它能够监控应用程序和服务之间的通信,并提供了一组 API 和 Web UI,用于管理服务和配置。 Consul 是分布式的、高可用的、可横向扩展的,具备以下特性: 服务发现:Consul 通过 DNS 或者 HTTP 接口使服务注册

    2024年01月21日
    浏览(14)
  • Docker容器与虚拟化技术:Docker consul 实现服务注册与发现

    Docker容器与虚拟化技术:Docker consul 实现服务注册与发现

    目录 一、理论 1.Docker consul 二、实验 1.consul部署 2. consul-template部署 三、总结 (1)服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现

    2024年02月11日
    浏览(10)
  • springboot3整合elasticsearch8.7.0实现为bean对象创建索引添加映射

    springboot3整合elasticsearch8.7.0实现为bean对象创建索引添加映射

    目录 准备工作 添加相关依赖 在yml中配置elasticsearch 主要内容 实体类 ElasticSearch配置类 测试 确认当前没有counter索引 启动spring 再次查询counter索引​ 在测试类中输出counter索引的映射 官方文档 要注意版本对应关系 spring官方文档中有版本对照表 目前我使用的都是最新的版本,

    2024年02月03日
    浏览(10)
  • 【Spring实战项目】SpringBoot3整合WebSocket+拦截器实现登录验证!从原理到实战

    【Spring实战项目】SpringBoot3整合WebSocket+拦截器实现登录验证!从原理到实战

    🎉🎉 欢迎光临,终于等到你啦 🎉🎉 🏅我是 苏泽 ,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.

    2024年04月17日
    浏览(9)
  • windows下安装consul、springboot整合consul

    windows下安装consul、springboot整合consul

    Spring Cloud Consul通过自动配置和绑定到Spring Environment和其他Spring编程模型习语,为Spring Boot应用程序提供Consul集成。通过一些简单的注解,可以快速启用和配置应用程序内的常用模式,并使用Hashicorp的Consul构建大型分布式系统。提供的模式包括服务发现、分布式配置和控制总线

    2024年02月16日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包