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