Eureka+Ribbon实现服务注册与发现

目录

一、相关文章

二、兼容说明

三、服务注册

四、服务发现


一、相关文章
  • 基础工程:gradle7.6.1+springboot3.2.4创建微服务工程-CSDN博客

  • Eureka服务端启动:https://blog.csdn.net/cherishSpring/article/details/149473554

  • Ribbon负载均衡:Ribbon负载均衡-CSDN博客

  • Ribbon和LoadBalancer对比:https://blog.csdn.net/cherishSpring/article/details/149472557

二、兼容说明
  • 与SpringBoot3兼容的SpringCloud里的eureka-client依赖不含Ribbon,新增了LoadBalancer。

  • 如果想使用Ribbon,需要使用SpringBoot2,兼容版本参照https://blog.csdn.net/cherishSpring/article/details/149472557

  • 使用SpringBoot3,即使单独引用了Ribbon也是不生效的。

  • 如果是按SpringBoot3.2.4创建的工程,需要将一些配置改为如下:

plugins {  id 'org.springframework.boot' version '2.3.12.RELEASE'  id 'io.spring.dependency-management' version '1.0.11.RELEASE' // 引入dependency-management插件  
}//JDK版本太高可能和SpringBoot不兼容
sourceCompatibility = 11  
targetCompatibility = 11runtimeOnly 'mysql:mysql-connector-java'//mybatis  
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.1'//mybatis-plus  
implementation 'com.baomidou:mybatis-plus-boot-starter:3.5.2'
三、服务注册

1、父工程build.gradle引入版本依赖管理

  • SpringCloud及SpringCloudAlibaba需根据SpringBoot参照[版本对照表]。

  • 版本对照表地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明。

  • dependencyManagement引入依赖版本管理包,其管理的依赖引入不需要再指定版本。

  • 查看管理依赖版本spring-cloud-dependencies:https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies/Hoxton.SR12

dependencyManagement {  //版本号需根据springboot版本确定imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR12" }  
} 

2、子工程build.gradle引入eureka-client

//eureka-client  
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'

 3、配置application.yml

eureka:  client:  service-url:  # 注册中心地址  defaultZone: http://127.0.0.1:10086/eureka/  user-service:  ribbon:  # eureka负载均衡规则  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  ribbon:  eager-load:  # 开启饥饿加载,启动时初始化,给首次访问加速  enabled: true  clients:  # 指定饥饿加载的服务名称  - user-service

4、参考idea中同服务启动多个-CSDN博客启动两个user-service,在Eureka服务端查看

四、服务发现

1、在OrderApplication类创建RestTemplate

@Bean  
@LoadBalanced  //添加使用负载均衡注解
RestTemplate restTemplate() {  return new RestTemplate();  
}

 2、服务远程调用

//示例:在order服根据用户ID拉取user服用户信息
@Override  
public Order getOrderById(Long orderId) {  //获取订单信息  Order order = orderMapper.getOrderById(orderId);  //根据订单用户ID获取用户信息,通过host:port拼接请求路径//String url = "http://localhost:8083/user/" + order.getUserId();  //eureka方式:通过user-service服务名拼接请求路径String url = "http://user-service/user/" + order.getUserId();  //执行远程调用User user = restTemplate.getForObject(url, User.class);  order.setUser(user);  return order;  
}

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

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

相关文章

数据库、HTML

一、数据库 数据库文件与普通文件区别: 普通文件对数据管理(增删改查)效率低2.数据库对数据管理效率高,使用方便 常用数据库: 1.关系型数据库: 将复杂的数据结构简化为二维表格形式 大型:0racle、DB2 中型:MySq1、sQLServer 小型:Sqlite 2.非关系型数据库以键值对…

RCE随笔(1)

哪些是可以执行代码执行&#xff1a;php代码。eval如&#xff1a;eval:<?php eval($_post[key]);eval&#xff1a;php中不被叫做函数叫动态执行命令assert&#xff1a;执行函数call_user_func_array<?php call_user_func_array(assert,array($_REQUEST[shu]));传入xxs-…

FPGA——ZYNQ7020学习日记(PS端)4(开始PS控制VGA显示)

1.DMA 我们的整体VGA显示分为几步&#xff1a;比如先导入VIDEO TIMING CONTROL来做对输入数据的时序“对齐”&#xff0c;这里开源骚客写的很详细&#xff0c;先用了一个虚拟IO&#xff08;VIO)来作为输入&#xff0c;导入了一个简单的RTL模块&#xff08;当VTL的使能信号有效…

AGX Xavier 搭建360环视教程【补充一:鱼眼去畸变(Fisheye Undistortion)】

对每路帧做鱼眼去畸变除了用cv::cuda::remap是否有更好的办法呢&#xff1f;确实 cv::cuda::remap 不是唯一可选项&#xff0c;甚至未必是最高效或最适合实际业务量级的方案。&#x1f3af; 1️⃣ 去畸变的原理鱼眼相机&#xff08;或者大广角相机&#xff09;会把直线拉弯&…

tomato靶机练习

下载完靶机后&#xff0c;直接运行&#xff0c;选择安装路径后将虚拟机的网络设置为nat模式&#xff0c;设置完成后重启虚拟机扫描同一网段&#xff0c;查找主机&#xff0c;这里我们使用kali的nmap&#xff0c;既能找到主机&#xff0c;也能查看开启的端口依次尝试&#xff0c…

136. Java 泛型 - 下限通配符

文章目录136. Java 泛型 - 下限通配符 (? super T)**1. 什么是下限通配符 (? super T)&#xff1f;****2. 为什么使用下限通配符&#xff1f;****3. 示例&#xff1a;使用 ? super Integer 允许添加 Integer****✅ 正确示例****4. 为什么 List<? super Integer> 和 L…

C++23中的std::expected:异常处理

C23中的std::expected:异常处理 众所周知&#xff0c;C23以前的异常处理是比较麻烦的&#xff0c;尤其是自己要在可能抛出异常的地方&#xff0c;需要自己去捕获它&#xff0c;比如除数为0的异常、使用std::stoi函数将字符串转换成int整型数据、处理文件读写的异常等等&#x…

处理Electron Builder 创建新进程错误 spawn ENOMEM

这个错误 spawn ENOMEM 表明系统内存不足&#xff0c;无法为 Electron Builder 创建新进程。以下是一些可能的解决方案&#xff1a;释放系统内存关闭不必要的程序和服务增加物理内存 (RAM) 或交换空间 (swap)使用 free -h 和 top 命令检查内存使用情况临时增加交换空间# 创建一…

discuz安装使用教程,及网站部署在公网访问

Discuz!的安装主要包括环境准备、程序部署和配置管理三个核心步骤‌&#xff0c;有条件 的可以使用宝塔面板或云镜像简化流程&#xff0c;本地部署无公网IP的配合类似nat123映射公网访问&#xff0c;当前最新版本为Discuz! Q&#xff08;2025年发布&#xff09;和Discuz! X3.5&…

深入解析C#数字转换:隐式与显式转换的全面指南

—— 数据精度保卫战中的checked与unchecked秘籍 &#x1f4cc; 核心概念速览 1. 隐式转换 自动发生&#xff0c;无数据丢失风险&#xff08;如 int→long&#xff09;遵循"小类型→大类型"路径&#xff08;见下图⬇️&#xff09; [图1&#xff1a;C#隐式数字转换路…

量子计算可以解决的三个现实问题

今年是量子力学被发现一百周年。这一突破帮助人们认识到&#xff0c;支配我们周围世界最小层面&#xff08;分子、原子和亚原子粒子&#xff09;的物理定律&#xff0c;与支配我们在日常生活中与物体相互作用方式的物理定律有着根本的不同。量子力学让我们能够了解从血液中的新…

Valgrind Memcheck 全解析教程:6个程序说明基础内存错误

Valgrind 是一个强大的动态分析框架&#xff0c;其中的 memcheck 工具用于检测 C/C 程序中类型不定的内存错误&#xff0c;是基础级内存调试工具的重要选择。 本文将通过 6 段有意义的错误代码&#xff0c;全面讲解 memcheck 的检测原理和输出分析&#xff0c;进而帮助学习者托…

Vue3 实现 Excel 文件导入导出功能

在Vue 3中实现Excel文件的导入和导出功能&#xff0c;你可以使用一些流行的JavaScript库&#xff0c;如SheetJS&#xff08;也称为xlsx&#xff09;来处理Excel文件。以下是实现这一功能的基本步骤&#xff1a;1. 安装SheetJS首先&#xff0c;你需要安装xlsx库。在你的Vue项目中…

CS231n-2017 Lecture2图像分类笔记

图像分类问题定义&#xff1a;在已有固定的分类标签集合的前提下&#xff0c;能够对输入的图像进行识别处理&#xff0c;从集合中找到该图像所对应的标签。对于计算机而言&#xff0c;图像并非直观的图像&#xff0c;而是一个的像素集合&#xff0c;对于每个像素&#xff0c;其…

Typecho博客Ajax评论功能实现全攻略

文章目录 Typecho实现Ajax评论功能的完整指南 引言 一、技术选型与准备工作 1.1 技术栈分析 1.2 环境准备 二、前端实现方案 2.1 基础HTML结构 2.2 JavaScript处理逻辑 三、后端处理实现 3.1 创建插件处理Ajax请求 3.2 错误处理增强 四、安全性考虑 4.1 CSRF防护 4.2 输入过滤 …

【计算机考研(408)- 数据结构】树与二叉树

树与二叉树 树的定义及相关概念 树是n&#xff08;n≥0&#xff09;个结点的有限集合&#xff0c;n 0时&#xff0c;称为空树&#xff0c;这是一种特殊情况。在任意一棵非空树中应满足&#xff1a; 1&#xff09;有且仅有一个特定的称为根的结点。 2&#xff09;当n > 1时…

MacOS:如何利用终端来操作用户

MacOS&#xff1a;如何利用终端来操作用户MacOS&#xff1a;如何利用终端来操作用户1. 创建用户并赋予管理员权限步骤&#xff1a;2. 取消用户的管理员权限解释&#xff1a;3. 查看组成员查看 admin 组成员&#xff1a;查看 users 组成员&#xff1a;4. 其他常见的用户管理命令…

基于SpringBoot+MyBatis+MySQL+VUE实现的医疗挂号管理系统(附源码+数据库+毕业论文+答辩PPT+项目部署视频教程+项目所需软件工具)

摘 要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff0c;对医疗挂号信息管理的提升&#x…

学成在线项目

黑马程序员学成在线项目学习过程记录 解决跨域问题

Shell脚本-grep工具

一、前言在 Linux/Unix 系统中&#xff0c;grep 是一个非常强大且常用的文本搜索工具&#xff0c;它可以帮助我们快速从文件或标准输入中查找匹配特定模式的内容。无论是查看日志、调试脚本&#xff0c;还是进行自动化数据提取&#xff0c;grep 都扮演着至关重要的角色。本文将…