iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
2

五、分配機制(調度)

有一天,由於 queue 內的資料量過大,而 worker 來不及消化。我們需要增加 worker 的個數,來加速 queue 的內容。

這時,需要有一個機制,讓 worker 順利取得正確不重複的資料內容,讓它可以進行資料處理。

https://ithelp.ithome.com.tw/upload/images/20190929/20107551tZtKgXYaNd.png

5.1 Dispatch 的註冊

不管是 pull 或是 subscript 那一種方式,當多個 consumer 來請求資料時,都必須先註冊,這樣配置器(Dispatch) 才知道有那些資源可以使用。

舉例來說,今天你要發糖果給小朋友,如果小朋友沒有到你面前跟你要糖果,你一定不知道要發給誰。

所以,我們可以得到 dispatch 的特性一,所有相關的 consumer 都必須要進行註冊動作。

public interface IConsumber
{
    
}
public interface Dispatch<T>
{
    public Binding(ConCurrentQueue<T> queue);
    public Registor(IConsumber consumber);
}

在分派資源的處理原則,還是保持 FIFO 。

在後面,將會實作三種分派的情境,與一種筆者實作的過的情況。


上一篇
四、Router 路由器(3) - 通用 Router
下一篇
五、分配機制(2) - 同質性分派
系列文
從零開始土炮MQ30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言