当前位置: 首页 > news >正文

Springboot 实践(10)spring cloud 与consul配置运用之服务的注册与发现

        前文讲解,完成了springboot、spring security、Oauth2.0的继承,实现了对系统资源的安全授权、允许获得授权的用户访问,也就是实现了单一系统的全部技术开发内容。

        Springboot是微服务框架,单一系统只能完成指定系统的功能;那么多个单一系统是如何实现数据的互联互通,这就涉及到了我们解析来要要讲解的框架spring cloud。

        Spring Cloud是一系列框架的集合,构建了服务治理(发现注册)、配置中心、消息总线、负载均衡、断路器、数据监控、分布式会话和集群状态管理等功能,为我们提供一整套企业级分布式云应用的完美解决方案。

        本文重点讲解服务的注册与发现,Spring Cloud 支持很多服务发现的软件,Consul就是其中之一,支持服务发现、健康检查、Key/Value 存储、多数据中心。

1、Consul服务器的启动

(1)Consul下载地址:为不违反平台引流规则,暂不提供下载地址,学友可以在平台搜索。

(2)Consul server启动命令

运行cosnul agent以server模式,

-server : 定义agent运行在server模式

-bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用

-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0

-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名

-ui-dir: 提供存放web ui资源的路径,该目录必须是可读的

-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。

-config-dir:配置文件目录,里面所有以.json结尾的文件都会被加载

-client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0

应用举例:

☆ consul agent -server -ui -data-dir=/usr/local/consul -advertise=192.168.0.125 -bind=0.0.0.0 -client=0.0.0.0

☆ consul agent -dev -ui -node=consul-dev -bind=0.0.0.0 -client=0.0.0.0(已验证)

☆ consul agent -dev (仅限于本机服务器注册,其他IP无法注册)

(3)启动步骤如下:

☆ 以管理员身份运行cmd;

☆ 使用CD命令切换到consul所在目录路径;

☆ 输入consul agent -dev命令,回车,CMD显示信息如下:

  • Consul默认使用端口为8500,在浏览器中输入http://localhost:8500,显示信息如下:

2、服务注册

(1)在项目中引入spring cloud jar包

<!--consul-->

<dependency>

     <groupId>org.springframework.cloud</groupId>

     <artifactId>spring-cloud-starter-consul-discovery</artifactId>

     <version>2.0.0.RELEASE</version>

</dependency>

(2)在application.yml中添加注册信息

spring:

  cloud: 

    consul:

      host: 127.0.0.1

      port: 8500

      discovery:

        # 配置服务注册到Consul上

        register: true

        # 配置服务健康检测地址  供Consul 调用

        health-check-path: /actuator/health                       

        #consul 健康检测频率

        health-check-interval: 15s

        # 配置注册到consul 服务的id

        instance-id: SprintbootAction-one

        enabled: true

        service-name: SprintbootAction-one

        #告诉consul我注册的时候你给我按ip注册我地址(对应no such host问题)。

        prefer-ip-address: true

        ip-address: 127.0.0.1

        (3)启动项目后,浏览器截图如下:

    原工程服务注册名称为SpringbootAction-one,点击该名称,进入详细信息页面,如下图:

3、健康检测

        在实际的项目调测过程,由于网络设置、参数设置问题,会出现健康检测不通过问题。此时,可以、通过在浏览器中输入http://localhost:8500/v1/agent/checks,浏览返回信息如下:

{

    "service:SprintbootAction-one": {

        "Node": "magic",

        "CheckID": "service:SprintbootAction-one",

        "Name": "Service 'SprintbootAction-one' check",

        "Status": "passing",

        "Notes": "",

        "Output": "HTTP GET http://127.0.0.1:2885/actuator/health: 200  Output: {\"status\":\"UP\"}",

        "ServiceID": "SprintbootAction-one",

        "ServiceName": "SprintbootAction-one",

        "ServiceTags": [

            "secure=false"

        ],

        "Type": "http",

        "Definition": {},

        "CreateIndex": 0,

        "ModifyIndex": 0

    }

}

        备注:"Output": "HTTP GET http://127.0.0.1:2885/actuator/health: 200  Output: {\"status\":\"UP\"}",健康检测通过。

        Spring cloud 与 consul 配置与运用讲解到此结束,学友们可以进一步学习和验证。下文讲解Spring boot 与zuul 配置与应用,通过路由实现多个程序访问之间的切换。

相关文章:

Springboot 实践(10)spring cloud 与consul配置运用之服务的注册与发现

前文讲解&#xff0c;完成了springboot、spring security、Oauth2.0的继承&#xff0c;实现了对系统资源的安全授权、允许获得授权的用户访问&#xff0c;也就是实现了单一系统的全部技术开发内容。 Springboot是微服务框架&#xff0c;单一系统只能完成指定系统的功能&#xf…...

解决方案:如何在 Amazon EMR Serverless 上执行纯 SQL 文件?

《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书由博主历时三年精心创作&#xff0c;现已通过知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详…...

pytorch lightning和pytorch版本对应

参见官方文档&#xff1a; https://lightning.ai/docs/pytorch/latest/versioning.html#compatibility-matrix 下图左一列&#xff08;lightning.pytorch&#xff09;安装命令&#xff1a;pip install lightning --use-feature2020-resolver 下图左一列&#xff08;pytorch_lig…...

Postman返回了一个html页面

问题记录 调用公司的测试环境接口&#xff0c;从浏览器控制台接口处cCopy as cURL(cmd)&#xff0c;获取完整的请求内容&#xff0c;然后导入postman发起请求 提测时发现返回一个html页面&#xff0c;明显是被请求在网管处被拦截了&#xff0c;网关返回的这个报错html页面 …...

centos服务器搭建宝塔面板

因为电脑无线网无法登录宝塔&#xff0c;也无法ssh到服务器&#xff0c;但是热点可以连接&#xff0c;网上没找到解决方法&#xff0c;重装下。 解决办法&#xff0c;先追路由&#xff0c;结果是被防火墙拦截了&#xff0c;解封以后还不行&#xff0c;重新查&#xff0c;联动的…...

【微信小程序】记一次自定义微信小程序组件的思路

最近来个需求&#xff0c;要求给小程序的 modal 增加个关闭按钮&#xff0c;上网一查发现原来 2018 年就有人给出解决方案了&#xff0c;于是总结下微信小程序自定义组件的思路&#xff1a;一句话&#xff0c;用 wxml css实现和原生组件类似的样式和效果&#xff0c;之后用 JS…...

TiDB数据库从入门到精通系列之四:SQL 基本操作

TiDB数据库从入门到精通系列之四&#xff1a;SQL 基本操作 一、SQL 语言分类二、查看、创建和删除数据库三、创建、查看和删除表四、创建、查看和删除索引五、记录的增删改六、查询数据七、创建、授权和删除用户 成功部署 TiDB 集群之后&#xff0c;便可以在 TiDB 中执行 SQL 语…...

Azure创建自定义VM镜像

创建一个虚拟机&#xff0c;参考 https://blog.csdn.net/m0_48468018/article/details/132267096&#xff0c;入站端口开启80&#xff0c;22 进行远程远程连接 使用CLI命令部署NGINX,输入如下命令 sudo su apt-get update -y apt-get install nginx git -y最后的效果 4. 关闭…...

react 10之状态管理工具2 redux + react-redux +redux-saga

目录 react 10之状态管理工具2 redux store / index.js 入口文件actionType.js actions常量的文件rootReducer.js 总的reducer 用于聚合所有模块的 reducerrootSaga.js 总的saga 用于聚合所有模块的 sagastore / form / formActions.js 同步修改 isShowstore / form / formRedu…...

gor工具http流量复制、流量回放,生产运维生气

gor是一款流量复制回放工具&#xff0c;gor工具的官网&#xff1a;https://goreplay.org/ 1、对某个端口的http流量进行打印 ./gor --input-raw :8000 --output-stdout 2、对流量实时转发&#xff0c;把81端口流量转发到192.168.3.221:80端口 ./gor --input-raw :81--output-ht…...

设计模式之单例设计模式

单例设计模式 2.1 孤独的太阳盘古开天&#xff0c;造日月星辰。2.2 饿汉造日2.3 懒汉的队伍2.4 大道至简 读《秒懂设计模式总结》 单例模式(Singleton)是一种非常简单且容易理解的设计模式。顾名思义&#xff0c;单例即单一的实例&#xff0c;确切地讲就是指在某个系统中只存在…...

Java自学到什么程度就可以去找工作了?

引言 Java作为一门广泛应用于软件开发领域的编程语言&#xff0c;对于初学者来说&#xff0c;了解到什么程度才能开始寻找实习和入职机会是一个常见的问题。 本文将从实习和入职这两个方面&#xff0c;分点详细介绍Java学习到什么程度才能够开始进入职场。并在文章末尾给大家安…...

三、Kafka生产者

目录 3.1 生产者消息发送流程3.1.1 发送原理 3.2 异步发送 API3.3 同步发送数据3.4 生产者分区3.4.1 kafka分区的好处3.4.2 生产者发送消息的分区策略3.4.3 自定义分区器 3.5 生产者如何提高吞吐量3.6 数据可靠性 3.1 生产者消息发送流程 3.1.1 发送原理 3.2 异步发送 API 3…...

【SA8295P 源码分析】19 - QNX Host NFS 文件系统配置

【SA8295P 源码分析】19 - QNX Host NFS 文件系统配置 一、NFS Server二、NFS Client三、NFS 相关的文件及目录四、将文件放入QNX 文件系统中五、编译下载验证系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接:《【SA8295P 源码分析】19 - QNX Host N…...

JRE、JDK、JVM及JIT之间有什么不同?_java基础知识总结

当涉及Java编程和执行时&#xff0c;以下术语具有不同的含义&#xff1a; 1.JRE (Java Runtime Environment) JRE是Java运行时环境的缩写。它是一个包含用于在计算机上运行Java应用程序所需的组件集合。JRE包括了以下几个主要部分&#xff1a; Java虚拟机(JVM)&#xff1a;用…...

sqlite3数据库的实现

sqlite3代码实现数据库的插入、删除、修改、退出功能 #include <head.h> #include <sqlite3.h> #include <unistd.h> int do_insert(sqlite3 *db); int do_delete(sqlite3 *db); int do_update(sqlite3 *db);int main(int argc, const char *argv[]) {sqlit…...

c#设计模式-结构型模式 之 桥接模式

前言 桥接模式是一种设计模式&#xff0c;它将抽象与实现分离&#xff0c;使它们可以独立变化。这种模式涉及到一个接口作为桥梁&#xff0c;使实体类的功能独立于接口实现类。这两种类型的类可以结构化改变而互不影响。 桥接模式的主要目的是通过将实现和抽象分离&#xff0c;…...

【Vue-Router】导航守卫

前置守卫 main.ts import { createApp } from vue import App from ./App.vue import {router} from ./router // import 引入 import ElementPlus from element-plus import element-plus/dist/index.css const app createApp(App) app.use(router) // use 注入 ElementPlu…...

07无监督学习——降维

1.降维的概述 维数灾难(Curse of Dimensionality):通常是指在涉及到向量的计算的问题中&#xff0c;随着维数的增加&#xff0c;计算量呈指数倍增长的一种现象。 1.1什么是降维&#xff1f; 1.降维(Dimensionality Reduction)是将训练数据中的样本(实例)从高维空间转换到低维…...

系列七、IOC操作bean管理(xml自动装配)

一、概述 自动装配是根据指定规则&#xff08;属性名称或者属性类型&#xff09;&#xff0c;Spring自动将匹配的属性值进行注入。 二、分类 xml自动装配分为按照属性名称自动装配&#xff08;byName&#xff09;和按照属性类型自动装配&#xff08;byType&#xff09;。 2.1…...

Polars 2.0清洗架构解密(含完整数据流拓扑图):为什么92%的团队还在用Pandas硬扛TB级脏数据?

第一章&#xff1a;Polars 2.0清洗架构解密&#xff1a;从设计哲学到性能跃迁Polars 2.0 的清洗架构并非简单功能叠加&#xff0c;而是以“零拷贝流式处理”与“惰性执行图优化”为双核驱动的范式重构。其设计哲学根植于两个核心信条&#xff1a;数据不应在内存中被无谓复制&am…...

OpenClaw语音交互:nanobot对接Whisper实现声控任务触发

OpenClaw语音交互&#xff1a;nanobot对接Whisper实现声控任务触发 1. 为什么需要语音交互能力 作为一个长期使用OpenClaw进行个人工作流自动化的用户&#xff0c;我一直在思考如何让这个工具更加"无感"地融入日常。键盘输入固然高效&#xff0c;但在某些场景下——…...

Deepfake Offensive Toolkit实战:视频会议系统渗透测试案例

Deepfake Offensive Toolkit实战&#xff1a;视频会议系统渗透测试案例 【免费下载链接】dot The Deepfake Offensive Toolkit 项目地址: https://gitcode.com/gh_mirrors/dot/dot 想要了解如何利用深度伪造技术进行视频会议系统安全测试吗&#xff1f;Deepfake Offensi…...

零基础玩转luci-app-unblockneteasemusic完全指南:从安装到多设备协同的3步进阶法

零基础玩转luci-app-unblockneteasemusic完全指南&#xff1a;从安装到多设备协同的3步进阶法 【免费下载链接】luci-app-unblockneteasemusic [OpenWrt] 解除网易云音乐播放限制 项目地址: https://gitcode.com/gh_mirrors/lu/luci-app-unblockneteasemusic luci-app-u…...

SEO_2024年最新SEO趋势分析与实战策略解读

<h1 id"2024seo">2024年最新SEO趋势分析与实战策略解读</h1> <p>在数字营销的快速发展中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;作为提升网站流量的重要手段&#xff0c;一直备受关注。2024年&#xff0c;SEO领域再度发生了一些重要…...

嵌入式系统的启动流程与初始化详解

嵌入式系统的启动流程与初始化详解 为什么启动流程如此重要 作为科技创业者&#xff0c;我深知在嵌入式产品开发中&#xff0c;启动流程的设计和优化直接影响产品的用户体验和可靠性。一个快速、稳定的启动流程不仅能提升产品的竞争力&#xff0c;还能减少客户的等待时间&#…...

气象数据可视化必看:ERA5降水资料从m转mm的3种场景解决方案

气象数据可视化实战&#xff1a;ERA5降水资料单位换算与场景化应用指南 当你在深夜的实验室里盯着屏幕上那一串以"m"为单位的降水数据时&#xff0c;是否曾困惑过如何将它们转化为更符合学术惯例的"mm"&#xff1f;作为处理过数百个气象数据集的老手&#…...

MIPI D-PHY v1.2升级指南:如何利用HS-Deskew提升2.5Gbps传输稳定性

MIPI D-PHY v1.2升级指南&#xff1a;如何利用HS-Deskew提升2.5Gbps传输稳定性 在嵌入式系统设计中&#xff0c;高速串行接口的稳定性往往成为项目成败的关键。当MIPI联盟推出D-PHY v1.2规范时&#xff0c;最引人注目的变化莫过于将单通道传输速率从1.5Gbps提升至2.5Gbps——这…...

CCS:Code Composer Studio 12.8.1 窗口颜色改为深色

Code Composer Studio (CCS) 基于 Eclipse 平台开发&#xff0c;要将其界面改为深色模式&#xff0c;最推荐且有效的方法是安装 Eclipse Color Theme 插件。以下是针对 CCS 12.8.1 的具体操作步骤&#xff1a;&#x1f6e0;️ 第一步&#xff1a;安装主题插件在 CCS 菜单栏中&a…...

FRCRN模型结构解析:频域卷积+循环网络如何协同提升信噪比

FRCRN模型结构解析&#xff1a;频域卷积循环网络如何协同提升信噪比 1. 引言&#xff1a;语音降噪的挑战与突破 语音降噪技术一直面临着"既要又要"的难题&#xff1a;既要彻底消除背景噪声&#xff0c;又要完整保留人声细节。传统的降噪方法往往在这两者之间难以平…...