為什么微服務化的系統架構必須要有注冊中心?
技術選型
理解起來,偏向於真實實戰場景一些,講起來也不會那么的純理論,大家聽起來也沒那么的枯燥,【我們提供的是】http接口,更多的情況下,可以對外暴露的僅僅是一個MQ的入口,其實這種系統在開發的真實過程中,一般來說架構技術選型
【調用HTTP接口會耦合】
如果為了要讓社會化治理的系統,跟其他的系統進行解耦【系統之間解耦是MQ非常主要的作用】
開的口子最好是MQ,其他系統只能看到這個MQ,提交舉報消息到MQ去,舉報服務可以消費MQ里的人家提交的舉報
對MQ技術稍微有一點了解的話,kafka,rocketmq,rabbitmq,消費的時候,都是可以讓舉報服務部署多台服務器來消費的,【Kafka】topic -> partition,多個partition分區,就可以讓舉報服務部署多台服務器並行的消費舉報任務
分布式系統的spring cloud技術沒有基本的了解,互聯網Java工程師面試突擊第二季,分布式篇,我對spring cloud技術體系有一個較為深入的講解,spring cloud netflix技術棧,rpc框架是feign,是基於http協議
【比如說評審員服務部署了好幾台服務器,舉報服務必須得知道它在哪幾台服務器上面,這個時候是必然需要服務注冊中心】
【你這個服務部署在一些服務器上面,只要一部署一啟動,就必須得去找這個服務注冊中心進行服務注冊,服務注冊了以后它就知道你的服務部署在哪幾台服務器上】
發送過去的就是一個http請求,人家返回給你的也是一個http響應
假設你要是基於dubbo,13.56.2.308: 7890,直接基於TCP跟那台服務器的指定端口建立一個TCP長連接,短連接【長短連接其實都是TCP連接,只不過長連接的意思就是一直建立在那你不要去釋放,后面的請求就直接通過長連接去發送】,可以基於一定自定義協議去制定數據如何組裝,基於序列化的協議,把你的請求數據序列化成二進制數據流發送過去,就是一個請求
【服務注冊中心本質上就是想知道你在哪個服務器上的哪個端口】
【RPC通信里的協議,HTTP協議跟自定義協議,它的關系和區別到底是什么。序列化協議跟通信協議之間的區別和關系又是什么】
