kafka python客户端连接风暴_flink实用demo——kafka数据转换

前言之前初步跑了flink官网的词频统计的demo。太初级了,不实用,只是带我进行了以便flink的基本操作。总计下来,我还需要试验这些操作:从kafka读取数据作为数据输入根据计算输出到另一个kafka主题中将后面kafka主题中的内容存储到数据库。根据这个目的,我设计了这次的demo设计计算场景设计我的实际的主干场景是有一个上报数据的无限流,然后根据配置以及数据的内容,将数据转换为业务粒度的数...
摘要由CSDN通过智能技术生成

前言

之前初步跑了flink官网的词频统计的demo。太初级了,不实用,只是带我进行了以便flink的基本操作。总计下来,我还需要试验这些操作:

从kafka读取数据作为数据输入

根据计算输出到另一个kafka主题中

将后面kafka主题中的内容存储到数据库。

根据这个目的,我设计了这次的demo

设计

计算场景设计

我的实际的主干场景是有一个上报数据的无限流,然后根据配置以及数据的内容,将数据转换为业务粒度的数据投入到后续的数据队列中。在这里,转换前和转换后的数据都是需要进行原样保存的。

这里有一些需要被测试实现的点:

从kafka的指定topic中读取数据流,topic名称:data-upload-stream

将数据进行计算后投入到新的流中,两个流的转换并不是一对一的。topic名称:transformed-data-stream

根据可以动态变更的配置进行计算

将数据存储到postgre中

如果可以,使用现成的connector或者自定义connector

实现步骤

由于这里存在不少没用过的东西,无论技术是否测试成功,相应的问题还是要解决的。所以,我们从最小的陌生技术集合开始引入,我们分这么几个测试步骤。

数据拉取和投递

该过程,主要测试核心的从kafka拉取数据,并向kafka投递数据。

数据发送模拟由一个springmvc项目进行模拟,调用一次接口发送一次数据,以此可控得模拟数据发送

从kafka中拉取数据,进行转换后(这里转换规则先写为固定的)投递到另一个主题中

持久化数据

分别从刚才两个主题中拉取数据,并持久化到postgre数据库中。虽然之后最终的持久化容器计划是hbase,但是这里先对postgre进行测试,等本次例子全部完成后再规划对hbase的相关探索。

动态调整配置

这里数据转换的规则是根据配置进行改变的,故这里的配置需要可以动态改变的。根据了解,这里是根据其支持的Broadcast State功能进行支持的。

实现

数据源投递端

这里因为需要和计算端共享数据结构和逻辑,我这里设计了两个项目:

flink.common:公共项目,用来共享代码逻辑

flink-mockdata:数据模拟项目,仅实现/mock/push接口

关于kafka的java操作这里就不细述了,因为最近系统性得学习了下kafka的使用关于kafka从调用到运维的细节还需要重新梳理一遍,这里就先完成功能了。

另外,需要创建两个主题,kafka操作命令如下:

bin/kafka-topics.sh --zookeeper 192.168.137.11:2181 --create --topic data-upload-stream --partitions 1 --replication-factor 1

bin/kafka-topics.sh --zookeeper 192.168.137.11:2181 --create --topic transformed-data-stream --partitions 1 --replication-factor 1

需要说明的有这么两点:

我使用的是kafka2.1版本,对于低于2.2版本的kafka在创建topic的时候需要指明的参数是zookeeper的地址,而大于等于2.2版本的则需要使用--bootstrap-server指明broker的地址

在创建kafka的topic的时候如果使用下划线(_)或者点号(.)作连接符的话则会弹出一个警告信息,即这两个符号相冲突,不可以同时使用。所以这里用减号作连接符。

代码投递完,使用如下命令在服务端消费并查看相关的消息:

bin/kafka-console-c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值