国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Lagom參考指南(三)

VishKozus / 2596人閱讀

摘要:有一些設(shè)置和任務(wù)可以為您喜歡的嵌入式服務(wù)定位器調(diào)整,讓我們來(lái)探索它們默認(rèn)的端口號(hào)在中,服務(wù)發(fā)現(xiàn)的端口號(hào)默認(rèn)的是但是這個(gè)端口是非常容易被其他的應(yīng)用所占用的。

開發(fā)環(huán)境下運(yùn)行Lagom
1.開發(fā)環(huán)境

Lagom的sbt或者maven項(xiàng)目是可以基于開發(fā)的環(huán)境允許使用單個(gè)命令來(lái)運(yùn)行任意數(shù)量的服務(wù)。
當(dāng)代碼更改時(shí),同樣的命令也會(huì)重新加載服務(wù),這樣你就不用手動(dòng)重啟了,您可以繼續(xù)關(guān)注您的工作,并讓Lagom進(jìn)行編譯和重新加載。
(1)運(yùn)行Maven中的所有服務(wù)
命令很簡(jiǎn)單,就是 lagom:runAll
如果您有很多服務(wù),或者第一次檢索依賴關(guān)系,這可能需要一段時(shí)間,
(2)熱加載
一旦“Services started”消息出現(xiàn),如果您對(duì)源代碼進(jìn)行更改,您將在控制臺(tái)看到這樣的輸出:
[info] Compiling 1 Java source to //target/scala-2.11/classes...
--- (RELOAD) ---
(3)我們所看到的背后
當(dāng)我們運(yùn)行了runAll命令之后,在背后到底都發(fā)生了什么呢??
    >啟動(dòng)了一個(gè)嵌入式服務(wù)定位器(特別類似于zk或者eureka)
    >啟動(dòng)了一個(gè)Cassandra服務(wù)器
    >開始了kafka服務(wù)器(這個(gè)比較熱了,mq系列)
    >你的服務(wù)開始
        >并向服務(wù)定位器注冊(cè)
這一切都是在沒(méi)有特殊代碼或附加配置的情況下自動(dòng)發(fā)生的。
您可以通過(guò)在web瀏覽器中查看http://localhost:8000 / services來(lái)驗(yàn)證您的服務(wù)正在運(yùn)行(或者使用像curl這樣的命令行工具),服務(wù)定位器,在端口8000上運(yùn)行,江湖返回類似于如下這樣的信息:
    [{"name":"hello-stream","url":"http://0.0.0.0:26230"},
     {"name":"cas_native","url":"tcp://127.0.0.1:4000/cas_native"},
     {"name":"hello","url":"http://0.0.0.0:24266"}]
cas_native是Cassandra服務(wù)器,正如您將在編寫持久和集群服務(wù)的文檔中學(xué)習(xí)的,Cassandra是Lagom的默認(rèn)數(shù)據(jù)庫(kù),它是開發(fā)環(huán)境的一個(gè)組成部分。
服務(wù)為定位器,Cassandra和kafka在接下來(lái)的章節(jié)中詳細(xì)討論。

2.運(yùn)行服務(wù)

就像在上節(jié)講的那樣,在構(gòu)建中定義的所有Lagom服務(wù)都可以用單個(gè)任務(wù)來(lái)運(yùn)行:runAll。執(zhí)行此任務(wù)時(shí),將啟動(dòng)嵌入式服務(wù)定位器,一個(gè)內(nèi)嵌的 Cassandra服務(wù)器也會(huì)隨之啟動(dòng),然后你的所有的服務(wù)都會(huì)并行的被啟動(dòng)起來(lái)。而且,所有啟動(dòng)的服務(wù)都將以熱重載模式運(yùn)行。熱重新加載意味著服務(wù)會(huì)自動(dòng)地重新加載您所做的每一個(gè)更改,這樣您就不必手動(dòng)重新啟動(dòng)它們。大多數(shù)時(shí)候,runAll任務(wù)將為您提供良好的服務(wù)。然而,有時(shí)您可能想手動(dòng)啟動(dòng)一些服務(wù),這是當(dāng)run 任務(wù)將派上用場(chǎng)的時(shí)候。run任務(wù)對(duì)每個(gè)Lagom服務(wù)實(shí)現(xiàn)項(xiàng)目都可用。
在Maven中,您可以使用Maven項(xiàng)目列表標(biāo)記來(lái)執(zhí)行特定服務(wù)的run任務(wù):
    $ mvn -pl  lagom:run
您應(yīng)該記住的一點(diǎn)是,run只啟動(dòng)特定的服務(wù),它既不啟動(dòng)服務(wù)定位器,也不啟動(dòng)Cassandra服務(wù)器。因此,在手動(dòng)啟動(dòng)服務(wù)之前,您可能需要手動(dòng)啟動(dòng)服務(wù)定位器和Cassandra服務(wù)器。

3.端口是如何分配給服務(wù)的

在檢查運(yùn)行服務(wù)列表時(shí),您可能想知道端口是如何分配的。您應(yīng)該注意到的一點(diǎn)是,端口的分配是一致的,這意味著每個(gè)服務(wù)將得到分配的相同端口,這是真正有用的,它允許我們來(lái)編寫測(cè)試服務(wù)功能的測(cè)試腳本,甚至可以與與團(tuán)隊(duì)的其他成員共享創(chuàng)建的腳本。即使在不同的機(jī)器上,同樣的端口也會(huì)被確定地選擇!注意,這里提醒一下,不是說(shuō)所有服務(wù)使用一個(gè)端口,而是lagom使用算法,期間用到了項(xiàng)目名,也就是說(shuō),同一個(gè)項(xiàng)目。不管啥時(shí)候,它端口都是唯一的,算法導(dǎo)致的。
為每個(gè)服務(wù)分配一個(gè)端口的算法如下:
    >這個(gè)項(xiàng)目的名稱是散列的。
    >哈希絕對(duì)值被投影到端口范圍(默認(rèn)的端口范圍是[49152,65535])
    >如果沒(méi)有其他項(xiàng)目聲明相同的端口,則指定的端口分配給項(xiàng)目。如果兩個(gè)或多個(gè)項(xiàng)目被投影到同一個(gè)端口上,相互沖突的項(xiàng)目是按字母順序排列的,首先出現(xiàn)的項(xiàng)目將得到分配給它的預(yù)期端口。然而,余下的項(xiàng)目將得到最接近的(嚴(yán)格的)可用的臨近的端口。
    總之,你不需要去擔(dān)心這個(gè),與大多數(shù)情況一樣,端口范圍寬到足以使沖突不可能發(fā)生。然而,有時(shí)您可能仍然傾向于將特定的端口分配給服務(wù)(例如,如果自動(dòng)分配的端口已經(jīng)在您的系統(tǒng)中使用)您可以手動(dòng)為項(xiàng)目的服務(wù)端口設(shè)置提供端口號(hào)。
    在Maven中,您可以通過(guò)修改服務(wù)實(shí)現(xiàn)pom配置來(lái)實(shí)現(xiàn)這一點(diǎn):
        
            com.lightbend.lagom
            lagom-maven-plugin
            
                11000
            
        
    上文中的算法的描述,在默認(rèn)端口中,默認(rèn)端口是[49152,65535]。這也稱為短暫的端口范圍,IANA為動(dòng)態(tài)端口選擇使用了一系列的端口號(hào)。如果默認(rèn)范圍不適合您,您可以通過(guò)在構(gòu)建中添加以下內(nèi)容來(lái)更改它。
    pom文件中加入:
        
            com.lightbend.lagom
            lagom-maven-plugin
            ${lagom.version}
            
                
                    40000
                    45000
                
            
        
    在此更改之后,您的服務(wù)項(xiàng)目將被分配到一個(gè)范圍[40000,45000],但是需要注意的是,我們的端口范圍的小,帶來(lái)的是兩個(gè)服務(wù)碰巧是分配同一個(gè)端口的可能性就大了。這本身并不是問(wèn)題(只要所有項(xiàng)目都有足夠的端口),但是,在您的構(gòu)建中添加一個(gè)新的服務(wù)項(xiàng)目可能會(huì)導(dǎo)致對(duì)已分配到現(xiàn)有服務(wù)項(xiàng)目的端口的更改,如果這兩個(gè)項(xiàng)目都發(fā)生相同的端口。如果您不希望這種情況發(fā)生,請(qǐng)確保提供的端口范圍足夠?qū)挕;蛘撸謩?dòng)為服務(wù)項(xiàng)目分配端口,因?yàn)檫@是有意義的。
    

4.服務(wù)定位器(就類似于zk和eureka)

服務(wù)定位器嵌入在Lagom的開發(fā)環(huán)境中,允許服務(wù)發(fā)現(xiàn)并相互通信。有一些設(shè)置和任務(wù)可以為您喜歡的嵌入式服務(wù)定位器調(diào)整,讓我們來(lái)探索它們:
(1)默認(rèn)的端口號(hào)
在Lagon中,服務(wù)發(fā)現(xiàn)的端口號(hào)默認(rèn)的是8000,但是這個(gè)端口是非常容易被其他的應(yīng)用所占用的。或者,您可以通過(guò)在構(gòu)建中添加以下內(nèi)容來(lái)告訴服務(wù)定位器在10000端口上運(yùn)行。
在總項(xiàng)目下的pom文件里配置:
    
        com.lightbend.lagom
        lagom-maven-plugin
        ${lagom.version}
        
            10000
        
    
(2)與外部的服務(wù)進(jìn)交互
可以在您的構(gòu)建中定義的Lagom服務(wù)和無(wú)限數(shù)量的外部服務(wù)(可以在本地運(yùn)行或在另一臺(tái)機(jī)器上運(yùn)行)之間進(jìn)行通信。您要做的第一件事是在服務(wù)定位器中注冊(cè)每個(gè)外部服務(wù)。假設(shè)我們想要注冊(cè)一個(gè)名為weather的外部服務(wù),它運(yùn)行在http://localhost:3333中,下面是我們要添加到構(gòu)建的內(nèi)容。
在總項(xiàng)目下的pom文件里配置:
    
        com.lightbend.lagom
        lagom-maven-plugin
        ${lagom.version}
        
            
                http://localhost:3333
            
        
    
    

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67082.html

相關(guān)文章

  • Lagom參考指南

    摘要:針對(duì)您的個(gè)人需要,有一些設(shè)置和任務(wù)可用來(lái)調(diào)整服務(wù)器,讓我們來(lái)探索它們默認(rèn)端口號(hào)默認(rèn)情況下,服務(wù)器在端口上啟動(dòng)。 開發(fā)環(huán)境下運(yùn)行Lagom1.開發(fā)環(huán)境 Lagom的sbt或者maven項(xiàng)目是可以基于開發(fā)的環(huán)境允許使用單個(gè)命令來(lái)運(yùn)行任意數(shù)量的服務(wù)。 當(dāng)代碼更改時(shí),同樣的命令也會(huì)重新加載服務(wù),這樣你就不用手動(dòng)重啟了,您可以繼續(xù)關(guān)注您的工作,并讓Lagom進(jìn)行編譯和重新加載。 (1)運(yùn)行Mav...

    lemanli 評(píng)論0 收藏0
  • Lagom參考指南(二)

    摘要:允許將反序列化為沒(méi)有附加注釋元數(shù)據(jù)不可變的類。包的庫(kù)經(jīng)常會(huì)想支持多個(gè)版本的這樣做需要構(gòu)建一個(gè)為每個(gè)版本的支持工件它介紹了如何區(qū)分這些工件的問(wèn)題看到像不支持添加額外的元數(shù)據(jù)依賴關(guān)系的想法來(lái)指定他們需要什么版本的。 1.Defining a Lagom build(定義一個(gè)Lagom構(gòu)建) 正如在Lagom構(gòu)建哲學(xué)中已經(jīng)討論過(guò)的那樣,使用Lagom,您可以自由地將所有服務(wù)組合在一個(gè)單獨(dú)的構(gòu)...

    import. 評(píng)論0 收藏0
  • 微服務(wù)框架lagom

    摘要:在這種情況下,每一個(gè)微服務(wù)定義一個(gè)限界上下文,類似于領(lǐng)域驅(qū)動(dòng)的限界上下文。設(shè)計(jì)你的微服務(wù)系統(tǒng)的響應(yīng)式微服務(wù)架構(gòu)這本書對(duì)于微服務(wù)系統(tǒng)架構(gòu)很有幫助。 1.Lagom概念介紹 lagom框架包含一系列的可以支持我們從開發(fā)到部署的庫(kù)以及開發(fā)環(huán)境: >在開發(fā)階段,可以通過(guò)一個(gè)簡(jiǎn)單的命令構(gòu)建我們的項(xiàng)目,啟動(dòng)所有你的服務(wù),并且可以支持所有的lagom基礎(chǔ)設(shè)置層。當(dāng)你修改了代碼,logom是有熱加載的...

    Michael_Lin 評(píng)論0 收藏0
  • 前端資源系列(4)-前端學(xué)習(xí)資源分享&前端面試資源匯總

    摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...

    princekin 評(píng)論0 收藏0
  • Bytom礦池接入?yún)f(xié)議指南

    摘要:比原項(xiàng)目倉(cāng)庫(kù)地址地址礦機(jī)配置固件升級(jí)兩個(gè)都要刷先后順序沒(méi)關(guān)系升級(jí)時(shí)間較長(zhǎng),升級(jí)期間請(qǐng)勿斷電配置節(jié)點(diǎn)測(cè)試時(shí)可以考慮切換到分支降低難度使挖礦也能出塊,或初始化啟動(dòng)時(shí)可以加上指定數(shù)據(jù)目錄,若目錄不存在則會(huì)自動(dòng)新建該目錄流程初始化節(jié)點(diǎn)先建 比原項(xiàng)目倉(cāng)庫(kù): Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/Byto...

    CoffeX 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<