zeromq發布訂閱模式及監控monitor

2021-09-27 10:10:11 字數 2393 閱讀 9407

zeromq是乙個高效能的訊息中介軟體,對於使用方法及相關的理解在**註解中講的很清楚了,直接看**就好了。

1.zeromq服務端示例**
package com.yaomy.control.zeromq.pubsub.server;

import com.yaomy.control.logback.utils.loggerutil;

import org.zeromq.sockettype;

import org.zeromq.zcontext;

import org.zeromq.zmq;

/** * @description: 服務端

* @version: 1.0

*/public class zeromqserver

public void start()

}}

2.zeromq客戶端示例**
package com.yaomy.control.zeromq.pubsub.client;

import com.yaomy.control.logback.utils.loggerutil;

import com.yaomy.control.zeromq.pubsub.client.task.monitermqtask;

import org.zeromq.sockettype;

import org.zeromq.zcontext;

import org.zeromq.zmq;

/** * @description: zeromq訂閱客戶端

* @version: 1.0

*/@suppresswarnings("all")

public class zeromqclient

/*** @description 跟指定端點伺服器建立連線,監控事件變化,並接受訊息

* @version 1.0

*/private void build()

/*** @description 訂閱指定字首prefix的訊息通道

* @version 1.0

*/public boolean subscribe(byte prefix)

/*** @description 取消訂閱指定字首prefix的訊息通道

* @version 1.0

*/public boolean unsubscribe(byte prefix)

/*** 獲取服務端socket物件

* @return

*/public zmq.socket getsocket()

}

3.mq客戶端事件監聽執行緒任務
package com.yaomy.control.zeromq.pubsub.client.task;

import com.yaomy.control.logback.utils.loggerutil;

import org.zeromq.sockettype;

import org.zeromq.zcontext;

import org.zeromq.zmq;

/** * @description: 監控zeromq事件

* @version: 1.0

*/public class monitermqtask implements runnable

@override

public void run() }}

}

4.客戶端訊息接收執行緒
package com.yaomy.control.zeromq.pubsub.client.task;

import com.yaomy.control.logback.utils.loggerutil;

import org.zeromq.zmq;

/** * @description: zeromq接收訂閱topic通道訊息

* @version: 1.0

*/public class msgrecvtask implements runnable

@override

public void run()

}}

5.測試啟動方法
public static void start(string endpoint)).start();

zeromqclient client = new zeromqclient(endpoint);

//啟動接收訊息執行緒

new thread(new msgrecvtask(client.getsocket())).start();

client.subscribe("time:".getbytes());

}

發布 訂閱模式

發布 訂閱模式又叫觀察者模式,它定義物件間的一種一對多的關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都將得到通知。在js中,我們一般用事件模型來替代傳統的發布 訂閱模式。實現 varpubsub function p 訂閱 p.subscribe function flag,fn 發布 p....

發布訂閱模式

不同的語言,相同的模式。最近在關注設計模式的知識,發布訂閱模式其實是物件間一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴與它的物件都將得到狀態改變的通知。作用 1 廣泛應用於非同步程式設計中 2 物件間鬆散耦合的編寫 自定義事件 let corp 定義乙個公司物件 這裡放乙個列表來緩衝回掉函...

發布訂閱模式

前言 應用場景 專案做久了以後會越來越大,當很多人去做同乙個人專案的時候,裡面的邏輯耦合度當然是越低越好,有這麼乙個場景 需求 3個人同時開發乙個專案的時候,分別開發登入模組login 商品模組showshoplist 書籍模組showbooklist 當使用者登入成功的時候,需要使用者資訊去重新整...