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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微信雲託管 WebSocket 實戰:基於模版實現訊息推送Web
- 基於 Hyperf 實現 RabbitMQ + WebSocket 訊息推送MQWeb
- Laravel 實現 Kafka 訊息推送與接收處理LaravelKafka
- PHP基於Redis訊息佇列實現的訊息推送的方法PHPRedis佇列
- Kafka萬億級訊息實戰Kafka
- 基於workerman實現的web訊息推送站內信功能Web
- workerman 實現訊息推送
- Knative 實戰:基於 Knative Serverless 技術實現天氣服務-下篇Server
- Flutter websocket 實現訊息推送FlutterWeb
- 基於XMPP協議(openfire伺服器)的訊息推送實現協議伺服器
- PHP與反ajax推送,實現的訊息實時推送功能PHP
- iOS 訊息推送原理及實現DemoiOS
- iOS專案開發實戰——實現蘋果本地訊息通知推送服務iOS蘋果
- Spring+Websocket實現訊息的推送SpringWeb
- 基於公共信箱的全量訊息實現
- 訊息推送平臺的實時數倉?!flink消費kafka訊息入到hiveKafkaHive
- 實時訊息推送方案-SSE
- SpringBoot 實戰 (十六) | 整合 WebSocket 基於 STOMP 協議實現廣播訊息Spring BootWeb協議
- JEESZ-kafka訊息服務平臺實現Kafka
- 訊息的即時推送——net實現、websocket實現以及socket.io實現Web
- Android 推送訊息的實現,使用百度雲推送Android
- 基於Netty實現自定義訊息通訊協議(協議設計及解析應用實戰)Netty協議
- WebSocket 實現伺服器訊息推送客戶端Web伺服器客戶端
- iOS使用觀察者模式實現推送訊息模組化iOS模式
- iOS APNS推送遠端訊息 java後臺實現iOSJava
- 基於訊息佇列(RabbitMQ)實現延遲任務佇列MQ
- 基於itchat實現微信群訊息同步機器人機器人
- WebSocket實現服務端推送訊息和聊天會話Web服務端會話
- Spring 4 + Websocket + Stomp + ActimeMQ 實現訊息推送SpringWebMQ
- 如何對Kafka 中的訊息實現優先分級?Kafka
- RabbitMQ實戰:理解訊息通訊MQ
- 基於Canal+Kafka實現快取實時更新Kafka快取
- 基於APNs最新HTTP/2介面實現iOS的高效能訊息推送(服務端篇)HTTPiOS服務端
- 用 Laravel 自帶訊息模組搭建小程式實時推送訊息Laravel
- 阿里雲訊息佇列 Kafka-訊息檢索實踐阿里佇列Kafka
- DDD實戰分享-訊息中心
- 使用 Laravel 廣播事件實現基於 Socket.io 的實時訊息通知Laravel事件
- java實現 微信公眾號推送訊息 ,cv 就可執行!!!Java