金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 656585
排名 - 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" 錯誤(11032)
2.?SVN中邪惡的replace(10955)
3.?VS2005編譯libevent(10413)
4.?混音算法的學習與研究(10203)
5.?C調用lua腳本的效率測試(9007)
評論排行榜
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
金慶
閱讀(1675)
評論(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 © 金慶
日韩人妻无码精品久久久不卡
|
伊人久久大香线焦AV综合影院
|
老色鬼久久亚洲AV综合
|
亚洲国产婷婷香蕉久久久久久
|
人妻无码精品久久亚瑟影视
|
国产亚洲色婷婷久久99精品91
|
少妇精品久久久一区二区三区
|
精品999久久久久久中文字幕
|
久久精品综合一区二区三区
|
亚洲国产精品无码久久
|
久久久久无码国产精品不卡
|
久久男人Av资源网站无码软件
|
久久久综合香蕉尹人综合网
|
久久天天躁狠狠躁夜夜网站
|
久久香蕉超碰97国产精品
|
99久久亚洲综合精品成人
|
亚洲精品乱码久久久久久
|
久久国产视频99电影
|
国内精品伊人久久久久AV影院
|
久久综合久久伊人
|
亚洲狠狠久久综合一区77777
|
久久久久亚洲av综合波多野结衣
|
久久九九亚洲精品
|
久久无码人妻一区二区三区
|
97久久精品午夜一区二区
|
四虎亚洲国产成人久久精品
|
国产91久久综合
|
亚洲国产成人久久综合一
|
久久综合给合久久国产免费
|
久久久噜噜噜www成人网
|
99久久综合国产精品免费
|
久久人妻少妇嫩草AV无码蜜桃
|
中文精品久久久久国产网址
|
久久香蕉国产线看观看99
|
热99re久久国超精品首页
|
99国产精品久久
|
日本久久久久久中文字幕
|
久久99精品综合国产首页
|
日本久久久精品中文字幕
|
久久99精品国产一区二区三区
|
99久久精品国产麻豆
|