日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

分布式是写出来的(二)

發布時間:2023/11/30 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式是写出来的(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從單機存儲進化為接口和存儲的分離

概述

接口服務層對外提供REST服務,數據服務層提供數據存儲功能。兩者之間通過消息隊列進行通信,數據服務層的所有數據服務注冊dataServer Exchange, 以便client給接口服務層發消息后,接口服務收到GET請求時,定位對象被保存在哪一個數據服務節點,通過dataServer Exchange找到對應的數據服務。為保證dataServer Exchange中所有的數據服務都是有效,也為了讓接口服務層知道數據服務節點。建立另一個apiServers Exchange作為心跳檢測,由每一個數據服務節點持續發送心跳消息。

架構圖

測試代碼及步驟

配置好unbuntu環境后

2010 sudo apt install golang-go2011 sudo apt install gccgo-go 2012 sudo apt-get install rabbitmq-server2014 sudo rabbitmq-plugins enable rabbitmq_management2015 wget localhost:15672/cli/rabbitmqadmin2017 python3 rabbitmqadmin declare exchange name=apiServers type=fanout2018 python3 rabbitmqadmin declare exchange name=dataServers type=fanout2019 sudo rabbitmqctl add_user test test2020 sudo rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

配置運行環境變量

export GOPATH=~/go-implement-your-object-storage-master go get github.com/streadway/amqp sh ./tools/starttestenv.sh chapter2

測試代碼

輸入
curl -v 10.29.2.2:12345/objects/1234.txt -XPUT -d “add test 123”
查看
curl -v 10.29.2.2:12345/objects/1234.txt
定位在哪個服務器存儲
curl -v 10.29.2.2:12345/locate/1234.txt
從服務器10.29.2.2:12345直接拿數據
curl -v 10.29.1.2:12345/objects/1234.txt

$ curl -v 10.29.2.2:12345/objects/1234.txt -XPUT -d "add test 123" * Trying 10.29.2.2... * TCP_NODELAY set * Connected to 10.29.2.2 (10.29.2.2) port 12345 (#0) > PUT /objects/1234.txt HTTP/1.1 > Host: 10.29.2.2:12345 > User-Agent: curl/7.58.0 > Accept: */* > Content-Length: 12 > Content-Type: application/x-www-form-urlencoded > * upload completely sent off: 12 out of 12 bytes < HTTP/1.1 200 OK < Date: Fri, 10 Apr 2020 12:35:21 GMT < Content-Length: 0 < * Connection #0 to host 10.29.2.2 left intact kou@ubuntu:~/go-implement-your-object-storage-master$ curl -v 10.29.2.2:12345/objects/1234.txt * Trying 10.29.2.2... * TCP_NODELAY set * Connected to 10.29.2.2 (10.29.2.2) port 12345 (#0) > GET /objects/1234.txt HTTP/1.1 > Host: 10.29.2.2:12345 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Fri, 10 Apr 2020 12:35:27 GMT < Content-Length: 12 < Content-Type: text/plain; charset=utf-8 < * Connection #0 to host 10.29.2.2 left intact add test 123kou@ubuntu:~/go-implement-your-object-storage-master$ curl -v 10.29.2.2:12345/locate/1234.* Trying 10.29.2.2... * TCP_NODELAY set * Connected to 10.29.2.2 (10.29.2.2) port 12345 (#0) > GET /locate/1234.txt HTTP/1.1 > Host: 10.29.2.2:12345 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Fri, 10 Apr 2020 12:35:35 GMT < Content-Length: 17 < Content-Type: text/plain; charset=utf-8 < * Connection #0 to host 10.29.2.2 left intact "10.29.1.2:12345" $curl -v 10.29.1.2:12345/objects/1234.txt * Trying 10.29.1.2... * TCP_NODELAY set * Connected to 10.29.1.2 (10.29.1.2) port 12345 (#0) > GET /objects/1234.txt HTTP/1.1 > Host: 10.29.1.2:12345 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Fri, 10 Apr 2020 12:38:13 GMT < Content-Type: text/plain; charset=utf-8 < Transfer-Encoding: chunked < * Connection #0 to host 10.29.1.2 left intact

goland添加環境變量

Edit congratulation>environment

rabbitmq監控

http://127.0.0.1:15672/

總結

以上是生活随笔為你收集整理的分布式是写出来的(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。