Eureka迁移到Nacos之服务名称大小问题解决

2023-11-19

我们应用往Eureka中注册使用的名称以及应用内部通过Feign调用,使用的服务名称都是小写,如user-service,但是注册到Eureka中后,应用的名称全部都是以大写的形式存储及展现,由于Eureka客户端对大小写的支持都是一样的,因而通过Feign使用小写的名称调用就没有问题。

现在是将Spring Cloud注册中心由Eureka迁移到Nacos,但是Nacos服务端及Nacos客户端对服务名称的支持是区分大小写的,即从Eureka同步到Nacos中的大写服务名称,通过Feign中使用小写的服务名称调用时,就会报找不到服务的错误。

针对这种情况,考虑了以下四种解决方案:
1、改Nacos的服务端与客户端,使其对大小写服务名称不敏感,如果等官方版本支持,可能不知道到什么时候,要么就自己改,但是以后就不能够升级官方的新版本,与官方支持的版本升级就会脱节;
2、修改Eureka对外提供的服务名称,这个代价也不小,更何况这也不是Eureka的问题;
3、修改应用中的调用,都使用大写,服务注册时名称全部修改为大写,上百个应用相互调用,有非常多的地方要改,成本太高;
4、修改NacosSync,将从Eureka中获取到的服务名称修改为小写后再同步到Nacos中,这种方案成本最小,且修改容易,不会修改到Nacos以及Eureka本身,不影响将来的升级;
 

在NacosSync中,EurekaNamingService主要负责与Eureka的交互,如注册节点、更新节点、删除节点以及获取应用的节点信息等,此时只需要针对获取到的应用节点信息,将其应用名称处理成小写再返回给调用方即可,具体的变更可查看以下码云的提交:

https://gitee.com/laofeng/nacos-sync/commit/899368db12d5c125f1376f7b047588a8667cef77

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

Eureka迁移到Nacos之服务名称大小问题解决 的相关文章

  • 将 Spring Data 随机(嵌入式)Mongo 端口与 NoSQL JUnit @Rule 结合使用

    我目前正在尝试编写一个使用 Spring Data Mongo 存储库的集成测试类 我使用由提供的嵌入式 Mongo 实例de flapdoodle embed mongo依赖性 Spring Data 文档指定我们只需要将这个依赖项放入项
  • 访问 java jigsaw 模块中的资源文件[重复]

    这个问题在这里已经有答案了 我正在尝试从项目中的类访问 Eclipse 项目中的文件 我需要将该项目声明为 jigsaw 模块才能从其他项目访问它 但是通过这样做 我无法再访问项目中的 example png 等文件 这是我的项目结构 pr
  • 无法解析导航抽屉中片段中的 getSystemService

    我正在尝试实现一个导航抽屉 其中有一个片段中的地图 这是我的代码 这里是fragment map xml
  • Java:计算字符串中字母的出现次数

    我正在尝试编写一个程序来计算字符串中字母的出现次数 例如 如果用户输入 Java 则会显示 j 1 a 2 v 1 但是 我的程序似乎有问题 当我输入 java 这个词时 它显示的是 j 0 a 1 v 0 Scanner myScanne
  • 使用 Morphia 配置 Spring Boot?

    我不想利用 Spring DATA MongoDB 支持 我想利用名为 Morphia 的 MongoDB ORM https github com mongodb morphia https github com mongodb morp
  • Android 中的 ImageView 拖动限制

    我在布局中有一个 ImageView 并在 ImageView 上设置 OnTouchListener 来拖动 ImageView 它工作得很好 我的问题是如何防止将 ImageView 移动到布局范围之外 这是我的代码 活动类别 publ
  • Android - Firebase - 保存新数据而不覆盖旧数据

    创建此问题是因为我之前的问题包含 2 个问题 而不是将其缩小到 1 Aim 用户将能够存储新数据而不会覆盖之前提交的数据 描述 目前 当用户输入新报告时 事件报告节点中的用户事件报告数据将被覆盖 用户发送的旧事件报告中的数据应与新数据一起保
  • JAXB、Marshal 的问题 - 无法封送类型“java.lang.String”

    当我运行 marshal 操作时 出现以下错误 javax xml bind MarshalException with linked exception com sun istack internal SAXException2 unab
  • 在 ElasticSearch API 应用程序中找不到 NodeBuilder

    我正在尝试实现 Elasticsearch API 我的系统接受 nodeBuilder 时出现错误 这是代码 import org elasticsearch action index IndexResponse import org e
  • Postgres UUID 和休眠

    我有一个具有 UUID 列的实体 它不是主键 我正在使用 Postgres 和 hibernate 我对此专栏的类型是https www postgresql org docs 9 1 static datatype uuid html h
  • 如何正确安装mysqlconnecter java?

    上网冲浪后 我意识到我应该在系统环境变量中设置类路径连接器 jar 文件的路径文件我这样做了 并在命令行中输入此命令我有这个 C Users User gt echo classpath D classpath mysql connecto
  • 带有 CONTAINS 查询的PreparedStatement

    我有一个查询需要连续运行 28000 次 所以我认为使用准备好的语句可能是一个聪明的主意 这是我的查询 String requestWithFirstName SELECT SE ELEMENT ID SE LASTNAME SE FIRS
  • 如何在 Spring Boot 中访问 application.properties 文件中定义的值

    我想访问中提供的值application properties e g logging level org springframework web DEBUG logging level org hibernate ERROR loggin
  • Cordova Android 应用程序中的网页不可用

    编辑 我一直在解决这个问题并回顾我的所有步骤 我很乐意缩小这个问题的规模 并在令人困惑的情况下获得更多确切的细节 目前 我觉得 Keycloak 似乎只想将我重定向到 https 据我所知 这应该是 Wildfly 服务器配置问题 编辑 我
  • java POI XSSF 公式评估器

    我在保存新的 Excel 文件时遇到问题 我希望当它被保存时 公式会自行计算 但目前它只是返回 Excel 文件中的一个字符串 公式是正确的 我不知道到底要得到FormulaEvaluator上班 这是我输入返回字符串的公式的地方 data
  • java:验证 GUI 中的所有文本字段是否已完成

    我正在尝试创建一个允许某人设置帐户的 GUI 我想验证按下创建帐户按钮时所有文本字段是否完整 做这个的最好方式是什么 我正在附加我的代码 但我对文本字段是否完整的验证不起作用 参见下面的代码 public class GUIaccounts
  • 更改 Logger 实例的全局设置

    我在用着java util logging Logger http download oracle com javase 1 4 2 docs api java util logging Logger html作为我的应用程序的日志引擎 每
  • 如何为 Weblogic 10.3.6 启用 Java 持久性 2.0

    我正在使用 eclipse 和 weblogic 服务器 为了将项目添加到 weblogic 服务器 它需要支持 Java Persistance 2 0 但是当尝试安装它时 我不断收到此消息 在 Weblogic Server 安装中启用
  • 确定方法调用顺序的接口设计模式

    我想创建一个具有多种方法的 Java 接口 但我希望界面的用户只能按照我定义的顺序或顺序调用方法 例如buyTicket 不应在此之前调用reserveTicket 问 有没有设计模式或任何关于如何做到这一点的提示 我考虑过 A 接口被包装
  • hibernate通过主键查询

    我想通过主键创建查询 假设我有类主键 PersonKey 属性是 name 和 id 我有 Person 类 属性是 PersonKey 地址 DOB 现在 我想通过主键搜索人员 首先 我创建 PersonKey 的实例 并将名称设置为 j

随机推荐

  • vue-element-admin项目

    vue element admin vue element admin 介绍 功能 前序准备 目录结构 项目运行机制和代码注释 main js App vue permission js Vuex结构 scss icons 安装 Contr
  • 密码学之DES算法简述(1)

    1 DES算法描述 1 输入64位明文数据 并进行初始置换IP 2 在初始置换IP后 明文数据再被分为左右两部分 每部分32位 以L0 R0表示 3 在秘钥的控制下 经过16轮运算 f 4 16轮后 左 右两部分交换 并连接再一起 再进行逆
  • MyBatis中将结果集封装到指定类型详解(反射Class.forName详解)

    文章目录 1 将结果集封装到指定类型中 1 1指定类型 1 2将信息存入到mapper中 1 3反射 1 3 1获取全限定类名 加载类并且实例化 1 3 2执行SQL语句 生成的结果集获取元信息 把每列的数据存入到指定类型中 1 4Clas
  • java正则表达式语法详解及其使用代码实例

    代码下载地址 http www zuidaima com share 1835085544524800 htm 原文 java正则表达式语法详解及其使用代码实例 Regular Expressions of Java Tutorial 译者
  • Community宣言

    Community宣言 一个幽灵 共产主义的幽灵 在欧洲游荡 为了对这个幽灵进行神圣的围剿 旧欧洲的一切势力 教皇和沙皇 梅特涅和基佐 法国的激进派和德国的警察 都联合起来了 有哪一个反对党不被它的当政的敌人骂为Community呢 又有哪
  • 【python知识点】锦集

    版权声明 未经博主同意 谢绝转载 请尊重原创 博主保留追究权 https blog csdn net m0 69908381 article details 132368704 出自 进步 于辰的博客 相关博文 python细节 经验 锦集
  • 老电脑如何用U盘重装系统?老电脑用U盘重装系统教程

    老电脑如何用U盘重装系统 用户利用U盘来给老电脑重装系统 能够帮助解决老电脑运行缓慢 系统出现故障或感染病毒等问题 通过重装系统 可以清除旧的系统文件和应用程序 重新安装一个干净且高效的操作系统 那么具体要如何操作 可以参考以下小编分享的老
  • 微信小程序开发(八)button按钮去除圆角

    背景 小程序使用button 会有一个默认圆角 如果修改数值比较容易 想要去掉就可能遇到坑 原因 小程序的设计风格是button的border和圆角等都是通过after写的 如果需要去掉圆角效果 最好是使用如下代码 button borde
  • MFC多线程编程之一——问题提出

    原文地址 http www vckbase com document viewdoc id 1704 一 问题的提出 编写一个耗时的单线程程序 新建一个基于对话框的应用程序SingleThread 在主对话框IDD SINGLETHREAD
  • 一步一步分析讲解神经网络基础-Feedforward Neural Network

    A feedforward neural network is an artificial neural network wherein connections between the units do not form a cycle A
  • linux执行makefile文件或目录,makefile.am_makefile.in文件_linux怎么用makefile

    默认的安装路径 1 标准安装路径 默认安装路径为 prefix usr local 可以通过 configure prefix 的方法来覆盖 其它的预定义目录还包括 bindir prefix bin libdir prefix lib d
  • c++中的时间处理(3)与sleep相关的时间函数

    1 Sleep 函数 头文件 Windows下为 windows h Linux下为 unistd h 注意 1 Sleep是区分大小写的 有的编译器是大写 有的是小写 2 Sleep括号里的时间 在windows下是已毫秒为单位 而Lin
  • MySQL性能分析工具的使用

    1 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候 该如何思考呢 这里把思考的流程整理成下面这张图 整个流程划分成了 观察 Show status 和 行动 Action 两个部分 字母 S 的部分代表观察 会使用相应的分析工具 字
  • AngularJS API

    AngularJS提供了如下的一下常用函数 API名称 描述 anguler lowercase 转换为小写字母 anguler uppercase 转换为大写字母 angular isString 是否为字符串 isNumber 是否为数
  • 常用的转义字符 C语言

    转义字符 转义字符是一种特殊的字符常量 以反斜线 开头 后跟字符 具有特定的含义 不同于字符原有的含义 故称 转义 字符 上表 转义字符 含义 n 回车换行 光标移到下一行的行首 r 回车 光标移到当前行的行首 把当前行前面全部删掉 t 制
  • 【pyqt5学习】——菜单栏(QMenu())、工具栏QToolBar学习

    目录 1 菜单栏 QMenu 一般在窗口顶部 1 创建菜单栏步骤 2 信号与方法 3 实操 2 工具栏 一般在菜单栏下方 1 创建步骤 2 方法与信号 信号 方法 3 实操示例 3 状态栏QStateBar 用于显示状态信息 一般在窗口底部
  • 微信开放平台接入问题

    1 errcode 40163 errmsg code been used rid xxxxx 原因 获取token时 使用的code码被二次使用 2 errcode 40249 errmsg this template msg has b
  • python中的unicode

    Python s Unicode string type stores characters from the Unicode character set In this set each distinct character has it
  • 怎么样不使用python做到图片爬虫呢?试试这个神奇软件吧

    1 首先在 主题 选项 选择你需要搜索的内容 2 填写需要下载的文件数量 这个需要留意 如果没有更改保存地址 那么会覆盖以前的文件 3 任意选择一个你想保存的地址 链接 https pan baidu com s 16yKPdUEC355j
  • Eureka迁移到Nacos之服务名称大小问题解决

    我们应用往Eureka中注册使用的名称以及应用内部通过Feign调用 使用的服务名称都是小写 如user service 但是注册到Eureka中后 应用的名称全部都是以大写的形式存储及展现 由于Eureka客户端对大小写的支持都是一样的