架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19616|回复: 2

[资料] .NET Core 基于 mDNS 服务发现和注册

[复制链接]
发表于 2021-8-25 18:36:42 | 显示全部楼层 |阅读模式
mdns 即多播dns(Multicast DNS),mDNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型。并且没有指定新的操作代码或响应代码。在局域网中,设备和设备之前相互通信需要知道对方的ip地址的,大多数情况,设备的ip不是静态ip地址,而是通过dhcp协议动态分配的ip 地址,如何设备发现呢,就是要mdns大显身手,例如:现在物联网设备和app之间的通信,要么app通过广播,要么通过组播,发一些特定信息,感兴趣设备应答,实现局域网设备的发现,当然mdns 比这强大。

Consul HTTP API 接口调用
https://www.itsvse.com/thread-9578-1-1.html

【架构篇】ASP.NET Core 基于 Consul 之服务高可用
https://www.itsvse.com/thread-9422-1-1.html

【架构篇】ASP.NET Core 基于 Consul 动态配置热更新
https://www.itsvse.com/thread-9421-1-1.html

【架构篇】.net/c# 基于 Consul 实现分布式配置之Key/Value存储
https://www.itsvse.com/thread-9420-1-1.html

Windows 搭建单机版 Nacos 2.0.3
https://www.itsvse.com/thread-10040-1-1.html


服务注册

首先,新建一个 .NET Core 3.1 的项目,使用  nuget 命令引用如下包:


通过广播发现当前的服务名称和地址,代码如下:

QQ截图20210825100138.jpg

服务发现

服务发现,我们可以通过 .NET/C# 代码来实现,如下:

也可以开启服务发现,接收所有的广播,代码如下:

QQ截图20210825094152.jpg

服务器:CentOS Linux release 7.8.2003 (Core),通过安装 avahi 和 avahi-tools 工具,也可以发现服务,安装命令如下:

avahi-daemon 是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程。 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范。 用户程序通过Linux D-Bus信息传递接收发现到网络服务和资源的通知。 该守护进程配合缓存用户程序的答复,以帮助减少因答复而产生的网络流量。
运行 avahi-daemon.service 服务,命令如下:

QQ截图20210825093156.jpg

安装 avahi-tools 之后,才能使用 avahi-browse 命令。

可以查看局域网内所有的mdns服务,命令如下:

查询指定服务,命令如下:


QQ截图20210825095856.jpg

如果将 .NET Core 应用关闭后,在另外一台服务器上面,查询该服务会报错如下:

+   eth0 IPv4 test                                          _itsvse_discovery._tcp local
Failed to resolve service 'test' of type '_itsvse_discovery._tcp' in domain 'local': Timeout reached
QQ截图20210825130016.jpg

附上源码:

游客,如果您要查看本帖隐藏内容请回复


(完)





上一篇:zookeeper 启动失败 No snapshot found, but there are log entries ...
下一篇:nginx 访问问题 connect() to 127.0.0.1:8080 failed (13: Permission den...
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-8-26 15:19:56 | 显示全部楼层

路过看看,谢谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-10-17 15:40:33 | 显示全部楼层
如果 centos 8 找不到 avahi-tools 无法安装,请尝试如下命令:

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-25 12:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表