Dubbo接口级和应用级注册,Dubbo消费者注册到Nacos

学习文档

视频学习


代码演示环境

  • Dubbo 3.2.9
  • Nacos 2.3.0

一、什么是接口级和应用级


假设有一个服务A,里面提供了2个Dubbo接口XdxOneService、XdxTwoService,Dubbo生产者把服务注册到Nacos(或其它的注册中心)

以应用级别注册,在Nacos上就只看到一个服务名称A(取自 dubbo.application.name)

以接口级别注册,就会看到两个服务

  • providers:com.xdx97.dubbo3.api.XdxOneService:1.0.0:
  • providers:com.xdx97.dubbo3.api.XdxTwoService:1.0.0:

注:可以同时注册应用级和接口级


1、为什么要有这两种不同的级别,适用场景是什么


Dubbo 最开始只有接口级,应用级出现是为了提升性能

Dubbo生产者把所有的服务信息以接口级别注册到Nacos,假设A服务有100个接口,A服务部署了10份,Nacos就有 100*10 条注册信息

信息变动需要推送给消费者,那么大量的信息,可想而知,对Nacos、消费者都是个负担,会影响系统的运行

还是上面的条件,如果改为应用级就只需要注册 10 条信息,而且每条信息量还要更少(接口级的信息量更全)

应用级情况下,消费者拿到生产者的信息,再通过RPC去请求生产者拿到类似接口级别的信息数据,从功能上是一样的,但解决了Nacos大量数据推送问题


2、默认


  1. 默认情况下,Dubbo3的生产者是同时注册两种级别,消费者也同时支持这两种消费
  2. 应用级别出现的目的是为了解决大数量导致的问题,如果规模不大,也可以不用这种方式
  3. 建议新创建的服务 生产者用 应用级,消费者 指定消费 应用级 (下面讲怎么设置)

二、生产者、消费者 配置应用级和接口级


1、生产者配置


dubbo:
  registry:
    registerMode: interface

registerMode 的选择 interfaceinstanceall


all
在这里插入图片描述


instance

在这里插入图片描述


interface

在这里插入图片描述


2、消费者配置


dubbo:
  application:
    service-discovery:
      migration: FORCE_APPLICATION

migration 的选择 FORCE_APPLICATIONFORCE_INTERFACEAPPLICATION_FIRST

  1. APPLICATION_FIRST 优先应用级,如果没有应用级就会处理 接口级
  2. 当设置 强制应用或接口级的时候,如果生产者没有对应的级别就会报错

三、其它


1、设置消费者为接口级


有时候我们需要把消费者也注册到Nacos上去,做如下配置

dubbo:
  registry:
    parameters.register-consumer-url: true

在这里插入图片描述


如果设置强制消费应用级(FORCE_APPLICATION),消费者就注册不到Nacos了,不影响服务调用,只是在Nacos看不到

如果没有特别场景要看某个消费者,这也不影响,我们可以通过生产者查看消费者

在这里插入图片描述


应用名 为unknown 参看 INF0 receive config info: unknown#racos2-0.nacos2-hea


参考文档

  1. 应用级服务发现 vs 接口级服务发现
  2. 如果从接口级服务发现平滑迁移到应用级服务发现
  3. 使用 Nacos 作为注册中心实现自动服务发现

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之Buffer Pool缓冲池详解

为什么要有 Buffer Pool? 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,加个缓存就行了嘛。所以,当数据从磁盘中取出后,缓存内存中&am…

软件功能测试重点和流程有哪些?专业软件测评服务公司推荐

软件功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。功能测试也叫黑盒测试或数据驱动测试,只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码.一般从软…

Unity修改鼠标图片【超简单】

1.向Unity导入需要修改的鼠标图片,在Unity内设置图片的Texture Type为Cursor。 2.编写代码 [SerializeField] Texture2D mouseTex;//放图片 void Start() {Cursor.SetCursor(mouseTex, Vector2.zero, CursorMode.Auto); }3.代码挂载在某物体(或者随便哪…

2024年区块链钱包现状与未来趋势分析

钱包作为Web3世界的入口,充当了用户与区块链应用交互、管理资金和传递信息的关键工具。随着区块链技术的发展,钱包生态系统日益多样化,涌现出大量不同类型的解决方案。这些解决方案不仅极大地改善了用户体验,还推动了区块链技术和…

string模拟优化和vector使用

1.简单介绍编码 utf_8变长编码,常用英文字母使用1个字节,对于其它语言可能2到14,大部分编码是utf_8,char_16是编码为utf_16, char_32是编码为utf_32, wchar_t是宽字符的, utf_16是大小为俩个字节&a…

玩转大模型(二)启动一个大模型

写这篇文章是几个月前了,现在模型和框架已经更新了好几轮了,但不影响吧,后面会把这几个月的发展专门用一篇文章补上。 在上一篇中,硬件全都准备好了,软件也已经安装完成,相应的配置都已经做完,…

StarRocks大批量数据导入方案-使用 Kafka connector 导入数据

本文详细介绍如何使用Routine Load 导入数据 一、准备工作 1.1 安装基础环境 主要是安装StarRocks和Kafka,本文直接跳过不做详细介绍~ 二、概念及原理 2.1 概念 导入作业(Load job) 导入作业会常驻运行,当导入作业的状态为 R…

使用idea和vecode创建vue项目并启动(超详细)

一、idea创建vue项目 创建项目之前先下载好插件 新建项目找到vue生成器 写好名称,找到自己需要存放的地址,node解释器安装方式可以看我上一个博客,vueCLI是选择vue的版本,我们可以使用idea自带的vue版本默认是vue3,创…

SQL注入漏洞(三)

报错注入 group by重复键冲突 (count()floor()rand()group by 组合)就是利用 count()、rand()、floor()、 group by 这几个特定的函数结合在一起产生的注入漏洞。 ?id1 and (select 1 from (select count(*),concat(0x5e,(select version() from inf…

[含文档+PPT+源码等]精品基于Nodejs实现的微信小程序校园心理健康平台设计与实现

《[含文档PPT源码等]精品基于Nodejs实现的微信小程序校园心理健康平台设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等福利! 软件开发环境及开发工具: 操作系统:Windows 10、Windows 7、Windows 8 开…

前端excel的实现方案Luckysheet

一、介绍 Luckysheet是一款纯前端类似excel的在线表格&#xff0c;功能强大、配置简单、完全开源的插件。目前已暂停维护&#xff0c;但是其已有功能大概能满足常见需求的使用。 二、引入 ①cdn引入&#xff08;目前应该已经不支持&#xff0c;可自行尝试&#xff09; <l…

mysql 10 单表访问方法

01.优化的过程 对于我们这些 MySQL 的使用者来说&#xff0c; MySQL 其实就是一个软件&#xff0c;平时用的最多的就是查询功能。DBA时不时丢过来一些慢查询语句让优化&#xff0c;我们如果连查询是怎么执行的都不清楚还优化个毛线&#xff0c;所以是时候掌握真正的技术了。我…

LED显示屏与手机连接:简单便捷的操作指南

随着科技的飞速发展&#xff0c;LED显示屏已经成为现代商业和公共信息展示的重要工具。它们不仅在户外广告中扮演着重要角色&#xff0c;室内应用也越来越广泛。智能手机的普及使得我们希望能够通过手机直接控制LED显示屏&#xff0c;以实现更灵活、更便捷的信息展示。那么&…

证件照小程序源码,前后端稳定运行

演示&#xff1a;证寸照制作 运行环境: Linux Nginx PHP >5.6 MySQL>5.6 安装步骤: 1.下载源码上传至你的服务器宝塔面板 2.直接添加站点选择源码目录&#xff0c;新建数据库 3.设置代码执行目录为/web 4.在浏览器中输入你的域名&#xff0c;会提示安装&#xff0c;填写…

5 -《本地部署开源大模型》在Ubuntu 22.04系统下ChatGLM3-6B高效微调实战

在Ubuntu 22.04系统下ChatGLM3-6B高效微调实战 无论是在单机单卡&#xff08;一台机器上只有一块GPU&#xff09;还是单机多卡&#xff08;一台机器上有多块GPU&#xff09;的硬件配置上启动ChatGLM3-6B模型&#xff0c;其前置环境配置和项目文件是相同的。如果大家对配置过程还…

Django的模板语法

Django的模板语法 1、初步认识2、原理 1、初步认识 本质上&#xff1a;在HTML中写一些占位符&#xff0c;由数据对这些占位符进行替换和处理。 在views.py中用字典&#xff08;键值对&#xff09;的形式传参&#xff0c;在html文件中用两个花括号来显示单独的值 列表、元组等数…

【UI】将 naive ui 的 message 封装进axios 中,关于naiveui的message相关的用法

文章目录 前言在setup外进行使用直接包裹使用vue 单文件中使用 参考文章&#xff1a; 关于naiveui的message相关的用法 前言 最近新建了一个vite vu3 的项目&#xff0c;完全是从0 到1 &#xff0c;封装到request 的时候 想对axios 请求做一个全局的处理&#xff0c;但发现…

dart-sass和node-sass的区别,使用dart-sass后可能会出现的问题

前言&#xff1a; 2020 年 10 月 27 日&#xff0c;Sass 官方团队正式宣布 Libsass 将弃用&#xff0c;以及基于它的 Node Sass 和 SassC&#xff0c;并且建议用户使用 Dart Sass。如果在 vue 脚手架搭建的项目中需要使用 sass&#xff0c;建议初始化时勾选 sass 配置&#xff…

扫雷(C 语言)

目录 一、游戏设计分析二、各个步骤的代码实现1. 游戏菜单界面的实现2. 游戏初始化3. 开始扫雷 三、完整代码四、总结 一、游戏设计分析 本次设计的扫雷游戏是展示一个 9 * 9 的棋盘&#xff0c;然后输入坐标进行判断&#xff0c;若是雷&#xff0c;则游戏结束&#xff0c;否则…

Redis拒绝连接问题分析与解决方案

目录 前言1. 问题描述2. Redis拒绝连接的常见原因分析2.1 Redis服务未启动2.2 Redis配置中的绑定地址问题2.3 防火墙或安全组问题2.4 Redis连接池耗尽2.5 Redis服务器负载过高2.6 权限配置问题 3. 深度解决方案和优化建议4. 总结 前言 在分布式系统中&#xff0c;Redis作为高性…