SpringBoot--将微服务注册到Eureka Server上

2023-11-06

         这节课我们一起来学习一下如何将微服务注册到Eureka Server上。

         关于如何操作Eureka,我们可以参考spring-cloud的官方文档,我们先访问spring-cloud的官网主页,如下图所示,目前官网Spring Cloud的最新版本是Camden SR5,我们开发用的也是最新版本,因此我们要查看的文档也是最新版本的文档,我们点击"Reference"。


         点击上图Camden SR5后面的"Reference"之后,我们可以看到如下图所示的界面,我们点击左侧导航树中的"Spring Cloud Netflix",该树形下有注册所需要的步骤,第一步便是"How to include Eureka Client",便可以看到下图中右侧的内容,在蓝色圈住的内容中说明了如何在pom.xml文件中将服务注册到Eureka Server当中。


         第一步:我们先把user服务注册到Eureka当中,我们打开user服务的pom.xml文件,添加一个依赖,如下图所示。


        第二步:在启动类中添加@EnableEurekaClient,官网说明如下图所示。@EnableEurekaClient这个注解只用于Eureka做为服务发现组件,而@EnableDiscoveryClient则可用于所有的服务发现组件(包括ZK、Consul等)


       既然知道了要在启动类中添加注解,那么我们便打开user微服务的启动类并添加相应的注解如下图所示。


      第三步:在application.yml配置文件中添加相关配置,官网说明如下图所示。


      我们把这段配置粘贴到user微服务的application.yml文件当中,如下图所示。


        下面我们启动用户微服务(到启动类中启动,注意:这时eureka工程要保持启动),启动完之后,我们再次访问http://localhost:8761,如下图所示。


       从上图可以看到有几个问题,其中第一个问题就是Eureka进入了自我保护模式,自我保护模式是Eureka的重要特性。进入自我保护模式是最直观的体现,是Eureka Server首页输出的警告。关于自我保护模式大家可以参考:http://www.itmuch.com/spring-cloud-sum/understanding-eureka-self-preservation/#more这篇博客进行学习。

       由于单机模式经常会因为环境问题使Eureka进入自我保护模式,因此我们先关闭Eureka的自我保护功能并配置Eureka Server清理无效节点的时间间隔。如下图所示。


       服务发现的第二个问题便是注册的实例名称显示的是"UNKNOWN",第三个问题是在状态一列默认显示的是UP(1)-localhost:7900,鼠标放到状态之上不会显示出IP地址。这两个问题可以通过在application.yml中配置进行解决,如下图所示。spring.application.name=microservice-provider-user这句配置可以解决第二个问题,eureka.instance.prefer-ip-address=true这句配置可以解决第三个问题。


      配置完之后,我们重新启动eureka server和user微服务,这时我们再访问http://localhost:8761,如下图所示,可以看到我们的user微服务已经被成功注册进来了。


       下面我们看一下用户认证的问题,我们从上面看到我们访问http://localhost:8761直接便可以访问到界面,这明显不符合安全。那么我们如何配置才能让用户输入用户名和密码后进行登录呢?

 1.在eureka工程的application.yml文件中添加如下图右侧红色框住的配置,修改defaultZone访问链接地址。


2.打开eureka工程的pom.xml文件并添加如下图红色框住的依赖。

 

修改完之后我们重启eureka server,我们再访问http://localhost:8761,这时便需要我们先输入用户名和密码才能访问,如下图所示。


        我们在上图输入完用户名user和密码password123之后,便可以访问到eureka首页了,如下图所示(由于我已经关掉了user微服务,因此现在eureka上没有任何实例)


        由于上面eureka server已经添加了用户认证,这时如果我们直接启动eureka client(user微服务)的话会报错,我们也需要给客户端添加认证,方法是修改访问路径,如下图所示(访问路径与eureka server配置的一样)。


        这时我们再启动user微服务,启动成功后我们再访问http://localhost:8761,可以看到客户端已经成功在eureka server上显示了。


       下面我们来看看Spring Boot应用的健康监控,所用到的库是spring-boot-starter-actuator,这个库让我们可以访问应用的很多信息,包括:/env、/info、/metrics、/health等。

我们在user微服务的pom.xml文件中添加如下图所示的依赖。


       添加完上面的依赖之后,我们重新启动user微服务,在启动信息中我们可以看到和以前启动不一样的一些信息,如下图所示,这些都是健康检查的访问路径。


      我们以其中的health为例,我们可以访问地址:http://192.168.153.1:7900/health(注意:192.168.153.1是我电脑的IP,大家的IP都不一样,用自己的IP访问即可),如下图所示,可以看到一些health方面的检查信息。当然,我们还可以查看其它一些信息,这里就不一一举例了。


       下面我们来学习一下如何去得到eureka server的服务实例,我们需要在Controller类加入以下内容。


     我们重新启动user微服务,启动后访问地址:http://192.168.153.1:7900/eureka-instance,我们可以看到如下图所示的界面,我们发现确实得到了eureka server的服务路径。


      下面我们再在Controller类中添加一个访问方法,如下图所示。


      重新启动user微服务,然后我们访问路径:http://192.168.153.1:7900/instance-info,可以看到如下图所示的信息,可以发现,我们获得的信息更多。


       我们还可以在eureka客户端配置安全检查,但前提是配置了pom依赖中配置了spring-boot-starter-actuator(我们已经在user微服务配置过了),我们在user微服务的application.yml中配置安全检查,如下图所示。


        下面我们把movie微服务也注册到eureka中,首先我们在movie的application.yml文件中做如下配置


       接着我们修改movie微服务的pom文件,如下图所示,添加红色框住的依赖。


        下面我们需要在movie的启动类中添加注解,如下所示。


       下面我们便启动movie微服务,然后访问eureka首页,可以看到如下图所示的界面,可以看到现在user和movie微服务都已经成功注册到eureka服务上来了。


       本节课我们便一起学习到这里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot--将微服务注册到Eureka Server上 的相关文章

  • 机器学习特征工程

    特征工程 目录 特征工程 1 数据预处理 1 1数据无量纲化 1 2缺失值处理 1 3处理分类型特征 编码与哑变量 1 4处理连续型特征 二值化与分段 1 5数据变换 总结 2 特征选择 2 1 Filter 2 1 1 方差选择法 2 1
  • Qt Creator打开CMake管理的Quick工程,并调试qml

    文章目录 前言 一 需求背景 二 遇到的问题 三 解决方案 四 Demo 提示 以下是本篇文章正文内容 下面案例可供参考 一 需求背景 1 需要对Qml程序进行调试 2 用CMake管理工程文件 3 能用Qt Creator或者VS进行开发
  • 数据库之postgresql库锁表解锁

    1 检索出死锁进程的ID SELECT FROM pg stat activity WHERE datname 死锁的数据库ID 检索出来的字段中 wating 字段 数据为t的那条 就是死锁的进程 找到对应的 procpid 列的值 2
  • LWIP UDP 编程

    一 udp c实现的函数 1 void udp input struct pbuf p struct netif inp 说明 处理接收到的udp数据包 参数 p数据包缓存区 inp网络接口 2 err t udp send struct
  • 树的层次遍历(广度优先搜索BFS)

    解题思路 采用树的层次遍历的方式 在图中叫广度优先遍历 使用队列取存储待遍历的节点 程序的结束就是队列为空 1 整体上 出队列的节点指向队列中的0号元素 比如1遍历完成之后2 3进队列 2出队列 那么2的next指向队列中的0号元素即可 但
  • MySQL Command Line 语句无效

    在cmd中输入sql语句回车后没反应 只有 gt 提示继续输入 如下图 原因 结尾未输入分号 以结束sql语句 在后面添加分号 英文输入法 即可
  • .NET开发必看资料53个+经典源码77个

    NET开发必看资料53个 经典源码77个 2012 07 01 23 12 4546人阅读 评论 1 收藏 举报 net asp net c java winform 编程 简单描述 为大家整理了下载中心 net资料 都是比较热的 好评率比
  • MIC—BIAS

    MIC BIAS为麦克的直流偏置电压 1 你说的mic bias应该说的是主板上麦克的偏置电压 偏置电压是由英文bias voltage翻译得到的 2 在电子技术课程中 我们知道 由三极管组成的放大电路能够放大一定范围的交流信号 但前提是需
  • 中望软件笔试

    文章目录 前言 一 判断一点是否在三角形中 题目简介 一 面积 代码实现 二 向量 代码实现 二 求矩阵中的最小步数 题目简介 代码实现 总结 前言 简单记录一下笔试情况 一 判断一点是否在三角形中 题目简介 输入四个二维坐标 前三个点表示
  • #vue# 接口封装!超详细超简单的请求接口方法

    在前端开发中 请求接口 是必不可少的一个环节 请求接口 通俗来说 就是我们通过请求服务器的数据 来达到响应式地渲染数据 那如何请求接口 才会更高效且简单呢 以下方法可以参考借鉴借鉴 一 接口文档目录位置 可以参考这个目录 进行文档的存放 二
  • C#报错: The maximum string content length quota (8192) has been exceeded while reading XML data

    C 客户端 调用别家的webservice 返回信息报错 摘取其中重要的如下 The maximum string content length quota 8192 has been exceeded while reading XML
  • MySQL索引数据结构hash解析

    Hash 对索引的key进行一次hash计算就可以定位出数据存储的位置 很多时候Hash索引要比B 树索引更高效 仅能满足 IN 不支持范围查询 哈希表这种结构适用于只有等值查询的场景 比如 Memcached 及其他一些 NoSQL 引擎
  • Jeecg-boot手把手基础部署教程(从零开始)【软件安装+环境安装idea版】

    这个是jeecg boot安装教程 现场排雷版 预计2020年4月1日完成整个部署及排雷 小白手把手专用 系统环境 x64的win10 虚拟机 virtualBox 因为紧急情况下 可以直接部署在vm主机上 基础技术要点 http jeec
  • 线程通讯(wait方法、notify方法、notifyAll方法)

    目录 1 方法介绍 2 wait使用 3 notify使用 4 notifyAll使用 5 注意事项 由于线程之间是抢占式执 的 因此线程之间执 的先后顺序难以预知 但是实际开发中有时候我们希望合理的协调多个线程之间的执 先后顺序 1 方法
  • ctfshow web2

    前言 本来是想做两道简单的ctf解压 结果写笔记的时候联想到练习使用sqlmap和sql注入getshell这两件事 因此有了这篇文章 手工注入 输入内容 打开burp抓包 直觉测试了下万能密码 能成 这里我们可以假设题目的sql语句为 w
  • linux下使用X2Go进行远程连接

    http www unixmen com x2go an open source remote desktop solution for linux About X2Go X2Go is an Open Source remote desk
  • openwrt上“DHCP packet received on ra0 which has no address”问题查找和解决

    在商场进行商业wifi布点的过程中 经常有用户反映说wifi连不上了 或者是连上了是一个叹号 分配不了IP 电脑设置了静态IP是可以接入的 check了logread发现打印里面有这么一句 DHCP packet received on r
  • 机器人学笔记(01):1.绪论

    1 机器人名称的由来 About Robot 机器人的英文名词叫Robot Robot一词最早出现在1920年捷克作家卡雷尔 卡佩克 Karel Capek 所写的一个剧本中 这个剧本的名字叫 Rossum s Universal Robo
  • 信息学奥赛一本通(c++):2024:【例4.10】末两位数

    一 题目 2024 例4 10 末两位数时间限制 1000 ms 内存限制 65536 KB 题目描述 求n个1992的乘积的末两位数是多少 输入 输入n 输出 如题述的末两位数 输入样例 3 输出样例 88 提示 数据范围 对于所有数据
  • GBase 8c 教程(十)分片基础操作

    在建表语句中加入分片操作 可以将数据以HASH分片的方式分配至每个DN节点 操作如下 1 建表 使用distribute by进行HASH分片操作 CREATE TABLE disttab c1 int c2 int c3 varchar

随机推荐

  • 深度学习笔记20235018

    使用深度神经网络 几十层 几百层的神经网络 从大规模数据中学习的过程就是深度学习 将输入的数据的异同点进行提取并且层层抽象 记录在神经网络的参数里就训练出来一个可以区分这些物体的深度神经网络 面向机器的知识图谱 是一个关联的知识网络 举一反
  • PCL求取三维点云模型每点曲率

    最近在做有关实验需要计算模型曲率 但是网上找了一圈也没找到满意的资料 最后发现PCL库可以很方便的求取模型中每一个点的曲率 但是我们要想将PCL库求得的曲率数据应用到自己的项目中需要将PCL库与我们的项目进行结合 并且在PCL求出曲率后存放
  • SSM框架之SpringMVC

    文章目录 SpringMVC MVC设计模式 springmvc框架 入门程序 配置前端控制器和处理器适配器 开发Handler 映射器和适配器 非注解的处理器映射器 非注解的处理器适配器 注解的处理器映射器和适配器 重点 源码分析 spr
  • 长短时记忆网络(LSTM)负荷预测项目(matlab)

    目录 1 LSTM介绍 2 数据集准备及预处理 3 LSTM模型搭建与训练 4 预测模型测试 1 LSTM介绍 长短期记忆网络 LSTM long short term memory 是 RNN 的一种变体 其核心概念在于细胞状态以及 门
  • 微信小程序宠物用品服务商城SSM-JAVA【数据库设计、论文、源码、开题报告】

    功能介绍 操作角色为管理员和用户 商家 管理员的功能为用户管理 商家管理 宠物分类管理 宠物信息管理 商品分类管理 宠物用品管理 项目类型管理 服务项目管理 宠物日志管理 订单管理等 用户的功能为购买宠物 商品 预约服务发表日志管理订单等
  • 美团西安美食部分爬虫(修改版)(python)

    美团美食 coding UTF 8 import requests import time from bs4 import BeautifulSoup import json import csv import random with op
  • 区块链100篇之fabric的网络搭建(一)

    好久没写博客了 今天开始写关于fabric相关的博客 包括网络的搭建 链码的编写以及sdk的封装 搭建网络 网络的搭建想分为三篇来写 第一篇写网络的搭建 这里是官方fabric samples的简化版 第二篇是关于yaml文件的编写 第三篇
  • 【数据科学】肯德尔等级相关系数( Kendall's tau coefficient )

    在统计学中 Kendall等级相关系数 通常称为Kendall的tau系数 在希腊字母 之后 是用于测量两个测量量之间的序数关联的统计量 甲tau蛋白测试是一种非参数假设检验用于基于所述tau蛋白系数统计依赖性 它是衡量等级相关 数据的排序
  • java 版本企业招标投标管理系统源码+功能描述+tbms+及时准确+全程电子化

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • 第五章 Maven结合Junit实现单元测试

    maven的重要职责之一就是自动运行单元测试 它通过maven surefire plugin与主流的单元测试框架junit和testng集成 并且能够自动生成丰富的结果报表 maven并不是一个单元测试框架 他只是在构建执行打特定的生命周
  • RobotFramework介绍

    Robot Framework 1 入门介绍 小菠萝测试笔记 博客园 cnblogs com
  • C++——初始化列表

    初始化列表 在构造函数执行时 先执行初始化列表 实现变量的初始化 然后再执行函数内部的语句 构造函数体赋值 在创建对象时 编译器通过调用构造函数 给对象中各个成员变量一个合适的初始值 class Date public Date int y
  • css中nth-child的属性

    参数为整数 nth child 1 它表示要选择父元素中索引为该数值的子元素 此时的索引值从1开始 参数是奇数偶数 nth child odd odd表示选择奇数项的子元素 nth child even even表示选择偶数项的子元素 参数
  • Tkinter 组件详解(一):Label

    Tkinter 组件详解之Label Label 标签 组件用于在屏幕上显示文本或图像 Label 组件仅能显示单一字体的文本 但文本可以跨越多行 另外 还可以为其中的个别字符加上下划线 例如用于表示键盘快捷键 何时使用 Label 组件
  • Linux驱动之input输入子系统

    目录 前言 介绍 input dev结构体 输入子系统的使用流程 实例测试 前言 输入子系统用于实现Linux系统输入设备 鼠标 键盘 触摸屏 游戏杆 驱动的一种框架 Linux内核将其中的固定部分放入内核 驱动开发时只需要实现其中的不固定
  • Web自动化测试从基础到项目实战之一启动不同的浏览器及配置

    在web自动化中目前selenium作为底层的自动化测试是目前运用最广的 但是各个公司都会在这个基础之上进行修改 首先当我们测试环境有了之后我们需要做得就是去配置我们的driver 这里的driver你可以理解为就是我们脚本和浏览器之间的桥
  • inuxCentos7.5安装jdk1.8(勿继续踩坑)

    LinuxCentos7 5安装jdk1 8 场景 错误出现 下面到了安装步骤 场景 首先我是一名后端 其实这种工作并不应该由我来干 先甩一下锅哈哈 由于我们公司没有真正的运维 所以什么事都需要我们后端来亲力亲为 一次偶然的机遇就把我派到了
  • Vue 代码检测(ESLint)

    每个人编码的习惯不一样 或美观或不美观 或者在编码的过程中会有些疏漏未曾发现 为提高代码美观度 提高代码审阅效率 使得多人协作时代码风格统一 规定一套编码规则并在编写的过程中遵守该规则变得很有必要 在一些比较正式的大公司 公司也会有一套自己
  • SSR是什么?Vue中怎么实现?

    一 是什么 Server Side Rendering 称其为SSR 意为服务端渲染 指由服务侧完成页面的 HTML 结构拼接的页面处理技术 发送到浏览器 然后为其绑定状态与事件 成为完全可交互页面的过程 先来看看Web3个阶段的发展史 传
  • SpringBoot--将微服务注册到Eureka Server上

    这节课我们一起来学习一下如何将微服务注册到Eureka Server上 关于如何操作Eureka 我们可以参考spring cloud的官方文档 我们先访问spring cloud的官网主页 如下图所示 目前官网Spring Cloud的最