为什么要用kafka(新手向,含业务场景)

  前两天和一个哥们讨论了一下kafka的性能问题,感觉现在要想干实时项目,还得把kafka捡起来好好学一遍,今天就简单来说一说自己对于kafka的一点了解,也是让自己再重新复习一遍,希望能对各位有所帮助

  kafka在业务场景中最重要的功能其实主要就是两个方面:削峰和异步通讯,当然什么解耦呀,减少冗余啊,业务代码的健壮性啊,也是有的,可是生产环境中,主要看的还是削峰和异步通讯这两个方面的功能

一、削峰

  先来说一说削峰,削峰的应用场景主要是上游数据某些时候有突发大流量数据,比如电商系统的双十一双十二这种情况,这个时候下游可能扛不住,或者下游没有足够多的机器来保证冗余,这个时候,kafka就可以在中间起到一个缓冲的作用,它可以把消息暂存在kafka中,下游服务就可以按照自己订单节奏进行慢慢处理,这就是所谓的消息中间件,顾名思义嘛

二、异步

   说到异步通讯,这里举个简单例子,很多时候,用户不想也不需要立刻处理消息,消息队列就提供了异步处理机制,允许用户把一个消息放入队列,但是并不立即处理,等啥时候需要了再去处理这些消息,这样可以极大程度的缓解性能问题,放到电商的具体下单业务场景中,就是用户从下单到付款这个过程,中间可能会有满减优惠,抵用券折扣,积分累计,金币抵用等等等好多个系统,但是一个请求每经过一个系统都会花费一定的时间(即延长了整个流程的时长),但是实际上用户等不了所有流程都结束才能完成订单,为了加快订单完成的时间,所以可以直接跳过那些流程,直接完成订单,但是直接完成订单并不是就不管那些流程到底完不完成,那些流程也会同时处理,只是相当于多线程完成一样

三、补充

  其实在kafka异步通讯过程中,很有可能会出现数据一致性的问题,这个其实是分布式服务本身就存在的一个问题,实际场景中所有的系统流程都成功才能算这一次下单是成功的,所以很多时候需要用到分布式事务,其实就是把下单,优惠券,积分累计,都放在一个事务里面一样,要成功一起成功,要失败一起失败

以上就是工作场景中为啥要用kafka了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值