命名服务
命名服务简述
什么是命名服务
命名服务提供名称与设备的映射。使得设备可以通过名称访问到其他设备。
为什么分布式系统需要命名服务
在之前我们理解了由于分布式系统中的设备之间需要交互,因此产生了多种通信方式,但无论哪一种通信方式都面临一个问题,就是找到另一个设备的位置。而命名服务就是为了解决这个问题。使得设备可以通过名称去命名服务查询到目标设备真实的位置,从而与目标设备进行交互。
如分布式信息系统的WEB系统中,应用服务需要获取数据库服务上的数据,但由于应用服务不知道数据库服务位置,那么无法通信交互,而有了命名服务后,应用服务可以通过DNS或ARP等方式获取到数据库服务的位置,从而实现交互。
如分布式嵌入系统的智能家庭系统中,各个家电之间需要通信,从而完成联通,但由于家电是独立的无法被感知,因此无法通信交互,而有了命名服务后,利用mDNS等方式,家电之间可以实现位置的互通。
泛洪
在数据链路层,通过泛洪可以实现同一网段的设备实现MAC级别的互相感知。
ARP
在网络层,通过ARP可以实现IP级别的互相感知。
DNS
在应用层,通过DNS可以实现应用级别的互相感知。
mDNS
大多数嵌入式系统中,使用mDNS进行设备的服务发现。
注册中心
在WEB系统中,大多使用注册中心,根据应用名称获取到应用实际的IP。
容器
在容器环境中,容器提供了内部的命名服务,容器之间可以根据命名服务互相感知到对方。