介绍

注册中心,主要作用就是做服务注册和发现;

常见注册中心

Eureka:Eureka是Spring Cloud Netflix中的重要组件,主要作用就是做服务注册和发现。2.0遇到性能瓶颈,停止维护,现在已经闭源。

Consul:Consul是基于GO语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。

Zookeeper:zookeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目。

Nacos:Spring Cloud Alibaba出品

本文主要根据注册中心原理,自己手写一个简单的注册中心(其实主要为了配套之前写的netty rpc框架)

原理

 注册中心原理其实挺简单的,大概如下:

  1. 一个统一管理存储所有服务地址的server端微服务
  2. 封装一个client端的jar包
  3. 每个服务引入client端jar包后,与server端微服务建立连接并向server端注册自己的服务地址(服务id和地址)
  4. client端开启定时轮询请求的线程,去监听获取各个服务地址与健康情况(一般通过注册时给的服务id);一般来说获取服务地址后会缓存起来,这样可以减少http请求的耗时,并且定时获取最新服务地址更新缓存

源码

https://github.com/lvlq73/registry-center-service

如果觉得还不错的话,点个star支持下哈

如果有什么改进的意见或不对的地方,各位大佬记得指出来哈