hengyunabc的专栏

日落黄金台金黄落日 -- 横云断岭

扯谈下XA事务

普通事务的实现是比较好理解的。以jdbm3为例,大概是这样的过程: 每个事务都新建一个事务文件,当commit时,先把修改过的数据块,写到事务文件里,然后再一次性地写到数据库文件里。 如果commit时挂掉了,那么重启之后,会再次从事务文件里把修改过的块写到数据库文件里。最后再删除事务文件。 ht...

2014-02-20 21:34:19

阅读数:17095

评论数:2

利用redis + lua解决抢红包高并发的问题

抢红包的需求分析 抢红包的场景有点像秒杀,但是要比秒杀简单点。 因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。 另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工...

2014-02-20 20:08:26

阅读数:116146

评论数:29

抢红包的红包生成算法

过年微信红包很火,虽然我没有抢过,但是有个项目也要做抢红包,于是写了个红包的生成算法。 红包生成算法的需求 预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]。 最简单的...

2014-02-18 22:16:32

阅读数:53292

评论数:20

分片(Sharding)的全局ID生成

数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求: 不能有单点故障。 以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。 可以控制ShardingId。比如某一个用户的文章要放在同一个分...

2014-02-16 18:37:48

阅读数:16395

评论数:2

zookeeper运维

尽管zookeeper在编程上有很多的阱陷,API也非常的难用,但zookeeper服务本身可以说是很牢靠的了,所以在网上貌似关于运维的文章比较少。 但省心并不代表不会出麻烦,下面总结下zookeeper运维相关的东东。 重要的参考资料 这里有一个很好的Pdf,介绍了很多zookeeper的东东,...

2014-02-09 15:06:37

阅读数:69431

评论数:3

Linux配置启动项,自启动服务

Linux下有两种机制,一个是旧式的System V initialization,它来源于Unix并且至今仍被各种Linux distros所采用;另一种是近几年提出的Upstart机制。 参考:http://www.cnblogs.com/cassvin/archive/2011/12/25/...

2014-02-08 21:02:00

阅读数:15826

评论数:0

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