【SpringCloud微服务实战01】Eureka 注册中心
-
前言
在 Eureka 架构中,微服务角色有两类:
- EurekaServer :服务端,注册中心
记录服务信息
心跳监控
- EurekaClient :客户端
Provider :服务提供者,例如案例中的 user-service
注册自己的信息到 EurekaServer
每隔 30 秒向 EurekaServer 发送心跳
consumer :服务消费者,例如案例中的 order-service
根据服务名称从 EurekaServer 拉取服务列表
基于服务列表做负载均衡,选中一个微服务后发起远程调用
架构图:

常见问题:
- 消费者该如何获取服务提供者具体信息?
服务提供者启动时向 eureka 注册自己的信息
eureka 保存这些信息
消费者根据服务名称向 eureka 拉取提供者信息
- 如果有多个服务提供者,消费者该如何选择?
服务消费者利用负载均衡算法,从服务列表中挑选一个
- 消费者如何感知服务提供者健康状态?
服务提供者会每隔 30 秒向 EurekaServer 发送心跳请求,报告健康状态
eureka 会更新记录服务列表信息,心跳不正常会被剔除
消费者就可以拉取到最新的信息
一、Eureka服务端搭建
1. 创建项目,引入 spring-cloud-starter-netflix-eureka-server 的依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2. 编写启动类,添加 @EnableEurekaServer 注解
3. 添加 application.yml 文件,编写下面的配置:
server:port: 10086
spring:application:name: eurekaserver
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/
启动后访问管理页面http://127.0.0.1:10086:

二、Eureka服务注册
1. 分别 user-service 和 order-service 项目中引入 spring-cloud-starter-netflix-eureka-client 的依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 在 application.yml 文件,分别编写下面的配置:
spring:application:name: userservice #orderservice
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/
这里还可以通过复制userService配置 修改VM:-Dserver.port=8082,模拟一个服务启动多个实例:

三、Eureka服务发现(服务拉取)
下面以在 order-service 服务中拉取 user-service中的查询用户信息接口为例:
1、用服务提供者的 服务名称 远程调用服务接口:
String url = "http://userservice/user/" + order.getUserId();
2、给 RestTemplate 添加 @LoadBalanced 注解(实现多示例负载均衡)
@Bean
@LoadBalanced
public RestTemplate restTemplate() {return new RestTemplate();
}
相关文章:
【SpringCloud微服务实战01】Eureka 注册中心
前言 在 Eureka 架构中,微服务角色有两类: EurekaServer :服务端,注册中心 记录服务信息 心跳监控 EurekaClient :客户端 Provider :服务提供者,例如案例中的 user-service …...
Python之函数进阶-柯里化
Python之函数进阶-柯里化 柯里化是一种将多参数函数转化为单参数高阶函数的技术。 具体来说,柯里化过程会将一个接受多个参数的函数,转换成一系列接受一个参数的函数,这些函数在内部组合起来,最终完成原函数的运算。 柯里化是一…...
Spring Cloud项目整合Sentinel及简单使用
说明:Sentinel是阿里巴巴开发的微服务治理中间件,可用于微服之间请求的流量管控、权限控制、熔断降级等场景。本文介绍如何在Spring Cloud项目中整合Sentinel,以及Sentinel的简单使用。 环境 首先搭建一个简单的微服务环境,有以…...
【话题】人工智能迷惑行为大赏
随着ChatGPT热度的攀升,越来越多的公司也相继推出了自己的AI大模型,如文心一言、通义千问等。各大应用也开始内置AI玩法,如抖音的AI特效~在使用过程中往往会遇到一些问题,让你不得不怀疑,这真的是人工智能吗…...
Jsp在Javaweb中扮演什么角色?
1.什么是Jsp JSP(Java Server Pages,Java 服务器页面)是一种动态网页技术,它允许在 HTML 页面中嵌入 Java 代码,并由 Web 服务器在请求页面时动态生成 HTML 页面。JSP 通常用于创建动态 Web 内容,如交互式表…...
部署docker仓库harbor
1、下载包 1、包已上传有两个harbor.v2.6.0.tar与harbor.tar 2、harbor.tar解压后会生成harbor目录,将harbor.v2.6.0.tar移动到harbor目录下。 3、执行harbor目录下的install.sh 4、执行完后修改配置文件 2、修改配置文件 vim /root/harbor/make/ harbor.yml.tmpl …...
Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台
目录 前言 1. Docker安装Spug 2 . 本地访问测试 3. Linux 安装cpolar 4. 配置Spug公网访问地址 5. 公网远程访问Spug管理界面 6. 固定Spug公网地址 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊Linux CentOS系统安装Spug并结合…...
阿里云第一次面试记录
java多态? 多态表示一个对象具有多种的状态,具体表现为父类的引用指向子类的实例 Fu f Zi z(); 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作 特点: 对象类型和引用类型…...
AndroidStudio跑马灯实现
在activity_main.xml中编写如下代码: <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_h…...
mysql笔记:12. 数据备份与还原
文章目录 一、数据备份1. 备份单个数据库2. 备份多个数据库3. 备份所有数据库 二、数据还原1. mysql命令2. source命令 在操作数据库时,难免会发生一些意外情况造成数据丢失。为了确保数据的安全,需要对数据库中的数据进行备份,这样当遇到数据…...
react native使用TS实现路由
一、入口文件app.jsx的配置 入口文件最好还是要保留jsx import { NavigationContainer } from react-navigation/native; import { navigationRef } from "./src/views/RootNavigation";const App () > {return(<NavigationContainer ref{navigat…...
手机充值的功能测试框架 - 测试要点
手机充值有微信营销活动的、有 APP 页面应用等,以下是我以前公司的手机充值话费或流量应用的测试要点,分享给大家参考下。 一、手机号码输入框检查 1、手机号码框要控制成只能输入11位数字的文本框。 2、输入以非1开头的手机号,给出提示&a…...
U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装
U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装 准备条件 准备一个U盘,建议容量至少为8GB,以便存放系统镜像文件 一台已经安装好操作系统的计算机,用于制作U盘启动盘 Ubuntu和CentOS的Linux ISO镜像文件。可以从官方网站或相关资源…...
Nodejs 第五十四章(net)
net模块是Node.js的核心模块之一,它提供了用于创建基于网络的应用程序的API。net模块主要用于创建TCP服务器和TCP客户端,以及处理网络通信。 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,用于…...
渗透测试修复笔记 - 04 nacos 可能会导致未经授权的用户获取到系统中的敏感信息的漏洞
问题:该漏洞可能会导致未经授权的用户获取到系统中的敏感信息。 http://ip地址:8848/nacos/v1/auth/users?pageNo1&pageSize9 最直接的解决办法就是升级nacos版本 如果不升级的话还是沿用旧版本就修改相关配置 当前版本为2.0.4 1.nacos的docker-compose文件…...
初级代码游戏的专栏介绍与文章目录
我的github: codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 一、大型专题 1.1 C嵌入式HTTP服务器 C嵌入式HTTP服务器_初级代码游戏的博…...
【Redis系列】深入了解 Redis:一种高性能的内存数据库
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
C语言例:表达式(a=2,3),a+1的值
题目:设int a; 则表达式(a2,3),a1的值 #include<stdio.h> int main(void) {int a0;int b;int c;b (a2,4);c (a2,3),a1;printf("a1%d\n",a1); //a1 3;printf("a2,4的值为:%d\n",b); //a2,4的值为&…...
基于java的公寓报修管理系统设计与实现(程序+文档+数据库)
** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…...
Lua 函数前的冒号和点号,你知道他们的区别吗?
1. 函数前的冒号和点号 点号(.)和冒号(:)的区别主要在于是否自动处理self参数。 在Lua中,函数定义时前面有点号(.)和冒号(:)的区别主要体现在函数如何处理其第一个参数…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
高保真组件库:开关
一:制作关状态 拖入一个矩形作为关闭的底色:44 x 22,填充灰色CCCCCC,圆角23,边框宽度0,文本为”关“,右对齐,边距2,2,6,2,文本颜色白色FFFFFF。 拖拽一个椭圆,尺寸18 x 18,边框为0。3. 全选转为动态面板状态1命名为”关“。 二:制作开状态 复制关状态并命名为”开…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...
