微服务-Eureka

Eureka的作用

使用RestTemplate完成远程调用需要被调用者的ip和端口,从而能够发起http请求,但是如果有很多个实例也更加不能有效的处理,而且我们又该如何知道这些实例是否健康呢。所以就有了很多的注册中心比如Eureka、Nacos等等。

  1. 服务注册:服务提供者实例启动后会把自己的信息注册到eureka中,eureka会将服务名称与服务实例之间的映射关系
  2. 服务发现:服务消费者会根据服务名称拉取服务的时候会根据映射关系找到对应的实例
  3. 负载均衡:服务消费者消费者从实例列表中利用负载均衡算法选中一个实例地址
  4. 健康检测:服务提供者每隔一段时间会向eureka发生心跳,来证明自己存活,可以被调用

Eureka的使用

Eureka服务搭建

1)引入依赖

我们需要一个一个maven项目,单独作为eureka服务,导入依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

2)配置文件

server:port: 10086
spring:application:name: eureka-server
eureka:client:service-url: defaultZone: http://localhost:10086/eureka

3)启动类

给该项目的启动类添加@EnableEurekaServer注解。

4)启动项目并进行验证

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

服务注册

1)依赖引入

需要引入eureka-client的依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)配置文件

添加服务名称、eureka地址:

spring:application:name: userservice
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka

3)启动多个实例

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

服务发现

1)依赖引入

需要引入eureka-client的依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)配置文件

服务发现也需要知道eureka地址,因此第二步与服务注册一致,都是配置eureka信息,添加服务名称、eureka地址:

spring:application:name: orderservice
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka

3)服务拉取

这里的ip+端口需要变成我们服务注册的时候的服务名称。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

并且需要给调用者的RestTemplete加上@LoadBalanced注解开启负载均衡。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ribbon负载均衡

SpringCloud的负载均衡是通过一个Ribbon的组件来实现的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传我们使用postman多进行几次测试,会发现user服务的两个实例都被调用了,如图所示

在这里插入图片描述在这里插入图片描述

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

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

相关文章

LabVIEW软件侵权分析与应对

问&#xff1a;如果涉及到LabVIEW软件的仿制或模仿&#xff0c;特别是在功能、界面等方面&#xff0c;如何判断是否构成侵权&#xff1f;该如何应对&#xff1f; 答&#xff1a;LabVIEW软件的侵权问题&#xff0c;尤其是在涉及到仿制或模仿其功能、界面、设计等方面&#xff0…

MATLAB仿真:基于GS算法的经大气湍流畸变涡旋光束波前校正仿真

GS算法流程 GS&#xff08;Gerchberg-Saxton&#xff09;相位恢复算法是一种基于傅里叶变换的最速下降算法&#xff0c;可以通过输出平面和输入平面上光束的光强分布计算出光束的相位分布。图1是基于GS算法的涡旋光束畸变波前校正系统框图&#xff0c;在该框图中&#xff0c;已…

数树数(中等难度)

题目&#xff1a; 解题代码&#xff1a; n,qmap(int,input().split())#分别输入层数和路径数量 for i in range(q):sinput()#输入“L”或“R”x1for j in s:if j "L":xx*2-1 #&#xff01;&#xff01;&#xff01;规律else:xx*2print(x)

高效内存管理与调试技巧:深入解析 AddressSanitizer

在现代 C开发中&#xff0c;内存管理是一个至关重要但也容易出错的领域。即使使用了智能指针和其他高效工具&#xff0c;复杂的项目仍可能出现内存泄漏、非法访问等问题。为了解决这些问题&#xff0c;Google 开发了一个强大的工具——AddressSanitizer (ASan)。本文将详细介绍…

Vue3 内置组件之Teleport

文章目录 Vue3 内置组件之Teleport概述用法 Vue3 内置组件之Teleport 概述 Teleport 中文翻译为“瞬间移动”&#xff0c;顾名思义&#xff0c;在Vue3 中 <Teleport> 组件可以将组件中内容移动到指定的目标元素上。 用法 <script setup> import {ref} from &qu…

【我的 PWN 学习手札】IO_FILE 之 FSOP

FSOP&#xff1a;File Stream Oriented Programming 通过劫持 _IO_list_all 指向伪造的 _IO_FILE_plus&#xff0c;进而调用fake IO_FILE 结构体对象中被伪造的vtable指向的恶意函数。 目录 前言 一、glibc-exit函数浅析 二、FSOP 三、Largebin attack FSOP &#xff08;…

函数指针的用法

函數指標一些相關的用法和注意事項。以下將詳細說明&#xff1a; 1. 基本寫法: 這是最常見且明確的寫法&#xff0c;尤其在處理重載函數時非常有用。 void (GirlFriend::*girl2)(QString) &GirlFriend::hungry;void: 指標所指向的函數的回傳型別。(GirlFriend::*): 表示…

DDcGAN_多分辨率图像融合的双鉴别条件生成对抗网络_y译文马佳义

摘要&#xff1a; 在本文中&#xff0c;我们提出了一种新的端到端模型&#xff0c;称为双鉴别条件生成对抗网络&#xff08;DDcGAN&#xff09;&#xff0c;用于融合不同分辨率的红外和可见光图像。我们的方法建立了一个生成器和两个鉴别器之间的对抗博弈。生成器的目的是基于特…

springboot配置线程池

直接上代码 配置 定义一个配置类 创建一个springboot能扫描到的地方创建一个线程池配置类 配置信息 package com.example.demonew.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import or…

【君正T31开发记录】12.编译工具相关总结及介绍

移植交叉工具包的时候&#xff0c;发现这是很多工具的集合包&#xff1b;以及写makefile的时候&#xff0c;也需要了解下这些工具的作用及用法&#xff0c;这里总结记录一下常见的工具及相关用法。 g C编译器&#xff0c;用于编译C源代码文件&#xff0c;这个很常见&#xff0…

如何让面向应急管理的多智能体具备自主决策能力

现代应急管理面对的是复杂、多变、跨部门的灾害与事故场景——从自然灾害&#xff08;洪水、地震、台风、火灾&#xff09;到公共安全事件&#xff08;疫情、重大安全事故&#xff09;&#xff0c;都需要在极短时间内进行快速响应和全局协同。传统的集中式指挥模式虽然有效&…

List-顺序表--2

目录 1、ArrayList 2、ArrayList构造方法 3、ArrayList常见方法 4、ArrayList的遍历 5、ArrayList的扩容机制 6、ArrayList的具体使用 6.1、杨辉三角 6.2、简单的洗牌算法 1、ArrayList 在集合框架中&#xff0c;ArrayList 是一个普通的类&#xff0c;实现了 List 接口…

lambda用法及其原理

目录 lambda形式lambda用法1.sort降序2.swap3.捕捉列表 习题解题 lambda形式 [capture-list](parameters)->return type{function boby}[capture-list]&#xff1a;[捕捉列表]用于捕捉函数外的参数&#xff0c;可以为空&#xff0c;但不能省略&#xff1b;(parameters) &am…

基于ASP.NET的动漫网站

一、系统架构与技术实现 系统架构&#xff1a;基于ASP.NET的MVC框架构建&#xff0c;实现网站的层次结构&#xff0c;使得网站更加易于维护和扩展。 技术实现&#xff1a;利用ASP.NET的技术特点&#xff0c;如强大的后端开发能力、丰富的UI控件等&#xff0c;结合前端技术如HT…

用 HTML5 Canvas 和 JavaScript 实现流星雨特效

最近在研究前端动画效果时,实现了一个超酷的流星雨特效,今天来和大家分享下具体实现过程。 1,整体实现思路 这个流星雨特效主要由 HTML、CSS 和 JavaScript 协同完成。HTML 搭建基础结构,CSS 负责页面样式设计,JavaScript 实现星星和流星的动态效果。 效果展示: 用 HTM…

AI中的神经元与权重矩阵之间的关系;神经元连接角度看行和列的意义

AI中的神经元与权重矩阵之间的关系 目录 AI中的神经元与权重矩阵之间的关系神经元连接角度看行和列的意义AI中的神经元概念 在人工智能领域,特别是神经网络中,神经元是基本的计算单元,它是对生物神经元的一种抽象模拟。就像生物神经元接收来自其他神经元的电信号,经过处理后…

Visual studio code编写简单记事本exe笔记

安装扩展cmake tools c/c c/c Extension pack CMakeLists.txt cmake_minimum_required(VERSION 3.20) project(NotepadApp)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)# Windows specific settings if(WIN32)set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)s…

Linux 35.6 + JetPack v5.1.4之编译 pytorch升级

Linux 35.6 JetPack v5.1.4之编译 pytorch升级 1. 源由2. 升级步骤1&#xff1a;获取二进制版本步骤2&#xff1a;安装二进制版本步骤3&#xff1a;获取torchvision步骤4&#xff1a;安装torchvision步骤5&#xff1a;检查安装版本 3. 使用4. 补充4.1 torchvision版本问题4.2 …

计算机网络--根据IP地址和路由表计算下一跳

一、必备知识 1.无分类地址IPV4地址网络前缀主机号 2.每个IPV4地址由32位二进制数组成 3. /15这个地址表示网络前缀有15位&#xff0c;那么主机号32-1517位。 4.地址掩码&#xff08;子网掩码&#xff09;&#xff1a;所对应的网络前缀为1&#xff0c;主机号为0。 5.计算下…

欧几里得算法(简单理解版,非严格证明)

欧几里得算法用于求解两个整数的最大公约数&#xff0c;又称为辗转相除 依据的基本定理&#xff1a; GCD(a,b)GCD(a%b,b) 证明&#xff1a; 对于搞理论的人可能需要会严格证明&#xff0c;但是对于我们一般人而言&#xff0c;只要能理解其原理并记住即可&#xff0c;后者实际上…