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 配置与应用,通过路由实现多个程序访问之间的切换。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中使用validator如何实现接口入参自动检验

文章目录 一、背景二、使用三、举例 一、背景 在项目开发过程中&#xff0c;经常会对一些字段进行校验&#xff0c;比如字段的非空校验、字段的长度校验等&#xff0c;如果在每个需要的地方写一堆if else 会让你的代码变的冗余笨重且相对不好维护&#xff0c;如何更加规范和优…

智汇云舟携三大系列产品亮相第68届中国安防工程商集成商大会

8月18日&#xff0c;由中国安全防范产品行业协会指导&#xff0c;永泰传媒主办的中国安防工程商&#xff08;系统集成商&#xff09;大会暨第68届中国安防新产品、新技术成果展示在广州盛大开幕。 来自华南各省、市安防协&#xff08;学&#xff09;会及全国安防工程商、系统集…

计算机视觉之三维重建(一)(摄像机几何)

针孔摄像机 添加屏障&#xff1a; 使用针孔(o光圈针孔摄像机中心)&#xff0c;实现现实与成像一对一映射&#xff0c;减少模糊。其中针孔与像平面的距离为f(焦距)&#xff1b;虚拟像平面位于针孔与真实物体之间&#xff0c;与像平面互为倒立关系。位置映射&#xff1a;利用相似…

【内网监控】通过cpolar实现远程监控

【内网监控】通过cpolar实现远程监控 文章目录 【内网监控】通过cpolar实现远程监控前言1. 在cpolar官网预留一个空白隧道2. 完成空白数据隧道&#xff0c;生成地址3. 设置空白隧道的出口4. 空白数据隧道的出口设置5. 获取公网地址6. 打开本地电脑“远程桌面”7. 打开Windows自…

jenkins gitlab 安装

目录 一 准备安装环境 二 安装gitlab软件 三 配置gitlab 四 重新加载配置启动gitlab 五 修改密码 五 创建用户组 一 准备安装环境 sudo yum update sudo yum install -y curl policycoreutils-python openssh-server安装 Postfix 邮件服务器&#xff0c;以便 Git…

2023年7月京东美妆护肤品小样行业数据分析(京东数据挖掘)

如今&#xff0c;消费者更加谨慎&#xff0c;消费决策也更加理性。在这一消费环境下&#xff0c;美妆护肤市场中&#xff0c;面对动辄几百上千的化妆品&#xff0c;小样或体验装无疑能够降低消费者的试错成本。由此&#xff0c;这门生意也一直备受关注。 并且&#xff0c;小样…

Webshell实例分析解析

Webshell的实例分析 LD_PRELOAD的劫持在 web 环境中实现基于 LD_PRELOAD 的 RCE 命令执行利用 mail 函数启动新进程 绕过不含字母和数字的Webshell异或取反 LD_PRELOAD的劫持 LD_PRELOAD是Linux/Unix系统的一个环境变量&#xff0c;它影响程序的运行时的链接&#xff08;Runti…

idea创建javaweb项目,jboss下没有web application

看看下图这个地方有没有web application

毫米波雷达成像论文阅读笔记: IEEE TPAMI 2023 | CoIR: Compressive Implicit Radar

原始笔记链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486680&idx1&snedf41d4f95395d7294bc958ea68d3a68&chksmcf51be21f826373790bc6d79bcea6eb2cb3d09bb1860bba0af0fd5e60c448ca006976503e460#rd ↑ \uparrow ↑点击上述链接即…

在IDEA中创建properties配置文件

第一步&#xff1a;在 src路径下找到resources文件 第二步&#xff1a;右击选择新建Resource Bundle配置文件 第三步&#xff1a;为Resource Bundle配置文件命名 完成创建

ssm+vue校园美食交流系统源码

ssmvue校园美食交流系统源码和论文026 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多商…

【Mybatis源码分析】解析语句标签_Select|Update|Insert|Delete

解析语句标签 Select|Update|Insert|Delete 一、前言二、语句标签的源码分析三、sql 标签的解析四、总结 一、前言 在阐述解析语句标签之前&#xff0c;得先知道我们的语句标签内容最后被封装到Configuration哪&#xff1f;&#xff08;都应该知道 Mybatis 通过的是 XMLConfig…

Postman返回了一个html页面

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

macOS(m1/m2)破解Sublime Text和Navicat16

破解Sublime Text 说明&#xff1a;全程使用的是终端操作 1. 下载Sublime Text&#xff0c;建议使用brew下载 2. 进入到下载的app的文件夹 cd "/Applications/Sublime Text.app/Contents/MacOS/"3. 执行以下操作以确认版本是否匹配 md5 -q sublime_text | grep -i…

STM32 CubeMX (第二步Freertos任务通信:队列、信号量、互斥量,事件组,任务通知)

STM32 CubeMX STM32 CubeMX ____Freertos任务通信&#xff1a;队列、信号量、互斥量&#xff0c;事件组&#xff0c;任务通知 STM32 CubeMX一、STM32 CubeMX设置时钟配置HAL时基选择TIM1&#xff08;不要选择滴答定时器&#xff1b;滴答定时器留给OS系统做时基&#xff09;使用…

MYSQL完全卸载、安装与账号创建、权限控制

一、卸载mysql CentOS 卸载 MySQL 1. 查看安装情况 使用以下命令查看当前安装mysql情况&#xff0c;查找以前是否装有mysql rpm -qa|grep -i mysql这里显示我安装的 MySQL 服务有有&#xff1a; 2. 停止 mysql 服务、删除之前安装的 mysql 删除命令&#xff1a;rpm -e –n…

Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四)

文章目录 Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四)服务端客户端 Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四) 服务端 服务端结构如下&#xff1a; UserModel using System; using System.Collections.Generic; usin…

学习笔记|基于Delay实现的LED闪烁|u16是什么|a--和--a的区别|STC32G单片机视频开发教程(冲哥)|第六集(上):实现LED闪烁

文章目录 摘要软件更新什么是闪烁Tips:u16是什么? 语法分析&#xff1a;验证代码Tips&#xff1a;a--和--a的区别&#xff08;--ms 的用法&#xff09;测试代码&#xff1a; 摘要 1.基于Delay实现的LED闪烁 2.函数的使用 3,新建文件&#xff0c;使用模块化编程 软件更新 打…

微信ipad协议

前言 微信协议就是基于微信IPad协议的智能控制系统&#xff0c;利用人工智能AI技术、云计算技术、虚拟技术、边缘计算技术、大数据技术&#xff0c; 打造出智能桌面系统RDS、 智能聊天系统ACS 、智能插 件系统PLUGIN 、云计算服务CCS 、 任务管理系统TM、设备管理服务DM、 应…

分布式链路追踪——Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

要解决的问题 如何记录请求经过多个分布式服务的信息&#xff0c;以便分析问题所在&#xff1f;如何保证这些信息得到完整的追踪&#xff1f;如何尽可能不影响服务性能&#xff1f; 追踪 当用户请求到达前端A&#xff0c;将会发送rpc请求给中间层B、C&#xff1b;B可以立刻作…