我們有一個(gè) kubernetes 集群,其中會(huì)觸發(fā)協(xié)調(diào)以響應(yīng)自定義事件。使用以下格式在 Golang 中實(shí)現(xiàn):type reconciler struct {}func (reconciler) Reconcile(ctx context.Context, o reconcile.Request) (reconcile.Result, error) { // Implement business logic of reading and writing objects here return reconcile.Result{}, nil}當(dāng)自定義事件過多時(shí),我們已經(jīng)確定了協(xié)調(diào)邏輯中可能存在的瓶頸。因此,代碼已更新為具有非阻塞協(xié)調(diào)邏輯。例子:type reconciler struct {}func (reconciler) Reconcile(ctx context.Context, o reconcile.Request) (reconcile.Result, error) { go func() { // Implement business logic of reading and writing objects here }() return reconcile.Result{}, nil}但是,在某些地方非阻塞 go routine 可能會(huì)返回 return ctrl.Result{Requeue: true}, nil 或 return ctrl.Result{RequeueAfter: someTime}, nil在這種情況下,我們?nèi)绾螌⒋祟愂录匦屡抨?duì)到協(xié)調(diào)循環(huán),因?yàn)榉祷夭粫?huì)返回給調(diào)用者 Reconcile()
1 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
我認(rèn)為更好的方法是使用并發(fā)協(xié)調(diào),允許處理其他請(qǐng)求,而單個(gè)協(xié)調(diào)請(qǐng)求處理起來很慢。這樣協(xié)調(diào)請(qǐng)求隊(duì)列就不會(huì)被阻塞,空閑的 go 例程相當(dāng)便宜,所以它不應(yīng)該對(duì)你的性能產(chǎn)生太大影響。
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報(bào)
0/150
提交
取消