Knative 實戰:基於 Kafka 實現訊息推送
導讀:當前在 Knative 中已經提供了對 Kafka 事件源的支援,那麼如何基於 Kafka 實現訊息推送呢?本文作者將以阿里雲 Kafka 產品為例,給大家解鎖這一新的姿勢。
作者 | 元毅 阿里雲智慧事業群高階開發工程師
背景
在阿里雲上建立 Kafka 例項
建立 Kafka 例項
部署例項並繫結 VPC
建立 Topic 和 Consumer Group
建立 Topic
, 這裡我們建立名稱為 demo 的 topic:建立 Consumer Group
, 這裡我們建立名稱為 demo-consumer 的消費組:部署 Kafka 資料來源
部署 Kafka addon 元件
建立 KafkaSource 例項
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: event-display
spec:
template:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/eventing-sources-cmd-event_display:bf45b3eb1e7fc4cb63d6a5a6416cf696295484a7662e0cf9ccdf5c080542c21d
接下來建立 KafkaSource:
apiVersion: sources.eventing.knative.dev/v1alpha1
kind: KafkaSource
metadata:
name: alikafka-source
spec:
consumerGroup: demo-consumer
# Broker URL. Replace this with the URLs for your kafka cluster,
# which is in the format of my-cluster-kafka-bootstrap.my-kafka-namespace:9092.
bootstrapServers: 192.168.0.6x:9092,192.168.0.7x:9092,192.168.0.8x:9092
topics: demo
sink:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
name: event-display
bootstrapServers: Kafka VPC 訪問地址 consumerGroup: 設定消費組 topics:設定 Topic
[root@iZ2zeae8wzyq0ypgjowzq2Z ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
alikafka-source-k22vz-db44cc7f8-879pj 1/1 Running 0 8h
驗證
[root@iZ2zeae8wzyq0ypgjowzq2Z ~]# kubectl logs event-display-zl6m5-deployment-6bf9596b4f-8psx4 user-container
☁️ CloudEvent: valid ✅
Context Attributes,
SpecVersion: 0.2
Type: dev.knative.kafka.event
Source: /apis/v1/namespaces/default/kafkasources/alikafka-source#demo
ID: partition:7/offset:1
Time: 2019-10-18T08:50:32.492Z
ContentType: application/json
Extensions:
key: demo
Transport Context,
URI: /
Host: event-display.default.svc.cluster.local
Method: POST
Data,
{
"key": "test"
}
小結
這樣我們利用 Knative 得以把雲原生的能力充分釋放出來,帶給我們更多的想象空間。歡迎對 Knative 感興趣的一起交流。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555606/viewspace-2661501/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於 Hyperf 實現 RabbitMQ + WebSocket 訊息推送MQWeb
- 微信雲託管 WebSocket 實戰:基於模版實現訊息推送Web
- Laravel 實現 Kafka 訊息推送與接收處理LaravelKafka
- PHP基於Redis訊息佇列實現的訊息推送的方法PHPRedis佇列
- Knative 實戰:基於 Knative Serverless 技術實現天氣服務-下篇Server
- workerman 實現訊息推送
- Kafka萬億級訊息實戰Kafka
- 基於workerman實現的web訊息推送站內信功能Web
- Flutter websocket 實現訊息推送FlutterWeb
- PHP與反ajax推送,實現的訊息實時推送功能PHP
- SpringBoot 實戰 (十六) | 整合 WebSocket 基於 STOMP 協議實現廣播訊息Spring BootWeb協議
- 實時訊息推送整理
- 訊息推送平臺的實時數倉?!flink消費kafka訊息入到hiveKafkaHive
- 基於公共信箱的全量訊息實現
- 實時訊息推送方案-SSE
- 訊息的即時推送——net實現、websocket實現以及socket.io實現Web
- 7種 實現web實時訊息推送的方案,7種!Web
- 基於Netty實現自定義訊息通訊協議(協議設計及解析應用實戰)Netty協議
- WebSocket 實現伺服器訊息推送客戶端Web伺服器客戶端
- 基於訊息佇列(RabbitMQ)實現延遲任務佇列MQ
- 基於Canal+Kafka實現快取實時更新Kafka快取
- App如何利用推送訊息有效實現拉新促活?APP
- python 實現公眾號模板訊息推送(親測有效)Python
- WebSocket實現服務端推送訊息和聊天會話Web服務端會話
- 造輪子之訊息實時推送
- 小程式訂閱訊息推送(含原始碼)java實現小程式推送,springboo原始碼JavaSpring
- 基於APNs最新HTTP/2介面實現iOS的高效能訊息推送(服務端篇)HTTPiOS服務端
- 如何對Kafka 中的訊息實現優先分級?Kafka
- 阿里雲訊息佇列 Kafka-訊息檢索實踐阿里佇列Kafka
- 雲原生最佳實踐系列 5:基於函式計算 FC 實現阿里雲 Kafka 訊息內容控制 MongoDB DML 操作函式阿里KafkaMongoDB
- 一個簡單API,一鍵實現多通道訊息推送API
- 在spring boot中訊息推送系統設計與實現Spring Boot
- iOS使用觀察者模式實現推送訊息模組化iOS模式
- workerman做實時訊息推送,用過沒?
- RabbitMQ實戰:理解訊息通訊MQ
- 基於long pull實現簡易的訊息系統參考
- DDD實戰分享-訊息中心
- Strimzi Kafka Bridge(橋接)實戰之二:生產和傳送訊息Kafka橋接