金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 659016
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11054)
2.?SVN中邪惡的replace(10972)
3.?VS2005編譯libevent(10429)
4.?混音算法的學習與研究(10230)
5.?C調用lua腳本的效率測試(9019)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
grpc中的dns負載均衡
grpc中的dns負載均衡
(金慶的專欄 2018.8)
grpc-go 中如下連接服務器,請求將在多個IP之間輪轉。
conn, err := grpc.Dial(
"dns:///rng-headless:8081",
grpc.WithBalancerName(roundrobin.Name),
grpc.WithInsecure())
標準的目標名應該是這樣的:`"dns://authority/endpoint_name"`,
此處 authority 為空,詳見:https://github.com/grpc/grpc/blob/master/doc/naming.md
服務器開3個實例,所有請求在3個實例上輪轉:
[jinqing@host-10-2-3-4 RoundRobin]$ kubectl run -it --rm jinqing-roundrobin --image=jinq0123/roundrobin:4
If you don't see a command prompt, try pressing enter.
2018/08/28 10:18:01 request 7754383576636566559
2018/08/28 10:18:02 request 2543876599219675746
2018/08/28 10:18:03 request 927204261937181213
2018/08/28 10:18:04 request 7754383576636566559
2018/08/28 10:18:05 request 2543876599219675746
2018/08/28 10:18:06 request 927204261937181213
...
服務器返回一個隨機數,不同實例的隨機數不同。代碼是從
https://github.com/kcollasarundell/balancing-on-k8s 修改的。
...
const (
port = ":8081"
)
type server struct{}
var r int64
func init(){
rand.Seed(time.Now().UnixNano())
r = rand.Int63()
}
func (s *server) Rng(context.Context, *rng.Source) (*rng.RN, error) {
return &rng.RN{RN: r}, nil
}
func main() {
lis, err := net.Listen("tcp", port)
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
s := grpc.NewServer()
rng.RegisterRngServer(s, &server{})
// Register reflection service on gRPC server.
reflection.Register(s)
if err := s.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}
先編譯,打包成鏡像,然后用 `balancing-on-k8s\backend\kube.yaml` 運行:
kubectl apply -f kube.yaml
`backend\kube.yaml` 創建了一個 ClusterIP 服務和一個 Headless 服務,部署了 3 個服務器實例。
[jinqing@host-10-2-3-4 RoundRobin]$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 93d
rng-cluster ClusterIP 10.111.30.205 <none> 8081/TCP 4h
rng-headless ClusterIP None <none> 8081/TCP,8080/TCP 4h
客戶端是一個簡單的grpc, 定時發送請求,打印返回的隨機數。
`balancing-on-k8s\clientSideBalancer\RoundRobin\main.go`中的地址需要添加端口,
不然grpc會去連接 443 端口而失敗。
擴容后,測到大概3分鐘后才看到負載轉移??s容后會立即生效。
kubectl scale --replicas=5 deployment/rng
如果是 ClusterIP 服務, 則服務名對應一個ClusterIP;
如果是 Headless 服務,則服務名對應各個Pod的IP:
/ # nslookup rng-headless
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: rng-headless.default.svc.cluster.local
Address: 10.244.3.27
Name: rng-headless.default.svc.cluster.local
Address: 10.244.0.108
Name: rng-headless.default.svc.cluster.local
Address: 10.244.2.66
/ # nslookup rng-cluster
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: rng-cluster.default.svc.cluster.local
Address: 10.111.30.205
/ #
如果去除 "dns:///", 僅僅是域名加端口:
conn, err := grpc.Dial(
"rng-headless:8081",
grpc.WithBalancerName(roundrobin.Name),
...
則只會請求同一個實例。只有當該實例pod被刪除后才會切換到另一個實例。
使用縮容時發現會優先刪除沒有客戶端連接的實例。
用2個客戶端連接到不同服務器實例,然后縮容為1實例,就可以看到請求切換。
如果客戶端和服務器數量很大,這個dns負載均衡就不合適了,因為客戶端會連接每個服務器實例。
參考:
Exploring Kubernetes Service Discovery and loadbalancing ( https://kca.id.au/post/k8s_service/ )
posted on 2018-08-29 10:59
金慶
閱讀(1679)
評論(0)
編輯
收藏
引用
所屬分類:
3. Golang
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
net.LookupSRV()查詢k8s無頭服務
rpc應答太快造成請求超時
golang各數值類型的最大最小值
參數太靈活容易出錯
grpc外部負載均衡器測試
數組make參數錯誤
go不要導出channel
go代碼覆蓋測試
考察go一致性hash庫
將go函數指針轉為接口
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
久久精品国产99国产精品亚洲
|
无码乱码观看精品久久
|
欧美日韩中文字幕久久伊人
|
国産精品久久久久久久
|
亚洲国产综合久久天堂
|
精品久久久久久国产潘金莲
|
久久午夜无码鲁丝片午夜精品
|
国产成人无码精品久久久性色
|
色综合久久88色综合天天
|
亚洲综合久久久
|
久久精品国产免费
|
久久久久99精品成人片直播
|
亚州日韩精品专区久久久
|
99久久无码一区人妻a黑
|
久久久这里有精品
|
久久国产热这里只有精品
|
久久久久亚洲AV无码麻豆
|
欧美久久一区二区三区
|
麻豆精品久久久一区二区
|
久久影院综合精品
|
国产成人精品三上悠亚久久
|
日日狠狠久久偷偷色综合免费
|
久久久无码一区二区三区
|
99久久国产精品免费一区二区
|
欧洲性大片xxxxx久久久
|
婷婷综合久久狠狠色99h
|
亚洲av日韩精品久久久久久a
|
久久久久久精品成人免费图片
|
久久青青草原亚洲av无码
|
国产毛片久久久久久国产毛片
|
色综合久久综合网观看
|
国产精品免费久久
|
99久久综合国产精品二区
|
伊人丁香狠狠色综合久久
|
国产精品成人无码久久久久久
|
国产精品免费久久久久影院
|
精品久久久久久99人妻
|
久久91精品综合国产首页
|
久久黄视频
|
久久丫忘忧草产品
|
久久香综合精品久久伊人
|