自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 Redis 缓存设计

1. 缓存的优势和缺点1.1. 优势(1)加速读写 : 针对存储层通常读写性能不够强悍。(2)降低后端负载1.2 缺点(1)数据不一致:缓存和存储层的数据存在着一定时间串口的不一致。2. 缓存更新策略2.1 LRU/FIFO 算法剔除缓存的使用量超过了最大值的时候触发。根据maxmemory-policy 配置。2.2 超时剔除给缓存设置过期时间,当过期后自动删除。2.3 主...

2019-02-15 10:05:05 256 1

原创 Redis 哨兵

1111

2019-01-24 09:12:13 233

原创 Redis : 理解内存

1. 内存消耗1.1 内存使用统计重点关注的指标:(1)used_memory_rss:从操作系统角度显示Redis进程占用的物理内存的总量。(2)used_memory:Redis分配器分配的内存总量,所有数据内存的占用量。(3)mem_fragmentation_ratio= used_memory_rss/used_memory。如果ratio>1: 表示部分内存没有用于数...

2019-01-20 18:19:51 318

原创 Redis 的噩梦:阻塞

111

2019-01-20 16:07:52 273

原创 LeetCode

100. 相同树/** * 100. 相同的树 */public class IsSameTree { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) {

2019-01-18 08:52:59 269

原创 Redis 复制

1

2019-01-15 15:12:28 200

原创 Redis 持久化

1

2019-01-13 16:15:11 217

原创 Redis 慢查询,Pipeline,事务

1. 慢查询(1)没有慢查询只是统计命令执行时间,并不代表客户端没有查询。(2)-- latency 可以检测网络延迟,对于Redis的开发和运维非常有帮助。某个redis 客户端和某个redis服务器之间的延迟。...

2019-01-10 19:02:47 388

原创 Redis API 的使用和理解

1. 预备

2019-01-03 13:35:05 179

原创 分布式存储:Redis 集群(Redis Cluster)

aaaa

2018-12-29 13:56:54 488

原创 解决分布式一致性的问题

aaaa

2018-12-21 14:27:19 1184

原创 四种排序算法的Java 实现

dddd

2018-12-20 09:08:33 260

原创 Dubbo 实战及源码分析

1. Dubbo 的四种配置方式1.1 XML 配置Dubbo 是使用Spring 的 Shema 进行扩展标签和解析配置,所以我们能像 Spring 的 XML 配置方式一样进行配置。&amp

2018-12-17 09:47:36 2644

原创 Web on Servlet Stack - Spring Web MVC 官方文档学习

2018-11-20 16:15:03 588

原创 Spring Core Technologies 官方文档学习

dsfs

2018-11-14 19:30:48 1297 1

原创 Spring Transaction Management 官方文档学习

2018-11-02 15:24:23 554

原创 dubbo 集群容错模式源码学习 -- FaibackCluster

FailbackCluster当调用失败后,将调用失败的请求放在failed 集合。这个集合是并发访问,所有的请求失败的都会放在这个结合中。之后,通过scheduledExecutorService 去定时从新执行这些失败的请求,只要failed 集合有元素,就会执行。public class FailbackCluster {private volatile ScheduledFut...

2018-10-30 19:32:06 194

原创 RocketMQ实现顺序消息

大部分业务场景不需要消息的产生和消费的顺序相同(顺序消费)。但在某些场景(比如 订单的生成,付款 ,下单 这3个消息必须按顺序处理)。解决思路是:(1)在发送端,要把统一业务ID 发送到同一个MessageQueue. (2) 在消费端,同一MessageQueue 的消息不要被并发处理了。针对(1) , 我们可以使用RocketMQ 提供的 MesssageQueueSelector 接口以...

2018-10-30 19:31:53 1149

转载 常见的一些 Hash 函数

Hash的主要原理就是把大范围映射到小范围;所以,你输入的实际值的个数必须和小范围相当或者比它更小。不然冲突就会很多。不同的应用对Hash函数有着不同的要求;比如,用于加密的Hash函数主要考虑它和单项函数的差距,而用于查找的Hash函数主要考虑它映射到小范围的冲突率。下面介绍一些常用的用于查询Hash函数。加法Hashpublic class AdditiveHash {...

2018-10-30 19:31:23 3594

原创 RocketMQ Consumer 负载均衡算法学习 -- AllocateMessageQueueAveragelyByCircle

首先, RocketMQ Consumer 的负载均衡指的是把Topic 下的所有MessageQueue 分配到不同的 Consumer 中,所以Message Queue , Consumer 的数量,某个Consumer 的位置 会影响到负载均衡。这边介绍下环形平均分配的算法:所有Consumers 形成一个环,所有MessageQueues 依次分配到环上每个Consumer。 代码如...

2018-10-30 19:31:02 932

原创 dubbo 集群容错模式源码学习---ForkingCluster

ForkingCluster 模式思想:服务端多个节点并行响应(并发任务)某个服务的请求,将执行完的结果放在一个阻塞队列中(FIFO)。第一个完成的任务的结果进入队列,将会马上返回,不会等待所有任务执行完成, 只要有一个任务完成,结果放到队列中,队列中弹出第一个(最快完成响应的那个节点)结果, 返回服务请求方。如果n 个并发任务都出错了,抛异常,将最后一个异常放到队列中。服务请求返回就是抛异常...

2018-10-30 19:30:10 261

原创 RocketMQ Consumer 负载均衡算法源码学习 -- AllocateMessageQueueConsistentHash

RocketMQ 提供了一致性hash 算法来做Consumer 和 MessageQueue的负载均衡。 源码中一致性hash 环的实现是很优秀的,我们一步一步分析。一个Hash环包含多个节点, 我们用 MyNode 去封装节点, 方法 getKey() 封装获取节点的key。我们可以实现MyNode 去描述一个物理节点或虚拟节点。MyVirtualNode 实现 MyNode, 表示一个...

2018-10-30 19:29:50 521

原创 RocketMQ NameServer模块 源码学习

RocketMQ namesrv 模块中 用到了 MixAll 类, 其中有一个 properties2Object(Properties, Object) 通用方法,把properties 转换成 简单的 POJO object。 你可以进一步扩展:从.properties 文件中读取properties key 和 value, 然后将key 和 value 转换成 object。 这个方法...

2018-10-30 19:29:24 196

转载 基于同步器AbstractQueuedSynchronizer 实现自定义锁

AbstractQueuedSynchronizer(AQS) 同步器 只是JAVA5 实现锁关建。利用同步器将所得语义(Semantic) 实现, 然后在自定义锁的实现中聚合AQS同步器。这里推荐一篇非常好的关于AQS的文章: http://ifeve.com/introduce-abstractqueuedsynchronizer/下面是自定锁的一个实现,其实就是Semphore, 令牌...

2018-10-30 19:28:46 288

转载 JDK静态代理、JDK动态代理以及CGLIB动态代理

这里转载一篇 “深入理解JDK动态代理机制” 的好文章:https://www.jianshu.com/p/471c80a7e8311. JDK 静态代理和动态代理的比较JDK静态代理与JDK动态代理之间相似之处:(1) 都要创建代理类,以及代理类都要实现接口。不同之处:(1) 在静态代理中我们需要对哪个接口和哪个被代理类创建代理类,所以我们在编译前就需要代理类实现与被代理类相同的接...

2018-10-30 19:28:21 156

原创 《Hadoop 权威指南 - 大数据的存储与分析》学习笔记

第一章 初识Hadoop1.2 数据的存储与分析对多个硬盘中的数据并行进行读/写数据,有以下两个重要问题:硬件故障问题。解决方案:复制(replication),系统保存数据的副本(replica)。以某种方式结合大部分数据来共同完成分析。MapReduce 提出一个编程模型,该模型抽象出这些硬件读/写问题,并且将其转换成对一个数据集(由键-值对组成)的计算。简而言之,Hadoop 为...

2018-10-30 19:27:58 900 3

原创 dubbo 负载均衡算法实现的学习

随机数权重算法假设一个服务service1 分布在一个含有4个节点(A, B, C, D)的集群上。 权重分别为1,2,3,4。那么一个请求service1 的 到 A,B,C,D 节点的概率为 10%,20%,30%,40%。 一个对于service1 的请求 会被随机分配一个数字。这个数字是A,B,C,D 节点权重之和范围类随机出来的。我们的例子中权重之和是10,所以随机数范围是【0,9...

2018-10-30 19:27:45 427

原创 《RockeMQ实战与原理解析》 学习笔记

第一章1.1 消息队列的功能介绍1.1.1 应用解耦1.1.2 流量消峰大部分应用系统在高峰时间段流量会猛增, 这个时候如果没有缓冲机制,不可能短时间内承受住大流量的冲击。利用消息队列,把大量的请求缓存起来,分散到相对长的一个时间段内处理,能大大提高系统的稳定性和用户提现。1.1.3 消息分发数据产生方将数据写入一个消息队列,数据使用方根据自己的需求订阅感兴趣的数据,各个团队订阅的数据...

2018-10-30 08:50:42 660

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除