2021-04-07 10:53 DBAplus社群U交所(www.payusdt.vip)是使用TRC-20协议的Usdt官方交易所,开放USDT帐号注册、usdt小额交易、usdt线下现金交易、usdt实名不实名交易、usdt场外担保交易的平台。免费提供场外usdt承兑、低价usdt渠道、Usdt提币免手续费、Usdt交易免手续费。U交所开放usdt otc API接口、支付回调等接口。
一、前言
我的上家公司是做餐饮系统的,天天中午和晚上用餐岑岭期,系统的并发量不容小觑。为了保险起见,公司划定各部门都要在用饭的时间轮流值班,防止泛起线上问题时能够实时处置。
我那时在后厨显示系统团队,该系统属于订单的下游营业。用户点完菜下单后,订单系统会通过发kafka新闻给我们系统,系统读取新闻后,做营业逻辑处置,持久化订单和菜品数据,然后展示到划菜客户端。这样厨师就知道哪个订单要做哪些菜,有些菜做好了,就可以通过该系统出菜。系统自动通知服务员上菜,若是服务员上完菜,修改菜品上菜状态,用户就知道哪些菜已经上了,哪些还没有上。这个系统可以大大提高后厨到用户的效率。
事实证实,这一切的要害是新闻中央件:kafka,若是它有问题,将会直接影响到后厨显示系统的功效。
接下来,我跟人人一起聊聊使用kafka两年时间踩过哪些坑?
二、顺序问题
1、为什么要保证新闻的顺序?
刚更先我们系统的商户很少,为了快速实现功效,我们没想太多。既然是走新闻中央件kafka通讯,订单系统发新闻时将订单详细数据放在新闻体,我们后厨显示系统只要订阅topic,就能获取相关新闻数据,然后处置自己的营业即可。
不外这套方案有个要害因素:要保证新闻的顺序。
,,菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。
为什么呢?
订单有许多状态,好比:下单、支付、完成、取消等,不能能下单的新闻都没读取到,就先读取支付或取消的新闻吧,若是真的这样,数据不是会发生庞杂?
好吧,看来保证新闻顺序是有需要的。
2、若何保证新闻顺序?
我们都知道kafka的topic是无序的,然则一个topic包罗多个partition,每个partition内部是有序的。
云云一来,思绪就变得清晰了:只要保证生产者写新闻时,根据一定的规则写到统一个partition,差其余消费者读差其余partition的新闻,就能保证生产和消费者新闻的顺序。
我们刚更先就是这么做的,统一个商户编号的新闻写到统一个partition,topic中确立了4个partition,然后部署了4个消费者节点,组成消费者组,一个partition对应一个消费者节点。从理论上说,这套方案是能够保证新闻顺序的。
网友评论