在 Knative 中已经提供了对 Kafka 事件源的支持,那么如何在阿里云上基于 Kafka 实现消息推送,本文给大家解锁这一新的姿势。

背景

消息队列 for Apache Kafka 是阿里云提供的分布式、高吞吐、可扩展的消息队列服务。消息队列 for Apache Kafka 广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分。
另外 Knative 中提供了KafkaSource事件源的支持,通过这个事件源可以方便的对接 Kafka 消息服务。

在阿里云上创建 Kafka 实例

创建 Kafka 实例

登录消息队列Kafka控制台, 选择【购买实例】。由于当前Knative中Kafka事件源支持2.0.0及以上版本,在阿里云上创建 Kafka 实例需要选择包年包月、专业版本进行购买,购买之后升级到 2.0.0 即可。

部署实例并绑定 VPC

购买完成之后,进行部署,部署时设置 Knative 集群所在的 VPC 即可:

创建 Topic 和 Consumer Group

接下来我们创建 Topic 和消费组。
进入【Topic 管理】,点击创建Topic, 这里我们创建名称为demo的topic:

进入【Consumer Group 管理】,点击创建 Consumer Group, 这里我们创建名称为demo-consumer的消费组:

部署 Kafka 数据源

部署 Kafka addon 组件

登录容器服务控制台,进入【Knative 组件管理】,部署 Kafka addon 组件。

创建 KafkaSource 实例

首先创建用于接收事件的服务 event-display:

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:9092topics: demosink:apiVersion: serving.knative.dev/v1alpha1kind: Servicename: 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

验证

在Kafka 控制台,选择 topic 发送消息,注意这里的消息格式必须是 json:

我们可以看到已经接收到了发送过来的 Kafka 消息:

[root@iZ2zeae8wzyq0ypgjowzq2Z ~]# kubectl logs event-display-zl6m5-deployment-6bf9596b4f-8psx4 user-container️  CloudEvent: valid
Context Attributes,SpecVersion: 0.2Type: dev.knative.kafka.eventSource: /apis/v1/namespaces/default/kafkasources/alikafka-source#demoID: partition:7/offset:1Time: 2019-10-18T08:50:32.492ZContentType: application/jsonExtensions: key: demo
Transport Context,URI: /Host: event-display.default.svc.cluster.localMethod: POST
Data,{"key": "test"}

原文链接
本文为云栖社区原创内容,未经允许不得转载。

Knative 实战:基于阿里云 Kafka 实现消息推送相关推荐

  1. Knative 实战:基于 Kafka 实现消息推送

    作者 | 元毅 阿里云智能事业群高级开发工程师 导读:当前在 Knative 中已经提供了对 Kafka 事件源的支持,那么如何基于 Kafka 实现消息推送呢?本文作者将以阿里云 Kafka 产品为 ...

  2. java中使用阿里云实现短信推送

    1.注入依赖 <!-- 阿里云实现短信推送 --><dependency><groupId>com.aliyun</groupId><artifa ...

  3. 基于websocket的网页实时消息推送与在线聊天(上篇)

    文章目录 @[toc] 基于websocket的网页实时消息推送与在线聊天(上篇) "使用dwebsocket在django中实现websocket" websocket原理图 d ...

  4. 小程序云开发之消息推送功能

    小程序云开发之消息推送功能(图文) 一:新建项目 APPID获取方法:1.在微信公众平台上注册账号,选择小程序(也可以从服务号注册,前提你有一个服务号)注册后登录,登录时微信扫码验证一下 2.填写小程 ...

  5. python 阿里云短信群发推送

    python 阿里云短信群发推送 本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信 ...

  6. 前端基于uniapp[uniPush]实现APP消息推送(安卓、IOS)

    前提概述:此文章都是基于uniapp中uniPush2实现的在线.离线推送 app消息推送流程 登录开发者中心先填写好项目信息以及配置厂商 在manifest.json文件中勾选推送模块 打包自定义基 ...

  7. 基于Pushlet实现的网站消息推送

    上一篇文章我们介绍了几种实现消息推送的方案,今天我们主要用pushlet开源框架来实现消息的推送~~~并贡献出我的一个完整小程序~~~ Pushlet是一种comet实现:在Servlet机制下,数据 ...

  8. java中阿里云实现短信推送(亲测可用)

    第一步先导入阿里云jar包 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-ja ...

  9. 移动推送--阿里云appKey分端推送问题

    阿里云移动推送时,区分了安卓端和IOS端推送.因为在新建引用时,就区分了安卓应用和IOS应用,并且分别生成了2个不同的appKey. 经过本人亲身接入经验,阿里目前没有一个统一的appKey来自动关联 ...

最新文章

  1. Windows服务器SYSTEM权限Webshell无法添加3389账户情况突破总结
  2. javaweb开发3.基于Servlet+JSP+JavaBean开发模式的用户登录注册
  3. Android中Uri的使用
  4. 使用 Boost.Multiprecision 来实现高精度高斯-拉盖尔正交积分
  5. 【更新】ReSharper v2016.3发布,Visual Studio 2017 RC初步支持
  6. java 生产者消费者 demo_生产者与消费者--demo1---bai
  7. java生成大素数_用BigInteger实现大素数生成算法
  8. 基于Myeclipse的三大框架(SSH)整合
  9. 计算机cnc编程入门,数控车床编程入门自学方法与步骤,内容详细,值得一看!...
  10. 常用数据下载网站汇总
  11. 中|元宇宙龙头股歌尔自废,资本为何还在追捧
  12. 全球及中国石油天然气开采行业产量情况及十四五开发战略规划报告2021年版
  13. 【数据结构】平行四边形数量
  14. 云知声完成C轮系列融资13亿 多支国家背景基金参与
  15. 1.3 可移植性和标准
  16. docker安装踩坑
  17. 什么是kvo和lvc
  18. 可编程并行通信接口8255A
  19. 牛客 数据库SQL实战 获取员工其当前的薪水比其manager当前薪水还高的相关信息
  20. 网易云动态小视频下载方法

热门文章

  1. linux桌面使用网卡设置,Linux的KDE桌面下怎样设置网络连接?
  2. jenkins 插件目录_10 个 Jenkins 实战经验,助你轻松上手持续集成
  3. 【学习笔记】第二章——进程同步、进程互斥、进程互斥的硬件/软件实现方法
  4. php 类常量用法,php类常量用法实例分析
  5. mysql57win10安装配置_Win10 OS安装(配置)MySQL 5.7(解压版)
  6. 蓝牙版本avrcp怎么选_500元内无线蓝牙耳机测评年轻人的第一款廉价蓝牙耳机怎么选?...
  7. java.policy无法修改_如何配置Policy文件进行Java安全策略的设置
  8. cookie记录了服务器相关的信息,使用cookie记录信息(精选).ppt
  9. 函数传参string_C/C++的三种函数传值方式及其区别
  10. 突发,这个国家进入紧急状态!数十年来最严重经济危机、每天停电13小时!外交部发出提醒...