Lua脚本在秒杀场景下的使用

在秒杀这种高并发、大流量的场景下,利用数据库进行库存扣减、数据查询这种想法就不要考虑了。你要是有这种想法,劝你早点放弃,P0事故一定在等着你。之前用Lua脚本实现秒杀场景下的库存扣减感觉很不错,配合Redis秒杀效果杠杠的!Redis 2.6 版本通过内嵌支持 Lua 环境,会单线程原子性执行 Lua 脚本,保证 Lua 脚本在处理的过程中不会被任意其它请求打断。

Read More

设计模式学习之模板和策略模式实战

前面文章由抽奖活动赠送不同的奖励从而引出了策略模式,定义一个策略接口,不同的奖励发放实现不同的策略。即使后续新增加奖励种类,只要重新实现一个策略即可,符合了设计模式中的开闭原则-对扩展开放对修改关闭。我在一次订单活动功能开发中使用到了策略模式,在开发的过程中发现,订单符合活动条件的判断、发放奖励给用户,可以提升到父类实现,具体的条件判断逻辑可以延迟到子类去实现,从而引出本篇文章的主题:模板模式。

Read More

设计模式学习之策略模式

策略模式(Strategy Pattern)我觉得在23中常见的设计模式里面是一种比较简单的,使用场景也很多。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象,策略对象改变 context 对象的执行算法。

Read More

Windows下搭建RocketMQ双主双从集群

RocketMQ 是阿里巴巴在 2012 年开源的消息队列产品,用 Java 语言实现,在设计时参考了 Kafka,并做出了自己的一些改进,后来捐赠给 Apache 软件基金会,2017 正式毕业,成为 Apache 的顶级项目。RocketMQ 在阿里内部被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理,Binglog 分发等场景。经历过多次双十一考验,它的性能、稳定性和可靠性都是值得信赖的。我们今天就在 windows下搭建RocketMQ多Master多Slave模式(同步)的集群。

Read More