问题场景:当用户量增大的时候,系统内的消息推送(比如系统内短信推送,微信,钉钉,极光个推推送)将是我们常见业务场景。当系统中的用户量逐渐增大时候,群发用户消息的推送也将成为系统中致命的性能瓶颈。消息推送缓冲队列模型 意义:构建大批量消息推送队列,来解决大批量数据通过拉长时间队列模式来换取性
9月27日消息,腾讯微信团队在官微发布消息称,9月26日上线的微信iOS8.0.14版本,推出了群聊折叠功能。官方介绍,用户可通过消息免打扰下的“折叠该群聊”,选择将一些群聊在聊天列表中折叠,这些被折叠的群会被固定在聊天列表的固定位置,不会被新消息时刻顶起来。此外,还可以在“免打扰”的群中关注最多4
说到签名,从这个词来理解,正常个人需要签名的时候,一般是用来证明这是某个人的特属认证。大家是否有印象?还记得我们之前在学习、总结网络相关知识的时候,说到过,客户端和服务端虽然通信数据上,可以采用对称加密和非对称加密组合去进行数据的加密,但是这时还有一个问题,就是双方身份的验证如何解决?这时公共密钥证
历史原因,公司存在多个MQ同时使用的问题,我们中间件团队在去年下半年开始支持对Kafka和Rabbit能力的进行封装,初步能够完全支撑业务团队使用。鉴于在之前已经基本完全实施Kafka管控平台、以及Kafka集群迁移管控,我们基本可以认为团队对于Kafka的把控能力初具规模。因此,考虑到以下几点原因
一、前情提示上篇文章:《选Redis做MQ的人,是脑子里缺根弦儿吗?》,我们分析了RabbitMQ开启手动ack机制保证消费端数据不丢失的时候,prefetch机制对消费者的吞吐量以及内存消耗的影响。通过分析,我们知道了prefetch过大容易导致内存溢出,prefetch过小又会导致消费
Hello各位小伙伴,松哥今天要和大家聊一个有意思的话题,就是使用SpringBoot开发微信公众号后台。很多小伙伴可能注意到松哥的微信公众号后台有一个回复关键字如 666 或者 888 可以获取学习资料的功能,这是松哥基于SpringBoot写的一个简单后
为什么要使用消息队列,六个字总结:解耦、异步、消峰。1)解耦传统模式下系统间的耦合性太强。怎么说呢,举个例子:系统A通过接口调用发送数据到B、C、D三个系统,如果将来E系统接入或者B系统不需要接入了,那么系统A还需要修改代码,非常麻烦。如果系统A产生了一条比较关键的数据,那么它就要时时刻刻考虑B、C
Rocketmq和kafka这两个消息队列大家应该都比较熟悉吧,哪怕不是很熟悉,应该也听说过的吧,你别告诉我,作为一个资深的程序员,你没听过这两门技术。我之前使用这两个消息队列的时候就遇到一个很奇怪的问题,就是在kafka里面弄了比较多的topic,性能下降的速度贼快,不知道大家遇到过没,而同样的
无意中在网上看到这么一个问题,一个consumer订阅两个topic,其中一个topic消息过多堆积了,会影响另一个topic消费吗?对于RocketMQ这种,看源码如何方便,于是乎我就开始找相应的源码,然后一顿思考。先给大家上结论,看堵塞的原因,如果原因是生产者瞬时产生大量的消息,比如秒杀,导致
1.背景引入 这篇文章,我们来聊一下消息中间件高可用架构的一些原理。对于一个合格的高级Java工程师而言,你肯定会碰到在系统里用到MQ(消息队列)的场景。那么这个时候你需要基于你的业务场景和需求,考虑在使用MQ的时候可能遇到的一些技术问题。接着,你必须得针对这些技术问题设计一套完整的技术方
很多业务都需要考虑消息投递的顺序性:单聊消息投递,保证发送方发送顺序与接收方展现顺序一致;群聊消息投递,保证所有接收方展现顺序一致;充值支付消息,保证同一个用户发起的请求在服务端执行序列一致;消息顺序性是分布式系统架构设计中非常难的问题,有什么常见优化实践呢?折衷一:以客户端或者服务端的时序为准不
kafka多牛啊,老少通吃,风光无限,从业务服务到大数据,无所不能。但,即使它这么牛x,在不少项目中,依然能看到很多的替代品,比如RabbitMQ、RocketMQ、Pulsar等。等等,先不说这些同质的竞争品。在我见到的很多项目里,经常有一只乱入的消息队列,那就是Redis。还别说,使用还挺广泛的
有位工作五年的小伙伴在面试的时候被问到RocketMQ的分布式事务实现原理。他说他只知道RocketMQ能够支持事务,但是没有了解过它的事务实现原理。今天,我给大家分享一下我对这个问题的理解。1.分布式事务应用场景随着应用的拆分,从单体架构变成分布式架构,那么每个服务或者模块也会有自己的数据库。一
现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能。这里整理了一下几种方案,并简单做了实现。什么是消息推送(push)推送的场景比较多,比如有人关注我的公众号,这时我就会收到一条推送消息,以此来吸引我点击打开应用。消息推送(push)通常是指网站的运营工作等人员,通过
在《在《SpringCloudAlibaba实战》专栏前面的文章中,我们实现了用户微服务、商品微服务和订单微服务之间的远程调用,并且实现了服务调用的负载均衡。也基于阿里开源的Sentinel实现了服务的限流与容错,并详细介绍了Sentinel的核心技术与配置规则。简单介绍了服务网关,并对S
在阅读本文之前,希望你可以思考一下下面几个问题,带着问题去阅读文章会获得更好的效果。发送消息的时候,当Broker挂掉了,消息体还能写入到消息缓存中吗?当消息还存储在缓存中的时候,假如Producer客户端挂掉了,消息是不是就丢失了?当最新的ProducerBatch还有空余的内存,但是接下来的一条
环境:Springboot2.3.12.RELEASE+SpringCloudHoxton.SR12+RabbitMQ3.8.12简介SpringCloudStream是一个框架,用于构建与MQ连接的高度可伸缩的事件驱动微服务。其目的是为了简化消息在SpringCloud应用程序中的开发。屏蔽了各种
冯诺伊曼体系中,CPU和内存居于核心的地位。内存就像一个个的小格子,其中保存着程序要读写的值。当只有一个线程来访问内存的时候,事情非常简单:但是,当出现多线程的时候,就可能会出现互相覆盖的危险:在多线程并发执行的情况下,为了得到正确的结果,必须要加锁。看起来加锁是一件轻松的事情,但实际上并非如此,让
【51CTO.com原创稿件】本文主要讲解Kafka是什么、Kafka的架构包括工作流程和存储机制,以及生产者和消费者。图片来自Pexels最终大家会掌握Kafka中最重要的概念,分别是Broker、Producer、Consumer、ConsumerGroup、Topic、Partition、Re
世界已经迈进"移动"时代,现在应用程序必须能够实时提供数据,这不仅包括数据库表中存储的重要最终结果,还包括用户使用应用程序时执行的所有操作。任何可用信息,例如,用户点击量、日志数据或传感器数据都可用于改善用户体验、生成报告、向机器学习系统提供数据,等等。现如今,开发者必须关注基于实时事件流的系统。下