分布式知识
文章平均质量分 76
予亭
活泼开朗,爱好广泛。
展开
-
kafka与消息队列
kafka定义Apache kafka is a distributed streaming platform,即官方定义 kafka 是一个分布式流式计算平台。而在大部分企业开发人员中,都是把 kafka 当成消息系统使用,即它是一个分布式消息队列,很少会使用 kafka 的流式计算。消息队列的特点模式这个模式主要是针对消费者来讲的,生产者是无模式概念说法的,生产者生产消息都是主动的。点对点pull模式,消费者主动拉取消息,消费者根据自身性能,消费的快就多拉消息,消费的慢就少消费,同时pul原创 2022-01-22 16:15:39 · 1738 阅读 · 1 评论 -
分布式架构关于数据分页问题
分布式数据库的分页方案业界难题-“跨库分页”的四种方案ES分页看这篇就够了原创 2021-11-14 15:56:13 · 4561 阅读 · 0 评论 -
LRU算法
LRU算法LRU算法全称是 Latest Recently Used。其含义是在内存有限的情况下,内存使用后容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间,那么选择淘汰哪些对象呢?LRU算法就提供了一种策略:淘汰最久未使用的对象。举个例子:一共3个单位的对象空间,现在进来了A、B、C,然后再插入D,空间满了,A是最早进来的,且未重复使用,LRU算法会把A淘汰掉。实现LRU算法最为精典的实现,就是HashMap+Double LinkedList。HashM原创 2021-03-28 14:42:58 · 297 阅读 · 0 评论 -
redis各种模式优缺点对比
主从模式客户端可对主数据库进行读写操作,对从数据库进行读操作,主数据库写入的数据会实时自动同步给从数据库。slave初始化第一步:slave启动后,向master发送SYNC命令,master将快照信息给到slave节点,并利用缓冲区来记录持续的写请求slave初始化第二步:收到快照信息完成初始化,slave初始化第三步:将缓冲区写请求给到slave节点,slave接收命令并执行,完成复制初始化开始同步写请求,master收到写请求后,同步给slave节点优点读写分离:master能自动原创 2021-03-10 09:59:25 · 1594 阅读 · 0 评论 -
kafka到底会不会丢消息?
前言网上很多文章都有讲解Kafka是如何保证不丢失消息的,但是真正的不丢消息吗?特别是当我看到broker写消息是写入内存中,也就是操作系统页缓存中,我就在想,如果这个时候物理机重启,内存东西都没了,消息不久没有了吗,于是带着这个疑问去找了很多资料,我们今天就谈谈到底会不会丢消息。丢消息的三个场景1、生产者发消息给Kafka Broker2、Kafka Broker 消息同步和持久化3、Kafka Broker 将消息传递给消费者1、生产者发消息给Kafka Broker生产者翻译 2021-03-06 14:13:56 · 287 阅读 · 0 评论 -
kafka架构生产、消费、broker如何分工
分工合作我们将kafka的分成三个部分:生产者存储Broker消费者然后看看这三个部分都分别做什么事情。kafka生产者都干了什么事情这是一张生产者大图,我们可以从一下几点来看下:KafkaProducer:生产消息对消息塞上Topic、分区、key、消息内容等数据。这里就可以了解到消息分区的逻辑其实是在客户端这边处理的,并不是在broker上确定分区的,这里主要看分区计算的逻辑:对于指定了 key 的消息,partition 位置的计算方式为:Utils.murmur2(ke原创 2021-02-28 17:49:17 · 312 阅读 · 0 评论 -
缓存与数据库数据一致性探索
改数据改数据的时候就删除缓存,并做数据库修改操作选项:可以对缓存key做锁处理查数据查数据 先查缓存,再查库,由于之前更改了记录,所以缓存无数据,这个时候走库,将库的数据插入到缓存中,这样下次用户查数据,就都是走缓存,利用缓存兜住。这样弊端就是很多人同时查库,而且都是第一次,这样导致穿库,但也还好。另一个方案cv:缓存版本号dv:数据库版本号每次写入 给cv一个时间戳,写...原创 2021-01-02 16:48:20 · 274 阅读 · 0 评论 -
聊聊一个电商优惠券产品形态
优惠券形式我们经常浏览淘宝、京东等电商平台,可以领取优惠券来购买商品,像双11有很多满减优惠券,及无门槛的叠猫猫购物红包等,这些其实都是一种营销手段,本文来解析如何来实现一套优惠券方案。优惠券方案1、优惠券基本信息优惠券基本信息主要分为两个方面:派发 和 使用派发派发是指优惠券可以领取的时间范围、领取方式(唯一兑换码、通用兑换码)、总的派发数量、单日派发数量、领取指定用户(会员、新用户等)、每人领取限制、派发渠道(app、小程序)等。使用使用就是具体的优惠券的使用时间、满足条件及优惠金额、原创 2020-11-28 18:59:51 · 679 阅读 · 0 评论 -
Redis 概念学习及5种数据类型
前言实际项目中使用redis比较多,本文来了解redis概念相关的内容,不聊架构。什么是redisredis是一个开源的、底层使用C语言编写的、支持网络交互的、可基于内存也可持久化的高性能Key-Value数据库,并且支持多语言客户端、高可用的,似乎高大上的词给给了它,它也是一个数据库,不过是内存数据库,主要解决读写慢的问题,在内存中读取比磁盘快太多了,每秒读写次数达到千万级别,采用单线程处...原创 2020-01-05 13:28:44 · 162 阅读 · 0 评论 -
数据分布一致性Hash:分布式扩容+负载均衡
前沿有时候想想,分布式领域真的很多东西都差不多,大家都会碰到,所以今天这个一致性hash是用在什么场景呢?解决什么问题场景一:如果一个数据库表已经分库分表,有4张表,那么现在如何实现扩容,扩容到8张表?场景二:8张表,如果要缩容,应该如何实现?以上这些情况都可以通过 hash来解决,把数据hash 后,就可以实现扩容、缩容,新的问题:扩容后,是不是所有数据都要重新hash?因为有...原创 2019-12-29 16:30:05 · 3342 阅读 · 0 评论 -
分布式锁解决方案解析
分布式锁特性互斥分布式锁需要保证在不同节点的不同线程的互斥。重入性同一个节点上的同一个线程如果获取了锁之后那么也可以再次获取这个锁锁超时锁超时:和本地锁一样支持锁超时,防止死锁支持阻塞和非阻塞和ReentrantLock一样支持lock和trylock以及tryLock(long timeOut)mysql 实现分布式锁lock要加事务,过程主要分为:1、先查询记录,通...原创 2019-12-17 22:48:13 · 407 阅读 · 0 评论 -
美团 Leaf分布式ID解决方案
前言看了一下美团的分布式ID的解决方案,谈谈自己的理解和思考。其中参考博客就是美团的分布式ID leaf的链接,可以直接跳转去看。Leaf-segment 数据库方案这里采用的是从数据库读取,每次从数据库里读取id起始点和步长,比如读取id为1000,步长为1000,那么可以生成的分布式id范围为1000 - 2000 。但不仅仅是这么简单的数字,一般形式如下:biz_tag + id...原创 2019-08-28 21:47:56 · 2174 阅读 · 4 评论