摘要:
分布式系统如果保证接口的幂等性? 数据设置状态值 数据库设置唯一性 每个数据请求有唯一性标识 分布式session如何处理? tomcat+redis,TomcatRedisSessionManager,将所有部署的tomcat都将session存储到redis即可。使用方法不变,是Tomcat封装 阅读全文
摘要:
Redis和memcached区别? Redis支持更多的数据结构和支持更丰富的数据操作 Redis线程模型? 文件事件处理器 为什么单线程的Redis比多线程的memcached效率要高得多(为什么reids是单线程的还可以支持高并发)? 存内存操作 核心是基于非阻塞的IO多路复用操作(监听Soc 阅读全文
摘要:
Redisson 是一种操作redis的框架,类似于jedis,是一个redis客户端,支持分布式锁等,底层用lua脚本实现 Redisson 分布式锁原理: 分布式是锁? 是将同步请求转换为了串行执行,队列里面 redis 主从架构,由于同步问题导致锁失效问题? redis 会将多个节点加锁,比如 阅读全文
摘要:
B-Tree 叶节点具有相同的深度,叶节点的指针为空 根节点存储数据 所有索引元素不重复 节点中的数据索引从左到右递增排列 由于B-Tree的特性,在B-Tree中按key检索数据的算法非常直观:首先从根节点进行二分查找,如果找到则返回对应节点的data,否则对相应区间的指针指向的节点递归进行查找, 阅读全文
摘要:
什么是JMM JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在 阅读全文
摘要:
对待工作:但行好事 莫问前程! 对待生活:你尽管善良,上天自有安排! 一个人的梦想也许不值钱,但是一个人的努力很值钱。请守护住你的梦想,那是你与众不同的东西,那是让你在成长道路上不至于泯然于众的东西。 阅读全文
摘要:
你用RabbitMQ的那些功能?做了些什么? 消息队列 RabbitMQ和Kafaka区别? RabbitMQ有哪些模式: 1)工作队列:给多个队列发送消息 2)发布/订阅 3)简单模式 RabbitMQ重复消费如何处理?消息一致性如何解决? 1)保证接口幂等 如何做幂等: 1、利用数据库唯一键约束 阅读全文
摘要:
1.String 1)常用命令: value类型可以是:字符串,数字,二进制 2)应用: 分布式锁 1 设置字符串key,若存在则设置失败 SETNX("key",value)==1//设置成功获取锁 SETNX("key",value)==0)//资源已经被占用,设置失败 2 业务处理完毕释放分布 阅读全文
摘要:
@Test public void test() { int[] a = {1, 2, 3, 2, 1, 3, 4, 4, 6}; System.out.println(singleNumber(a)); } public int singleNumber(int[] A) { if(A == null || A.le... 阅读全文
摘要:
同步阻塞IO(Blocking IO):即传统的IO模型。 同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 多路复用IO(IO Multiplexin 阅读全文