消息轉(zhuǎn)發(fā)的應(yīng)用場景在現(xiàn)實中的應(yīng)用非常普遍,我們常用的IM工具也是其中之一;現(xiàn)有很多云平臺也提供了這種基礎(chǔ)服務(wù),可以讓APP更容易集成相關(guān)功能而不必投入相應(yīng)的開發(fā)成本。對于實現(xiàn)這樣一個簡單功能并不復(fù)雜,對于現(xiàn)有的技術(shù)來說用.net提個通訊服務(wù)器支持幾十W用戶相信也不是件困難的事情;但如果考慮可用性和更大規(guī)模那就需要下點功夫,并且對相關(guān)技術(shù)有深入的了解才能實現(xiàn)了。而在這里主要講解一下如何通過SmartRoute來實現(xiàn)一個大規(guī)模的消息轉(zhuǎn)發(fā)集群的基礎(chǔ)服務(wù)。
說到集群那肯定由N個服務(wù)組成的一組應(yīng),那做一個消息轉(zhuǎn)發(fā)集群的基礎(chǔ)服務(wù)需要那些服務(wù)節(jié)點呢?分析一下主要包括兩大塊:注冊中心和消息網(wǎng)關(guān);網(wǎng)關(guān)用于和應(yīng)用對接,而注冊中心則是明確應(yīng)用所在位置。為了達到更好的可用性和更大規(guī)模支撐注冊中心和網(wǎng)關(guān)都是N-N的關(guān)系。
看到這樣一個圖估計會把很不了解這方面的朋友會卡住,這樣一個東西實現(xiàn)會很復(fù)雜吧!其實在SmartRoute基礎(chǔ)之上實現(xiàn)這樣這樣一個集群服務(wù)并不困難,不過對于消息交互原理和設(shè)計還是需要了解一下。接下來講解一下如何用SmartRoute實現(xiàn)相應(yīng)注冊中心和網(wǎng)關(guān)服務(wù)。
注冊中心
注冊中心的作用很簡單就是保存應(yīng)用標(biāo)識所在位置,當(dāng)網(wǎng)關(guān)需要轉(zhuǎn)發(fā)消息的時候告訴網(wǎng)關(guān)這個應(yīng)用標(biāo)識在那個位置上。除了這一功能外當(dāng)然還要考慮可用性,主要包括多中心發(fā)現(xiàn)和注冊信息現(xiàn)步等;同樣網(wǎng)關(guān)也具行指向多臺中心的負載能力。
延伸閱讀
我想了解如何學(xué)習(xí) |