前言
当前在互联网上的言论众多,如何对用户的言论进行实时监控和报警呢?并且,对于监控的敏感词经常要进行变更,如何实现动态更新呢?下面,笔者就带领大家进入实战环节。
用户数据写入
假设从 kafka 接收的消息格式如下:
{
"userId": 10010,
"content": "我爱你中国",
"createTime": "2020-01-01 12:00:00"
}
由于用户发表的言论众多,有可能需要对用户触发敏感词的言论次数做监控,所以我们对消息根据 userId 做分组
FlinkKafkaConsumer consumer = new FlinkKafkaConsumer(kafkaProps.getProperty("kafka.user.opinion.topic"), new SimpleStringSchema(), properties);
DataStreamSource<String> transaction = env.addSource(consumer);
KeyedStream<UserOpinionData, Tuple> sourceStream = transaction.map(s -> UserOpinionData.buildUserOpinionData(s))
……
.uid("user-opition-source")
.keyBy("userId");
敏感词更新写入
我们将需要监控的敏感词存放在 mysql,当启动任务时,从 mysql 加载敏感词,而当需要更新敏感词时,则更新数据库保存的敏感词信息。要实现敏感词的动态更新,需要使用广播,再监听一个 rabbitmq,

本文介绍如何使用 Flink 对互联网用户言论进行实时监控,包括动态更新敏感词、匹配算法及告警通知策略。
最低0.47元/天 解锁文章
5038

被折叠的 条评论
为什么被折叠?



