
Java技术干货
Java技术干货
大自然的搬运工
来源知乎:https://zhuanlan.zhihu.com/c_1078346214935752704
javaee1234
开发
展开
-
Redis 分布式锁的正确实现方式(Java版)
前言分布式锁一般有三种实现方式:数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实...转载 2019-11-20 14:45:43 · 325 阅读 · 1 评论 -
想使用消息队列,先考虑下这些问题!
消息队列优势消息队列(Message Queue,简称MQ),其主要用于在复杂的微服务系统中进行消息通信,它的优点可以大致整理成以下几点:服务间解耦 提高服务并发、性能 突发流量削峰 ...服务间解耦微服务系统业务之间相互依赖,各种调用错综复杂,如果不能良好对服务进行解耦那一个服务的可用性、并发都会受到其他服务的影响。在没有引用MQ的之前服务调用大概是这些步骤:图上的...转载 2019-11-19 11:06:43 · 168 阅读 · 0 评论 -
12306 的架构到底有多牛?
12306抢票,极限并发带来的思考?每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者...转载 2019-11-19 10:51:37 · 241 阅读 · 0 评论 -
业务复杂=if else?刚来的大神竟然用策略+工厂彻底干掉了他们!
对于业务开发来说,业务逻辑的复杂是必然的,随着业务发展,需求只会越来越复杂,为了考虑到各种各样的情况,代码中不可避免的会出现很多if-else。一旦代码中if-else过多,就会大大的影响其可读性和可维护性。首先可读性,不言而喻,过多的if-else代码和嵌套,会使阅读代码的人很难理解到底是什么意思。尤其是那些没有注释的代码。其次是可维护性,因为if-else特别多,想要新加一个分...转载 2019-11-19 10:56:17 · 140 阅读 · 0 评论