Spring cloud Consul 服务注册中心实战

news2025/1/11 22:43:01

Spring cloud Consul服务注册中心

    • 一、简介
    • 二、功能
    • 三、角色
    • 四、工作原理
      • 1、服务注册及发现
      • 2、服务调用
    • 五、起步
      • 1、下载
      • 2、安装
    • 六、实例

一、简介

Consul 用于实现分布式系统的服务注册与配置,与其它方案相比,Consul 更 “一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不需要依赖其他工具,使用起来也很方便。

Consul 使用 Go 语言,具有天然可移植性,仅包含一个可执行文件,易于部署,可与 Docker 等轻量级容器无缝配合

二、功能

  • 基于 Raft 算法

  • 服务发现

    支持 http 和 dns 协议接口

  • 健康检查

    支持HTTP、TCP、Docker、Shell脚本定制化

  • Key/Value 存储

  • 多数据中心

  • 官方提供 web 管理页面

三、角色

Consul 内部分为:

  • client: 客户端,无状态,将 HTTP 和 DNS 接口请求转发给局域网内的服务器集群
  • server: 服务端,保存配置信息,高可用集群,每个数据中心的 server 数量推荐为 3 或 5个 (奇数,因为大于等于一半不可用,则集群不可用)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z7mZtK38-1670555650598)(img/Consul 注册中心 角色.jpeg)]

四、工作原理

1、服务注册及发现

当 Producer 启动时,会将自己的 IP/Host 等信息通过请求告知 Consul, Consul 接收到 Producer 的注册信息后,每10s(默认)会向 Producer 发送一个健康检查的请求,检验 Producer 是否健康

2、服务调用

当 Consumer 请求 Producer 时,会先从 Consul 中 拿到存储 Producer 服务的临时表 (temp table),从中任选一个 Producer 的 IP 和 Port,然后根据这个 IP 和 Port,发送请求;temp table 表只包含了健康检查的信息,并每10s(默认)更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IhMdfO99-1670555650600)(img/consul 工作原理.jpeg)]

五、起步

1、下载

下载地址:https://www.consul.io/downloads

2、安装

  • cd 到对应目录下,使用 cmd 使用 consul
# -dev 表示开发模式运行,-server 表示服务模式运行
consul agent -dev -client=0.0.0.0
  • 为了方便启动,也可以在 consul.exe 同级目录下创建一个脚本来启动
consul agent -dev -client=0.0.0.0
pause
  • 访问管理后台:http:localhost://8500

六、实例

  • pom
<!-- spring 整合 consul 客户端-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
  • yml
spring:
  application:
    name: cloud-payment
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
  • application
@EnableDiscoveryClient
@SpringBootApplication
public class PaymentApplication06 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentApplication06.class, args);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75100.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移植lighttpd笔记

一、前言 lighttpd交叉编译并移植到iTop4412平台 二、编译环境 ubuntu 18.04pcrelighttpd交叉编译链:arm-none-linux-gnueabi三、编译过程 1.pcre交叉编译 tar -xvf pcre-8.38.tar.bz2 cd pcre-8.38/ ./configure --host=arm-none-linux-gnueabi --prefix=/ --enable-utf8 …

IDEA中如何实现 git stash 命令的可视化操作?

目录 问题现象&#xff1a; 问题分析&#xff1a; 拓展&#xff1a;git stash 相关命令 1、git stash 2、git stash save 注释 3、git stash list 4、git stash pop 5、git stash apply stash{编号} 6、git stash drop stash{编号} 7、git stash clear 8、git stash…

flutter 内网安装包生成二维码

参考 前言 有时候我们可能需要用手机访问电脑上的文件, 或者用手机测试电脑上编写的程序 此时 在同一个wifi网络的前提下我们可以这么做: 第一种 使用python 直接使用自带python工具开启http服务, 首先打开终端, 进入需要共享的目录,然后运行以下代码即可: python -m Simple…

React TreeSelect 组件使用和优化

1、自定义折叠和展开图标 此时就要用到switcherIcon属性&#xff0c;以下是antd中对switcherIcon属性的描述&#xff0c; switcherIcon自定义树节点的展开/折叠图标ReactNode | ((props: AntTreeNodeProps) > ReactNode)-具体使用如下&#xff1a; import { DownOutlined…

数据库原理及MySQL应用 | 事件

事件由一个特定的线程——事件调度器来管理&#xff0c;事件是根据指定时间表&#xff0c;在某一特定的时间点&#xff0c;触发相关的SQL语句或存储过程。 01、事件概述 事件(Event)是根据指定时间表执行的任务&#xff0c;是MySQL在相应的时刻调用的过程式数据库对象。它由事…

抓包分析ssh远程主机为何变慢了?

文章目录背景SSH协议握手过程ssh 抓包MAC层包传输tcp握手抓包解释三次握手的第一个报文- SYN包第一个报文对应的抓包详情三次握手的第二个报文- SYNACK包第二个报文对应的抓包详情三次握手的第三个报文- ACK包第三个报文对应的抓包详情ssh版本协议交换密钥协商key阶段Key Excha…

程序员的工资这么高,为什么还会有人离职?

出了社会以后才发现&#xff0c;班级里天天打鸡血的、最奋斗的、同时也最焦虑的&#xff0c;不是成绩最好的&#xff0c;也不是成绩最差的&#xff0c;而是那帮处于中间的人。 他们不像那些成绩最差的&#xff0c;或是天天摆烂&#xff0c;或是靠高情商混得风生水起&#xff1b…

Pytest----pluggy源码解读基础准备

【原文链接】Pytest----pluggy源码解读基础准备 解读pluggy源码&#xff0c;直接使用pytest环境中安装的pluggy即可&#xff0c;比如这里安装的pluggy版本是1.0.0&#xff0c;为了更好的理解源码&#xff0c;这里首先使用如下应用代码作为应用实例&#xff0c;从如下代码中可以…

低代码助力生产管理:离散型制造业MES系统

制造业作为我国国民经济的支柱产业&#xff0c;在我国经济增长中占有主导作用。而制造业对经济增长的贡献很大一部分来自于以离散制造业为代表的机械装备制造、汽车零部件制造等。因此&#xff0c;离散制造业的发展对我国经济增长具有举足轻重的作用。 离散型制造业的特点&…

中创股份在科创板提交上会稿:计划募资6亿元,景新海为董事长

12月8日&#xff0c;山东中创软件商用中间件股份有限公司&#xff08;下称“中创股份”&#xff09;在上海证券交易所科创板提交招股书&#xff08;上会稿&#xff09;。相较于此前招股书&#xff0c;中创股份补充了截至2022年9月30日的财务数据等信息。 据贝多财经了解&#x…

记一次 Eclipse 打包的辛酸历程

文章目录1&#xff1a;背景2 maven 工程3 普通工程3.1 打可执行的 jar3.2 打普通 jar4&#xff1a; 运行 jar 包1&#xff1a;背景 偶然的境况下&#xff0c;被迫使用了 Eclipse 进行代码。遇到的代码也有点奇怪&#xff0c;main 方法启动 java 工程&#xff0c;里面封装 Tomc…

音频声音信号

音频信号是模拟信号&#xff0c;我们需要将其保存为数字信号&#xff0c;才能对语音进行算法操作&#xff0c;WAV是Microsoft开发的一种声音文件格式&#xff0c;通常被用来保存未压缩的声音数据。 通道数&#xff1a;同时有个几个设备在进行音频的采样&#xff1b;采样频率&a…

Django连接MySQL与正反向迁移命令

目录 连接MySQL 方法一&#xff1a;pymysql连接 方法二&#xff1a;mysqlclient 迁移命令 连接MySQL 方法一&#xff1a;pymysql连接 第一步&#xff1a;修改settings.py配置文件中的DATABASES&#xff1a; DATABASES {default: {ENGINE: django.db.backends.mysql,HOS…

【车载开发系列】UDS诊断---动态定义DID($0x2C)

【车载开发系列】UDS诊断—动态定义DID&#xff08;$0x2C&#xff09; UDS诊断---动态定义DID&#xff08;$0x2C&#xff09;【车载开发系列】UDS诊断---动态定义DID&#xff08;$0x2C&#xff09;一.概念定义1&#xff09;DID定义方式2&#xff09;DID失效条件二.应用场景三.报…

【Python游戏】今天小编用Python实现了一个植物大战僵尸小游戏 | 附源码

前言 halo&#xff0c;包子们下午好 今天给打击整一个植物大战僵尸 无广告版本 哈哈 说实话&#xff0c;现在的小游戏很多都是有广告&#xff0c;多少有点难受 今天给大家直接安排 相关文件 关注小编&#xff0c;私信小编领取哟&#xff01; 当然别忘了一件三连哟~~ 源码点…

java基于Springboot的社区维修平台-计算机毕业设计

项目介绍 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于社区维修平台所牵扯的管理及数据保存都是非常多的&#xff0c;例如住户管理、社区公告管理、维修工管理、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理、留言板管理、系统管理…

4G远程智能巡检摄像机功耗测试对比

对于一款输电线路监控设备&#xff0c;由于装在铁塔上面&#xff0c;对于功耗&#xff0c;电网上面的应用&#xff0c;尤为重要&#xff0c;如何得做到低功耗&#xff0c;一直大家研究的地方&#xff0c;解决了功耗&#xff0c;基本产品成功了一半&#xff0c;而合方圆在电网行…

对称加密算法(一)(替换算法,Caesar, Playfair, Hill Cipher,Polyalphabetic Cipher)

文章目录Symmetric Cipher ModelSubstitution TechniquesCaesar CipherMonoalphabetic CiphersPlayfair CipherHill CipherPolyalphabetic CipherVigenere CipherVernam CipherOne-Time PadReferences对称加密&#xff0c;也被称为传统加密、单钥加密或私钥加密&#xff0c;是 …

Flink系列-1、流式计算简介

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 大数据系列文章目录 官方网址&#xff1a;https://flink.apache.org/ 学习资料&#xff1a;https://flink-learning.org.cn/ 目录数据的时效性…

【pytorch】使用pytorch自己实现LayerNorm

pytorch中使用LayerNorm的两种方式&#xff0c;一个是nn.LayerNorm,另外一个是nn.functional.layer_norm 1. 计算方式 根据官方网站上的介绍&#xff0c;LayerNorm计算公式如下。 公式其实也同BatchNorm,只是计算的维度不同。 下面通过实例来走一遍公式 假设有如下的数据 …