服务发现基本原理
一、什么是服务发现 服务提供者是什么, 简单说就是一个HTTP服务器,提供了API服务,有一个IP端口作为服务地址。 服务消费者是什么? 就是一个简单的进程,想要访问服务提供者提供的服务来做一些事情。 一个HTTP服务器既可以是服务提供者对外提供 服务,也可以是消费者需要别的服务提供者提供的服务,这就是服务依赖。复杂的服务甚至有多个服务依赖 服务发现有三个角色,服务提供者、服务消费者和服务中介。 服务中介是联系服务提供者和服务消费者的桥梁。服务提供者 将自己提供的服务地址注册到服务中介,服务消费者从服务中介那里查找自己想要的服务地址,然后使用这个服务。 服务中介 提供多个服务,每个服务对应多个服务提供者。 服务中介就是一个字典,字典里有很多key-value键值对,key是服务名称,value是服务提供者的地址列表。服务注册就是调用 字典的put方法放东西,服务查找就是调用字典的get方法获取东西 当服务提供者新加入时,要求服务中介能及时告知服务消费者。 二、Redis作为服务中介 Redis里面有丰富的数据结构,用来存储服务字典很合适。 对每一个服务名称,可以用一个set结构存储服务的IP:port字符串 如果服务提供者加入,调用sadd命令加入服务地址,如果服务挂掉,调用srem命令移除服务地址。 对服务消费者使用smembers