随笔分类 - 面面俱到
摘要:分布式锁常见的三种实现方式: 数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁。 Redis要实现分布式锁,以下条件应该得到满足: 互斥性:在任意时刻,只有一个客户端能持有锁。 不能死锁:客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 容错性:只要
阅读全文
摘要:这是生产系统中常见的问题。 我们以前做过一个 mysql binlog 同步的系统,就是说数据从一个 mysql 库原封不动地同步到另一个 mysql 库里面去(mysql -> mysql)。常见的一点在于说比如大数据 team,就需要同步一个 mysql 库过来,对公司的业务系统的数据做各种复杂
阅读全文
摘要:需要一个全局唯一的id来支持。 基于数据库的实现方案 数据库自增 id 每次从一个数据库中拿到自增id,再往对应的分库分表里去写入。 缺点就是单库生成自增 id,要是高并发的话,就会有瓶颈的;又或者专门开一个服务出来,这个服务每次就拿到当前 id 最大值,然后自己递增几个 id,一次性返回一批 id
阅读全文
摘要:TreeMap<K,V>的Key值是要求实现java.lang.Comparable,默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。 HashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;
阅读全文
摘要:Spring最基础的能力是IOC(依赖注入)、AOP(面向切面编程),ioc改善了模块之间的耦合问题。 依赖注入的方式:set方法,构造方法,成员变量+@Autowired;Bean的管理是IOC的主要功能。 bean的生命周期完全由spring容器管理,从属性设置到各种依赖关系的注入,简化了开发人
阅读全文
摘要:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。 Spring MVC是Spring的一个模块,一个web框架。通过DispatcherServlet, ModelAndView 和 ViewResolver
阅读全文