非同步投遞 Async sends 翻譯

2021-10-19 13:38:37 字數 952 閱讀 1091

activemq支援傳送訊息到broker用同步或者非同步的方式。所使用的模式對傳送呼叫的延遲有很大的影響。因為延遲通常是生產者可以達到的吞吐量的乙個巨大因素,所有非同步傳送樂意顯著的提高你的系統的效能。

好的訊息是,activemq在一起情況下預設使用非同步模式傳送訊息。只有jms規範要求使用同步傳送情況下,我們才預設進行同步傳送。

當持久化的訊息在沒有使用事務傳送的情況下,我們會迫使使用同步模式傳送

如果你沒有使用事務和傳送持久化訊息,所有傳送將是同步並且是阻塞的,直到broker返回乙個這個訊息已經被安全的持久化磁碟上了的確認(ack)給生產者。這個確認(ack)提供了訊息不會丟失的保障,但由於客戶端被阻塞,它也產生了巨大延遲代價

許多高效能的應用被設計成在失敗的場景中容忍少量訊息丟失。如果的應用是符合這種設計,你將可以使用非同步傳送來增加吞吐量,甚至是持久化的訊息。

你能使用連線配置uri來配置非同步投遞,如下所示

cf =

newactivemqconnectionfactory

("tcp://locahost:61616?jms.useasyncsend=true"

);

在activemqconnectionfactory物件上設定這個屬性你能啟用這個功能

(

(activemqconnectionfactory)connectionfactory)

.setuseasyncsend

(true

);

在這個級別上配置非同步投遞將覆蓋connection factory級別的設定

在activemqconnection物件上設定這個屬性你能啟用這個功能

((activemqconnection)connection).setuseasyncsend(true);

Swoole實現非同步投遞task任務案例詳解

使用場景 swolle的task模組可以用來做一些非同步的慢速任務 耗時場景。如webim中發廣播,傳送郵件等,把這些任務丟給task程序之後,worker程序可以繼續處理新的資料請求,任務完成後會非同步通知worker程序告訴它此任務已經完成。此外利用task還可以實現php的資料庫連線池,非同步...

swoole 初試教程 非同步tcp任務投遞

asy tcp tack.php created by phpstorm.user administrator date 2018 12 26 time 16 35 非同步tcp 建立tcp伺服器 serv new swoole server 0.0.0.0 9506 設定非同步 程序工作數 設定程...

ActiveMQ中的延遲投遞和定時投遞

5.4版的activemq在activemq訊息 中內建了乙個可選的永續性排程程式。通過在 xml配置 中將broker schedulersupport屬性設定為true 可以啟用此功能。activemq客戶端可以通過使用以下訊息屬性來利用延遲傳遞。官網 修改activemq.xml,在broke...