微服務(wù)系統(tǒng)架構(gòu)3——服務(wù)發(fā)現(xiàn)node.js

上一章, 我們講了服務(wù)的注冊(cè),這一章我們來(lái)說(shuō)下服務(wù)的發(fā)現(xiàn)。

服務(wù)的發(fā)現(xiàn)其實(shí)就是根據(jù)服務(wù)名找出服務(wù)地址。

個(gè)人覺得這個(gè)分兩種情況。

1、后端,我們可以通過(guò)一個(gè)client來(lái)獲取到服務(wù)的地址和端口,然后將請(qǐng)求直接發(fā)送過(guò)去,如client.getinstatnce().helloservice(reqest),這樣來(lái)調(diào)用。

2、前端,前端也有兩種方式:一種是我們通過(guò)后端代碼來(lái)訪問(wèn)后端服務(wù),另外一種是直接ajax調(diào)用目標(biāo)服務(wù)。個(gè)人覺得后一種方法更好。

下面我們講前端用node.js如何實(shí)現(xiàn)前端的服務(wù)發(fā)現(xiàn),這種方式下,前端只需要用ajax調(diào)用node.js的服務(wù)器,并設(shè)置一個(gè)http請(qǐng)求頭,傳入servicename即可,由node.js做網(wǎng)關(guān),進(jìn)行服務(wù)的發(fā)現(xiàn)以及請(qǐng)求的轉(zhuǎn)發(fā)。

環(huán)境準(zhǔn)備

node.js教程如下:

http://www.runoob.com/nodejs/nodejs-tutorial.html

安裝好node.js的server。

idea下載一個(gè)node.js的插件。

下載一個(gè)postman,方便我們測(cè)試。

然后新建一個(gè)node.js的項(xiàng)目,下載三個(gè)項(xiàng)目,express,http-proxy,node-zookeeper-client

具體實(shí)現(xiàn)

這個(gè)網(wǎng)關(guān)功能很簡(jiǎn)單:

首先, 通過(guò)req.get('Service-Name');拿到服務(wù)的名字。

然后,根據(jù)服務(wù)名字通過(guò)zookeeper獲取到服務(wù)地址。

最后,再對(duì)請(qǐng)求進(jìn)行反向代理,用http-proxy將請(qǐng)求轉(zhuǎn)發(fā)到目標(biāo)地址。


代碼如下:


結(jié)果測(cè)試

先在idea下run這個(gè)項(xiàng)目


然后用postman, 試著調(diào)一下http://localhost:1234//hello。理論上,我們應(yīng)該看到Hello的返回。


跟我們預(yù)期的結(jié)果一樣。

然后我們?cè)賮?lái)看后臺(tái)消息。


可以看到,一共訪問(wèn)了四次,8080命中了1次,8082命中了3次。達(dá)到了我們的測(cè)試效果。

下一章,將會(huì)實(shí)現(xiàn)java后臺(tái)代碼的服務(wù)發(fā)現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評(píng)論 19 139
  • 前面我們講了node.js來(lái)做網(wǎng)關(guān),把前端的請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)。但實(shí)際上,請(qǐng)求一個(gè)統(tǒng)一的地址,然后由服務(wù)器進(jìn)行轉(zhuǎn)發(fā)這種模...
    窩??癖?/span>閱讀 1,614評(píng)論 0 3
  • 持續(xù)成長(zhǎng) 孫豪 要有多自律就有多自由 20170403(11/31) 【優(yōu)秀是一種習(xí)慣 /每日三事】 【成就】閱讀...
    套馬的漢子愛學(xué)習(xí)閱讀 246評(píng)論 0 1
  • 企圖把每一件事情都做好,這是自己給自己設(shè)定的心里障礙,突破不了將會(huì)成為自己永遠(yuǎn)的心魔。 內(nèi)心缺失什么就去找尋什么,...
    千夜凡塵閱讀 346評(píng)論 0 0
  • 我知道,隨意評(píng)價(jià)一個(gè)人的生活是多么的不敬,我也知道,隨便侵?jǐn)_一個(gè)人的生活更為粗暴。于是當(dāng)有人蠻橫地砸破了你的窗,尤...
    不完美世界閱讀 257評(píng)論 0 0

友情鏈接更多精彩內(nèi)容