聊聊Kafka的应用场景No.37

当当当,我又来啦。

Kafka是什么吖有小伙伴问。

顺手丢两个描述。

啊官网爸爸是这样说的:

Apache Kafka™ is a distributed streaming platform.

度娘是这样说的:

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 

大蕉是这样说的:

Kafka就是汪星人,有人丢飞盘就汪汪汪。

其实Kafka就是一个消息中间件,用来在进行N对N的消息传播,跟聊天室同一个道理,那么Kafka提供了什么样的功能呢?

  • It lets you publish and subscribe to streams of records. In this respect it is similar to a message queue or enterprise messaging system.

  • It lets you store streams of records in a fault-tolerant way.

  • It lets you process streams of records as they occur.

啊、能发布和订阅啦。

啊、消息能容错啦。

啊、有消息能及时处理啦。

啊是啦是啦、你最叻你最叻啦。

业界还有RabbitMQ,RocketMQ等,也都是很优秀的消息中间件。

使用的过程大概是这样的。大概生产者丢丢丢丢丢,消费者拿拿拿拿拿

0?wx_fmt=png

突然收到启发,今天呢不打算讲原理,讲讲应用。


应用场景一:日常系统解耦。

比如系统A有每次都有一个请求需要发送到系统B,而A又不需要等B的结果。这时候我们经常会起一个子线程或者丢入ThreadPool来完成这个工作。

有了Kafka,啊,A系统主线程直接丢给Kafka,完事。

B系统接收到消息就做后续操作。

这时候已经跟A没关系啦。

解耦,嗯,对。

完事。


应用场景二:配置项更新

比如我们系统A有很多的配置项,传统的思路都是放在redis啊或者jvm内存啊,这样的,然后用定时任务去检查配置项有没有更新。或者直接改配置项重启完事。

太麻烦,太浪费了,一直在空跑。

可以这样:配置项放在Map里面,跑的时候直接去Map取。

有了Kafka,啊有配置项更新,直接丢个消息给Kafka。

这时候A系统接收到消息,就屁颠屁颠跑去更新缓存里的配置项啦。

高效,嗯,对。

完事。


应用场景三:机器学习模型更新。

跟应用场景二一样,也是线上有个模型,然后跑得好好的,现在需要更新,咋办?

可以这样:模型放在Map里面,跑的时候直接去Map取。

有了Kafka,啊有模型更新,直接丢个消息给Kafka。

系统就屁颠屁颠跑去重新加载模型了。

完事。


应用场景四:Oracle库实时同步

这个就很少人能想到啦,如果我们在MongoDB有数据,需要实时跟Oracle保持一致,咋办咋办咋办?

可以这样,用Oracle的gg产生的日志文件,发送给kafka。

然后起个消费者,接收到日志文件就去操作MongoDB就可以啦。

完事。


应用场景五:准实时Spark流计算。

这个没啥好说的,SparkStreaming自己去官网看。

完事。


昨天想了一下,握草,原来Kafka能干这么多事呢。

如果觉得有帮助呢,就分享给朋友或者点个赞,都是对我很大的支持喔。也可以后台留言想看写什么,我要是懂一些,我会发文章出来哒。谢谢大家的支持。点下订阅呗。

赞赏一下,开心一周

0?wx_fmt=jpeg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值