W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
為了方便 Dubbo-go 框架用戶的使用,我們提供了 Samples 倉(cāng)庫(kù)以供用戶參考:
【Dubbo-go-samples 倉(cāng)庫(kù)地址】
1. Samples 倉(cāng)庫(kù)包含的例子
目前有三種方式來(lái)運(yùn)行 dubbo-go 的示例:
前置條件:需要 docker 環(huán)境就緒
下面我們將使用 “helloworld” 作為示例:
make -f build/Makefile docker-up
當(dāng)看到類似下面的輸出信息時(shí),就表明 zookeeper server 啟動(dòng)就緒了。
> Starting dependency services with ./integrate_test/dockercompose/docker-compose.yml
Docker Compose is now in the Docker CLI, try `docker compose up`
Creating network "dockercompose_default" with the default driver
Creating dockercompose_zookeeper_1 ... done
Creating etcd ... done
Creating nacos-standalone ... done
如果要停掉注冊(cè)中心,可以通過(guò)運(yùn)行以下的命令完成:
make -f build/Makefile docker-down
cd helloworld/go-server/cmd
export DUBBO_GO_CONFIG_PATH="../conf/dubbogo.yml"
go run .
當(dāng)看到類似下面的輸出信息時(shí),就表明服務(wù)提供方啟動(dòng)就緒了。
2021/10/27 00:33:10 Connected to 127.0.0.1:2181
2021/10/27 00:33:10 Authenticated: id=72057926938066944, timeout=10000
2021/10/27 00:33:10 Re-submitting `0` credentials after reconnect
cd helloworld/go-client/cmd
export DUBBO_GO_CONFIG_PATH="../conf/dubbogo.yml"
go run .
當(dāng)以下的信息輸出時(shí),說(shuō)明 go-client 調(diào)用 go-server 成功。2021-10-27T00:40:44.879+0800 DEBUG triple/dubbo3_client.go:106 TripleClient.Invoke: get reply = name:"Hello laurence" id:"12345" age:21
2021-10-27T00:40:44.879+0800 DEBUG proxy/proxy.go:218 [makeDubboCallProxy] result: name:"Hello laurence" id:"12345" age:21 , err: <nil>
2021-10-27T00:40:44.879+0800 INFO cmd/client.go:51 client response result: name:"Hello laurence" id:"12345" age:21
本項(xiàng)目 dubbo-go-samples 除了用來(lái)展示如何使用 dubbo-go 中的功能和特性之外,還被用于 apache/dubbo-go 的集成測(cè)試??梢园凑找韵碌牟襟E來(lái)運(yùn)行針對(duì) go-server 設(shè)計(jì)的集成測(cè)試:
首先啟動(dòng)服務(wù)方
cd helloworld/go-server/cmd
export DUBBO_GO_CONFIG_PATH="../conf/dubbogo.yml"
go run .
然后切換到單測(cè)目錄, 設(shè)置環(huán)境變量,然后執(zhí)行單測(cè)
cd integrate_test/helloworld/tests/integration
export DUBBO_GO_CONFIG_PATH="../../../../helloworld/go-client/conf/dubbogo.yml"
go test -v
當(dāng)以下信息輸出時(shí),說(shuō)明集成測(cè)試通過(guò)。
> Running integration test for application go-server
...
--- PASS: TestSayHello (0.01s)
PASS
ok github.com/apache/dubbo-go-samples/integrate_test/helloworld/tests/integration 0.119s
make -f build/Makefile clean docker-down
以下的兩種運(yùn)行方式都與 IDE 有關(guān)。這里我們以 Intellij GoLand 為例來(lái)討論。
一旦在 GoLand 中打開(kāi)本項(xiàng)目,可以發(fā)現(xiàn),在 “Run Configuration” 彈出菜單中已經(jīng)存在了一系列事先配置好了的用來(lái)運(yùn)行相關(guān)服務(wù)提供方和調(diào)用方的選項(xiàng),例如:“helloworld-go-server” 和 “helloworld-go-client”。
可以選擇其中的任意一個(gè)快速啟動(dòng)相關(guān)示例。當(dāng)然在運(yùn)行之前,假設(shè)需要的注冊(cè)中心已經(jīng)事先啟動(dòng)了,不然用例將會(huì)失敗。您可以選擇手動(dòng)自行啟動(dòng)的方式,也可以利用工程中提供的 “docker-compose.yml” 在啟動(dòng)注冊(cè)中心的 docker 實(shí)例。選擇后者的話,可以參考第三種方式中的細(xì)節(jié)。
這里以 Intellij GoLand 為例。在 GoLand 中打開(kāi) dubbo-go-samples 工程之后,按照以下的步驟來(lái)運(yùn)行/調(diào)試本示例:
Deploying 'Compose: docker'...
/usr/local/bin/docker-compose -f ...integrate_test/dockercompose/docker-compose.yml up -d
Creating network "docker_default" with the default driver
Creating docker_zookeeper_1 ...
'Compose: docker' has been deployed successfully.
[2021-02-03/16:19:30 main.main: client.go: 66] response result: &{A001 Alex Stocks 18 2020-02-04 16:19:30.422 +0800 CST}
如果需要調(diào)試該示例或者 dubbo-go 框架,可以在 IDE 中從 “Run” 切換到 “Debug”。如果要結(jié)束的話,直接點(diǎn)擊 ?? 就好了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: