1.概述在很久之前写过一篇Kafka相关的文章,你需要知道的Kafka,那个时候在业务上更多的是使用的是Kafka,而现在换了公司之后,更多的使用的是Rocketmq,本篇文章会尽力全面的介绍RocketMQ和Kafka各个关键点的比较,希望大家读完能有所收获。RocketMQ前身叫做MetaQ,在MeataQ发布3.0版本的时候改名为RocketMQ,其本质上的设计思路和Kafka类似,但是和K
分类:
其他好文 时间:
2020-10-29 10:00:27
阅读次数:
22
一、为什么会有分布式锁? 在多线程环境下,由于上下文的切换,数据可能出现不一致的情况或者数据被污染,我们需要保证数据安全,所以想到了加锁。 所谓的加锁机制呢,就是当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。 我们为了减少DB的压力,把库存预热到 ...
分类:
其他好文 时间:
2020-10-29 09:55:18
阅读次数:
18
背景今天在脉脉上面看到了一个帖子,比较有意思:这个帖子的意思是:在使用Kafka的时候,我们已经设置了多个分区,如何去提升消费能力?如果使用线程池的方式去提升如何保证重启时消息不丢。这个题其实问了两个点,第一个是如何提升消费能力,第二个是如果选择线程池,我们如何做到消息不丢。这里先解释一下这两个问题到底是怎么回事,在很多消息队列中都有一个概念叫partion,代表着分区,分区是我们提高消息队列消费
分类:
编程语言 时间:
2020-10-29 09:42:12
阅读次数:
19
背景不知道是否你还在为下面的问题而困扰:?当你使用了redis或者其他中间件做缓存的时候,经常发现缓存和数据库的数据不一致,只能通过定时任务或者缓存过期的方式去做一些限制。?当你使用了ES做搜索工具,使用双写的那一套方法,还在为ES和数据库不是一个事务而担忧。?当你需要迁移数据的时候,也还在使用双写的方法,如果是同一个数据库的还好,如果是不同数据库就不能保证事务,那么数据一致性也是个问题,就会写很
分类:
其他好文 时间:
2020-10-29 09:41:24
阅读次数:
16
一篇文章带你深入理解Zookeeper本文来自作者投稿,作者:林湾村龙猫,Hollis做了一些修改和补充。随着互联网技术的发展,大型网站需要的计算能力和存储能力越来越高。网站架构逐渐从集中式转变成分布式。虽然分布式和集中式系统相比有很多优势,比如能提供更强的计算、存储能力,避免单点故障等问题。但是由于采用分布式部署的方式,就经常会出现网络故障等问题,并且如何在分布式系统中保证数据的一致性和可用性也
分类:
其他好文 时间:
2020-10-29 09:26:49
阅读次数:
18
在《图解Kafka中的基本概念》中已经对副本进行了介绍。我们先回顾下,Kafka中一个分区可以拥有多个副本,副本可分布于多台机器上。而在多个副本中,只会有一个Leader副本与客户端交互,也就是读写数据。其他则作为Follower副本,负责同步Leader的数据,当Leader宕机时,从Follower选举出新的Leader,从而解决分区单点问题。本文将继续深入了解Kafka中副本机制的设计和原理
分类:
其他好文 时间:
2020-10-27 11:55:20
阅读次数:
43
在《Kafka消费者的使用和原理》中已经提到过“再均衡”的概念,我们先回顾下,一个主题可以有多个分区,而订阅该主题的消费组中可以有多个消费者。每一个分区只能被消费组中的一个消费者消费,可认为每个分区的消费权只属于消费组中的一个消费者。但是世界是变化的,例如消费者会宕机,还有新的消费者会加入,而为了应对这些变化,让分区所属权的分配合理,这都需要对分区所属权进行调整,也就是所谓的“再均衡”。本文将对再
分类:
其他好文 时间:
2020-10-27 11:55:04
阅读次数:
42
继上周的《Kafka生产者的使用和原理》,这周我们学习下消费者,仍然还是先从一个消费者的HelloWorld学起:publicclassConsumer{publicstaticvoidmain(String[]args){//1.配置参数Propertiesproperties=newProperties();properties.put("key.deserializer","org.apac
分类:
其他好文 时间:
2020-10-27 11:53:49
阅读次数:
25
在上篇文章《消息系统概述》中对消息系统进行了介绍,本次将学习Kafka中的基本概念。首先我们回顾下在消息系统的使用场景中有三种角色分别是生产者、消息系统和消费者,其中生产者负责产生消息和发送消息到消息系统,而消息系统将为消费者提供消息用于处理,如下图。Kafka是基于发布/订阅模式的消息系统,如下图。生产者会将消息推送到Kafka中的某个Topic上。引入Topic的目的则是为了对消息进行分类,这
分类:
其他好文 时间:
2020-10-27 11:52:37
阅读次数:
24
草捏子最近开始学习Kafka。在学习前,给自己确定了下学习的范围,大致如下:理解Kafka的相关概念;掌握Kafka的基本API使用;了解Kafka的背后原理。后续将在这学习范围内输出一些相关文章。那么本文作为Kafka系列的第一篇文章,将从“理解Kafka的相关概念”说起。首先Kafka是什么。Kafka起初是由LinkedIn公司采用Scala语言开发的一个多分区、多副本且基于ZooKeepe
分类:
其他好文 时间:
2020-10-27 11:52:25
阅读次数:
31