AKKA入門教程 事件匯流排(發布訂閱模式)

2021-08-19 21:15:46 字數 2217 閱讀 3782

1、這種分類最初是專門為執行deathwatch而開發的:訂戶和分類器都是型別的actorref。這種分類要求actorsystem執行與作為參與者的訂戶有關的簿記操作,其可以在沒有首先從eventbus取消訂閱的情況下終止。managedactorclassification維護乙個系統actor,它負責自動處理取消訂閱終止的actor。

訂閱者可以訂閱不同型別的事件,事件傳送時,不同的接收者會接收到

actorref observer1 = new testkit(system).getref();actorref observer2 = new testkit(system).getref();testkit probe1 = new testkit(system);testkit probe2 = new testkit(system);actorref subscriber1 = probe1.getref();actorref subscriber2 = probe2.getref();actorbusimpl actorbus = new actorbusimpl(system);

actorbus.subscribe(subscriber1, observer1);

actorbus.subscribe(subscriber2, observer1);

actorbus.subscribe(subscriber2, observer2);notification n1 = new notification(observer1, 100);

actorbus.publish(n1);

probe1.expectmsgequals(n1);

probe2.expectmsgequals(n1);notification n2 = new notification(observer2, 101);

actorbus.publish(n2);

probe2.expectmsgequals(n2);

probe1.expectnomsg(finiteduration.create(500, timeunit.milliseconds));

subscriber1 ,

subscriber2 

訂閱者訂閱了 

observer1 ,當actorbus 傳送 observer1型別通知事件時-->subscriber1 ,subscriber2  都會收到

2、事件匯流排發布訂閱、

事件流中實現了子通道分類,所以可以通過訂閱它們的公共超類來訂閱一組事件

inte***ce allkindsofmusic 

class jazz implements allkindsofmusic }class electronic implements allkindsofmusic }

static class listener extends abstractactor }

final actorref actor = system.actorof(props.create(deadletteractor.class));

system.eventstream().subscribe(actor, deadletter.class);

final actorref jazzlistener = system.actorof(props.create(listener.class));

final actorref musiclistener = system.actorof(props.create(listener.class));

system.eventstream().subscribe(jazzlistener, jazz.class);

system.eventstream().subscribe(musiclistener, allkindsofmusic.class);

// only musiclistener gets this message, since it listens to *all* kinds of music:

system.eventstream().publish(new electronic("parov stelar"));

// jazzlistener and musiclistener will be notified about jazz:

system.eventstream().publish(new jazz("sonny rollins"));

CAN 匯流排入門教程(1)

can匯流排作為匯流排中的一種,意味著匯流排上的所有節點都可以接收匯流排上的資訊。通過特定的方式讓單一節點接收資訊是無法實現的。我們可以設定can的硬體結構,通過布局區域性的濾波器,讓每個節點只對特定的資訊作出反應。can匯流排使用帶位填充的nrz編碼,各個模組通過wired and fashion...

CSS入門教程

css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...

CSS入門教程

css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...