介紹
注冊中心,主要作用就是做服務注冊和發現;
常見注冊中心
Eureka:Eureka是Spring Cloud Netflix中的重要組件,主要作用就是做服務注冊和發現,2.0遇到性能瓶頸,停止維護,現在已經閉源,
Consul:Consul是基于GO語言開發的開源工具,主要面向分布式,服務化的系統提供服務注冊、服務發現和配置管理的功能,
Zookeeper:zookeeper是一個分布式服務框架,是Apache Hadoop 的一個子專案,
Nacos:Spring Cloud Alibaba出品
本文主要根據注冊中心原理,自己手寫一個簡單的注冊中心(其實主要為了配套之前寫的netty rpc框架)
原理
注冊中心原理其實挺簡單的,大概如下:
- 一個統一管理存盤所有服務地址的server端微服務
- 封裝一個client端的jar包
- 每個服務引入client端jar包后,與server端微服務建立連接并向server端注冊自己的服務地址(服務id和地址)
- client端開啟定時輪詢請求的執行緒,去監聽獲取各個服務地址與健康情況(一般通過注冊時給的服務id);一般來說獲取服務地址后會快取起來,這樣可以減少http請求的耗時,并且定時獲取最新服務地址更新快取
原始碼
https://github.com/lvlq73/registry-center-service
如果覺得還不錯的話,點個star支持下哈
如果有什么改進的意見或不對的地方,各位大佬記得指出來哈
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/431952.html
標籤:Java
上一篇:Mybatis運行原理
