github-unifrost/unifrost:使用伺服器傳送事件(EventSource)技術中繼Apache Kafka等pubsub訊息流到Web,便於實時檢視訊息內容
unifrost是一個go模組,用於通過SSE(Eventsource)將pubsub訊息中繼到Web 。它基於Twitter的實現,用於在其新的Web應用程式中進行實時事件流傳輸。
它使用Go CDK作為支援多個pubsub供應商的供應商中性pubsub驅動程式:
- Google Cloud Pub / Sub
- Amazon Simple Queuing Service(待處理)
- Azure服務匯流排(待定)
- RabbitMQ
- NATS
- Apache Kafka
- 記憶體中(僅用於測試)
為什麼要選擇SSE而不是WebSockets?
原因之一是因為後來的API(如WebSocket)提供了更豐富的協議來執行雙向全雙工通訊。但是,在某些情況下,不需要從客戶端傳送資料。您只需要某些伺服器操作的更新即可。一些示例是朋友的狀態更新,股票行情自動收錄器,新聞提要或其他自動資料推送機制(例如,更新客戶端Web SQL資料庫或IndexedDB物件儲存)。如果您需要將資料傳送到伺服器,則Fetch API永遠是朋友。
SSE通過傳統的HTTP傳送。這意味著它們不需要特殊的協議或伺服器實現即可正常工作。另一方面,WebSockets需要全雙工連線和新的Web Socket伺服器來處理協議。另外,伺服器傳送的事件具有WebSocket設計上缺少的各種功能,例如自動重新連線,事件ID和傳送任意事件的功能。
因為SSE在HTTP之上工作,所以HTTP協議的改進也可以使SSE受益。例如,基於QUIC的開發中的HTTP / 3協議可以在由於缺少行頭阻塞而導致資料包丟失的情況下提供其他效能改進。
相關文章
- Apache Kafka訊息傳遞策略ApacheKafka
- Kafka -- 訊息傳送儲存流程Kafka
- 以事務方式傳送 Kafka 訊息Kafka
- 傳送kafka訊息的shell指令碼Kafka指令碼
- Kafka、RabbitMQ、RocketMQ訊息中介軟體的對比 —— 訊息傳送效能KafkaMQ
- 訊息中介軟體—RocketMQ訊息傳送MQ
- RocketMQ中Producer訊息的傳送MQ
- 阿里雲訊息佇列 Kafka-訊息檢索實踐阿里佇列Kafka
- OCX 控制元件主動傳送訊息給 MFC 視窗訊息控制元件
- 【RocketMQ】MQ訊息傳送MQ
- RocketMQ(八):訊息傳送MQ
- iOS 傳送位置訊息iOS
- 鴻蒙傳送訊息通知鴻蒙
- php ActiveMQ的傳送訊息,與處理訊息PHPMQ
- Apache Kafka分散式訊息系統ApacheKafka分散式
- 用程式碼理解 ObjC 中的傳送訊息和訊息轉發OBJ
- 用程式碼理解ObjC中的傳送訊息和訊息轉發OBJ
- RabbitMQ,RocketMQ,Kafka 事務性,訊息丟失和訊息重複傳送的處理策略MQKafka
- Apache Kafka和Spring Boot的容錯和可靠訊息傳遞 – Arnold GalovicsApacheKafkaSpring Boot
- RocketMQ(九):訊息傳送(續)MQ
- TNW-傳送模板訊息TNW
- 6-RocketMQ傳送訊息MQ
- spring boot使用Java並行流傳送kafka訊息報錯Spring BootJava並行Kafka
- (原創) odoo17中在訊息主題(mail.thread)中傳送訊息時,是否通知訊息作者進行控制OdooAIthread
- [Akka]傳送一條訊息的內部流程
- 使用spring.cloud.stream來傳送kafka訊息,並根據某欄位將訊息傳送到固定partition上SpringCloudKafka
- SpringBoot整合rabbitMq實現訊息延時傳送Spring BootMQ
- Spring Boot 整合 RabbitMQ 傳送延時訊息Spring BootMQ
- 使用 laravel-wechat-notification 傳送微信模板訊息、企業微信應用訊息Laravel
- 技術分享| 訊息佇列Kafka群集部署佇列Kafka
- 傳送不同型別的訊息型別
- RocketMQ -- 訊息傳送儲存流程MQ
- 快速向 Google Chat 傳送訊息Go
- iOS 給父類傳送訊息iOS
- 小程式傳送訂閱訊息
- KMQ:基於Apache Kafka的可靠性訊息佇列MQApacheKafka佇列
- PHP Kafka 訊息佇列使用PHPKafka佇列
- uwsgi多程式配合kafka-python訊息無法傳送KafkaPython