RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 RabbitMQ 主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这 ...
分类:
编程语言 时间:
2020-11-02 10:38:47
阅读次数:
33
引言所谓的消费语义,指的就是如下三种情况如何保证消息最多消费一次如何保证消息至少消费一次如何保证消息恰好消费一次其实类似还有一个投递语义如何保证消息最多投递一次如何保证消息至少投递一次如何保证消息恰好投递一次说句实在话,其实还是老问题,只是换了一种问法!OK,开始我们的正文正文我们先做如下约定Producer代表生产者Consumer代表消费者MessageQueue代表消息队列投递语义我们先从投
分类:
其他好文 时间:
2020-11-01 21:04:16
阅读次数:
14
什么鬼,面试官竟然让我用Redis实现一个消息队列!!?△Hollis,一个对Coding有着独特追求的人△这是Hollis的第241篇原创分享作者l小胖儿来源lHollis(ID:hollischuang)众所周知,redis是一个高性能的分布式key-value存储系统,在NoSQL数据库市场上,redis自己就占据了将近半壁江山,足以见到其强大之处。同时,由于redis的单线程特性,我们可以
分类:
其他好文 时间:
2020-11-01 09:25:05
阅读次数:
15
1.背景本文是上周去技术沙龙听了一下爱奇艺的Java缓存之路有感写出来的。先简单介绍一下爱奇艺的java缓存道路的发展吧。可以看见图中分为几个阶段:第一阶段:数据同步加redis通过消息队列进行数据同步至redis,然后Java应用直接去取缓存这个阶段优点是:由于是使用的分布式缓存,所以数据更新快。缺点也比较明显:依赖Redis的稳定性,一旦redis挂了,整个缓存系统不可用,造成缓存雪崩,所有请
分类:
其他好文 时间:
2020-10-30 11:40:15
阅读次数:
14
这是一篇从去年写到今年的文章,希望大家会喜欢1.背景分布式事务一直是一个老生常谈的一个话题,在我的公众号下面下面已经写过很多篇分布式事务相关的文章了,但是依旧没有将其完全剖析。在之前的文章中我也多次提到我们可以使用消息队列来实现我们的分布式事务,但是大多都是一笔带过,很多读者都对这一块产生了很多疑问,希望读完这篇文章能让你理解如何用消息队列实现分布式事务。当然首先要回顾一下我们的一些基本概念:CA
分类:
其他好文 时间:
2020-10-29 10:02:05
阅读次数:
15
1.背景上篇文章介绍了RocketMQ整体架构和原理有兴趣的可以阅读一下,在这篇文章中的延时消息部分,我写道开源版的RocketMQ只提供了18个层级的消息队列延时,这个功能在开源版中显得特别鸡肋,但是在阿里云中的RocketMQ却提供了支持40天之内任意秒级延时队列,果然有些功能你只能充钱才能拥有。当然你或许想换一个开源的消息队列,在开源社区中消息队列延时消息很多都没有被支持比如:RabbitM
分类:
其他好文 时间:
2020-10-29 10:01:24
阅读次数:
17
背景本篇文章主要分享压测的(高并发)时候发现的一些问题。之前的两篇文章已经讲述了在高并发的情况下,消息队列和数据库连接池的一些总结和优化,有兴趣的可以在我的公众号中去翻阅。废话不多说,进入正题。事务,想必各位CRUD之王对其并不陌生,基本上有多个写请求的都需要使用事务,而Spring对于事务的使用又特别的简单,只需要一个@Transactional注解即可,如下面的例子:@Transactiona
分类:
编程语言 时间:
2020-10-29 09:59:52
阅读次数:
83
背景本篇文章主要分享压测的(高并发)时候发现的一些问题。之前的两篇文章已经讲述了在高并发的情况下,消息队列和数据库连接池的一些总结和优化,有兴趣的可以在我的公众号中去翻阅。废话不多说,进入正题。事务,想必各位CRUD之王对其并不陌生,基本上有多个写请求的都需要使用事务,而Spring对于事务的使用又特别的简单,只需要一个@Transactional注解即可,如下面的例子:@Transactiona
分类:
编程语言 时间:
2020-10-29 09:59:40
阅读次数:
20
背景今天在脉脉上面看到了一个帖子,比较有意思:这个帖子的意思是:在使用Kafka的时候,我们已经设置了多个分区,如何去提升消费能力?如果使用线程池的方式去提升如何保证重启时消息不丢。这个题其实问了两个点,第一个是如何提升消费能力,第二个是如果选择线程池,我们如何做到消息不丢。这里先解释一下这两个问题到底是怎么回事,在很多消息队列中都有一个概念叫partion,代表着分区,分区是我们提高消息队列消费
分类:
编程语言 时间:
2020-10-29 09:42:12
阅读次数:
19
高并发场景下的限流策略在高并发的场景下,我们的优化和保护系统的方式通常有:多级缓存、资源隔离、熔断降级、限流等等。今天我们来聊聊限流。为什么需要限流举个比较简单的例子,正常来说,一个员工A他每天能够处理的工作是10个,突然某一天来了100个工作量,这时候,如果员工A还处理100个,只有一种可能,这个员工被压垮。如果我们能预先知道会有100个任务会来,我们通过增加员工数或定义消息队列等等来临时解决。
分类:
其他好文 时间:
2020-10-29 09:24:41
阅读次数:
18