随笔分类 - 架构
摘要:原文链接:http://www.javaarch.net/jiagoushi/709.htm分布式唯一主键生成策略的一种开销比较小的方法 分布式场景下,经常需要做分库分表,master和master结构,那么此时就会用到全局的唯一主键id。
如果使用mysql的分区策略,master到master的复制,那么此时就需要保证分区的唯一性避免主键冲突。
我们可以使用mysql的自增列,但是mysql却无法保证物理和逻辑数据库的主键唯一性。 mysql5.6以上出现了GUID,但是GUID很大,而且如果需要建索引需要拿性能会比较差。这样对于某些查询只需要索引
或者需要利用索引来满足高并发下的性能..
阅读全文
摘要:继上次分析了java的序列化过程之后,对于serialVersionUID的处理还不是很清晰,今天再看下代码,对serialVersionUID的处理进行了了解,上次的序列化过程分析可以参考另外一篇文章:http://zhwj184.iteye.com/blog/1550699ObjectOutputStream.java调用writeObject的时候会调用到下面的代码:这是调用ObjectStreamClass.java的writeNonProxy方法,写入非代理类的元数据信息在写入类的元数据的时候会把serialVersionUID写入: /** * Writes non-p...
阅读全文
摘要:我看到的最多被违反的原则是“命令,不要去询问(Tell, Don’t Ask)”原则。这个原则讲的是,一个对象应该命令其它对象该做什么,而不是去查询其它对象的状态来决定做什么(查询其它对象的状态来决定做什么也被称作‘功能嫉妒(Feature Envy)’)。这篇文章里有个很生动的例子,我至今记忆犹新:if (person.getAddress().getCountry() == “Australia”) {这违反了得墨忒耳定律,因为这个调用者跟Person过于亲密。它知道Person里有一个Address,而Address里还有一个country。它实际上应该写成这样:if (person.l
阅读全文
浙公网安备 33010602011771号