事實上,發布訂閱真的與開發語言沒有什麼關係,所以出現了另一種產品,訊息中介軟體,或者叫訊息佇列,它是以發布訂閱模式為理論基礎的,同時很多訊息佇列產品又有自己的特色,這種獨立的訊息佇列我們為rabbitmq
為例子。
**解耦,發布者與訂閱者可以互不關心
非同步處理,整合元件有的是同步的,需要加@async
註解
訊息安全
rabbitmq實現的是多服務之間的發布與訂閱
整合元件實現的是乙個服務內部的發布與訂閱
rabbitmq是非同步的,整合元件可以是非同步,也可以是同步
rabbitmq可以有廣播,點對點等模式,而整合元件只有廣播模式
基於以上的介紹,主要幫助大家理解和認識,在什麼時候用什麼型別的工具。
訂閱
@getter
@builder(tobuilder = true)
@noargsconstructor
@allargsconstructor
public class createbookevent
@component
public class emaileventlistener
}
發布
@autowired
public void publish()
訂閱
@slf4j
@component
public class distributorsubscriber
@bean
public queue phonetotalqueue()
@bean
public binding bindsignqueue()
@rabbitlistener(queues = work_queue)
public void phonetotalqueuelistener(string data) ", data);
distributoractivitytotal entity =
distributoractivitytotalrepository.incupdate(entity);
} catch (exception ex)
}
發布
@autowired
private rabbittemplate rabbittemplate;
public void modifysalesperson(salespersondto salespersondto) ,message:{}", "modifysalesperson", salespersondto.tostring());
} catch (exception ex)
}
訊息佇列 點對點與發布訂閱區別
jms規範目前支援兩種訊息模型 點對點 point to point,queue 和發布 訂閱 publish subscribe,topic 訊息生產者生產訊息傳送到queue中,然後訊息消費者從queue中取出並且消費訊息。這裡要注意 訊息被消費以後,queue中不再有儲存,所以訊息消費者不可能...
redis訊息訂閱和發布例項
發布訂閱 pub sub 是一種訊息通訊模式,主要目的是解除訊息發布者 訊息訂閱者之間的耦合 pub sub的特點 2 發布者和訂閱者不必相互知道對方所在的位置 3 發布者 訂閱者是非同步模式,發布者可不斷地生產訊息,訂閱者則可非同步地得到訊息通知 pub sub的使用場景 即時聊天 訊息推送 非同...
mysql訊息訂閱與發布 發布 訂閱配置
public ibus bus public void handle mymessage message bus.publish e e.someproperty xyz 公共汽車 屬性將自動由基礎設施。這就是所謂的 依賴注入 所有開發完成了nservicebus利用這些模式。技術作為nservic...