摘要: 网关一词较早出现在网络设备里面,比如两个相互独立的局域网段之间通过路由器或者桥接设备进行通信, 这中间的路由或者桥接设备我们称之为网关。 相应的 API 网关将各系统对外暴露的服务聚合起来,所有要调用这些服务的系统都需要通过 API 网关进行访问,基于这种方式网关可以对 API 进行统一管控,例如: 阅读全文
posted @ 2018-09-14 17:40 kaleidoscopic 阅读(20055) 评论(3) 推荐(1) 编辑
摘要: 在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍。想想可知,假如我们查询淘宝的一个订单详情,如果查询时间高达几十秒,这么高的查询延时,任何用户都会抓狂。因此如何提高 SQL 语句查询效率,显得十 阅读全文
posted @ 2018-09-14 16:27 kaleidoscopic 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 一、秒杀一般会带来2个问题: 1、高并发 比较火热的秒杀在线人数都是10w起的,如此之高的在线人数对于网站架构从前到后都是一种考验。 2、超卖 任何商品都会有数量上限,如何避免成功下订单买到商品的人数不超过商品数量的上限,这是每个抢购活动都要面临的难题。 二、如何解决? 1.架构层面: 秒杀架构设计 阅读全文
posted @ 2018-09-14 16:12 kaleidoscopic 阅读(2213) 评论(0) 推荐(0) 编辑
摘要: 使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。 SETNX命令简介 命令格式 将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX 是SET if Not eXists的简写。 返回值 返回整数 阅读全文
posted @ 2018-09-14 15:01 kaleidoscopic 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 3 Key Software Principles You Must Understand Principle - Don't Repeat Yourself Principle - Keep it Simple Stupid Principle - You "Ain't Gonna Need It 阅读全文
posted @ 2018-09-14 14:56 kaleidoscopic 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1.Counting(计数) 很多情况大家都会设想纯使用内存的方案会很有很高成本,但实际情况往往会有一些不一样: COST,对于有一定吞吐需求的应用来说,肯定会单独申请DB、Cache资源,很多担心DB写入性能的同学还会主动将DB更新记入异步队列,而这三块的资源的利用率一般都不会太高。资源算下来,你 阅读全文
posted @ 2018-09-14 14:50 kaleidoscopic 阅读(196) 评论(0) 推荐(0) 编辑
摘要: Java进阶(一)Annotation(注解) Java进阶(二)当我们说线程安全时,到底在说什么 Java进阶(三)多线程开发关键技术 Java进阶(四)线程间通信方式对比 Java进阶(五)NIO和Reactor模式进阶 Java进阶(六)从ConcurrentHashMap的演进看Java多线 阅读全文
posted @ 2018-09-14 11:32 kaleidoscopic 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 深入浅出Zookeeper(一) Zookeeper架构及FastLeaderElection机制 深入浅出Zookeeper(二) 基于Zookeeper的分布式锁与领导选举 从Paxos到Zookeeper:分布式一致性原理与实践 深入浅出Zookeeper(一) Zookeeper架构及Fas 阅读全文
posted @ 2018-09-14 11:30 kaleidoscopic 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 识别领域事件 DDD战术篇:领域模型的应用 DDD战略篇:架构设计的响应力 DDD实战篇:分层架构的代码结构 识别领域事件 DDD战术篇:领域模型的应用 DDD战略篇:架构设计的响应力 DDD实战篇:分层架构的代码结构 阅读全文
posted @ 2018-09-14 10:58 kaleidoscopic 阅读(206) 评论(0) 推荐(0) 编辑