网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

MQ消息队列幂等性和顺序性-创新互联

如何保证消息队列的幂等性

一个数据或者一个请求,重复操作多次,得确保对应的数据是不会改变的。一条数据重复出现两次,数据库里就只有一条数据,这就保证了系统的幂等性。

创新互联公司长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为邢台县企业提供专业的网站设计制作、成都做网站邢台县网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

如何保证消息消费的幂等性

向数据库写库,先根据主键查一下,如果这数据已经有了,就别插入了,update一下。如果是写Redis,那没问题了,反正每次都是set,天然幂等性。

稍微复杂一点,比如生产者发送每条数据的时候,里面加一个全局唯一的id,类似订单id之类的东西,然后消费到了之后,先根据这个id去比Redis里查一下,之前消费过吗?如果没有消费过,就处理,然后这个id写Redis。如果消费过了,那就别处理了,保证别重复处理相同的消息即可。

比如基于数据库的唯一键来保证重复数据不会重复插入多条。因为有唯一键约束了,重复数据插入只会报错,不会导致数据库中出现脏数据。Kafka有个offset的概念,就是每个消息写进去,都有一个offset,代表消息的序号,然后 consumer 消费了数据之后,每隔一段时间(定时定期),会把自己消费过的消息的 offset提交一下,表示“我已经消费过了,下次要是重启什么的,就从上次消费到的 offset来继续消费”。

有这么个场景。数据 1/2/3 依次进入 Kafka,Kafka 会给这三条数据每条分配一个 offset,
代表这条数据的序号,我们就假设分配的 offset 依次是 152/153/154。消费者从 Kafka 
去消费的时候,也是按照这个顺序去消费。假

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻名称:MQ消息队列幂等性和顺序性-创新互联
当前链接:http://bjjierui.cn/article/cecepp.html

其他资讯