分布式工具的一次小升级⏫ 前言之前在做 秒杀架构实践 时有提到对 distributed-redis-tool 的一次小升级,但是没有细说。 其实主要原因是: 秒杀时我做压测:由于集成了这个限流组件,并发又比较大,所以导致连接、断开 Redis 非常频繁。最终导致获取不了 Redis connection 的异常。 池化技术这就是一个典型的对稀缺资源使用不善导致的。 何为稀缺资源?常见的有: 线程 数据库连接 网络 2018-06-07 Distributed Tools #Distributed Lock #Distributed Limited
记于 2018 年高考! 2012/02/28 2012年二月二十八日。 这天学校举行了高考 100 天誓师大会,当时完全不知道意味着什么,只感觉现场热血沸腾、激情高涨,心里告诉自己就算只剩下 100 天我也能考上清华其次也是北大。 2012/06/03 2012年六月三日。 晚自习拿出前段时间刚拍的毕业合照,恨死摄影师,没有抓拍到我最帅的角度😡。 2018-06-06 小情绪
Netty(一) SpringBoot 整合长连接心跳机制 前言Netty 是一个高性能的 NIO 网络框架,本文基于 SpringBoot 以常见的心跳机制来认识 Netty。 最终能达到的效果: 客户端每隔 N 秒检测是否需要发送心跳。 服务端也每隔 N 秒检测是否需要发送心跳。 服务端可以主动 push 消息到客户端。 基于 SpringBoot 监控,可以查看实时连接以及各种应用信息。 效果如下: 2018-05-24 Netty #SpringBoot #TCP #Heartbeat
1K star+ 的项目是如何炼成的? 前言首先标题党一下,其实这篇文章主要是记录我的第二个过 1K star 的项目 Java-Interview,顺便分享下其中的过程及经验。 需求选择Java-Interview之所以要做这个项目主要是当时我正在面阿里的两个部门,非常幸运的是技术面都过了。其中的过程真是让我受益匪浅更是印象深刻,所以就想把期间的问题记录下来,加上自己的理解希望能对其他朋友起到帮助。 正好那段时间也是传说中的金三银 2018-05-15 小技巧 #GitHub
SSM(十八) 秒杀架构实践 前言之前在 Java-Interview 中提到过秒杀架构的设计,这次基于其中的理论简单实现了一下。 本次采用循序渐进的方式逐步提高性能达到并发秒杀的效果,文章较长请准备好瓜子板凳(liushuizhang😂)。 本文所有涉及的代码: https://github.com/crossoverJie/SSM https://github.com/crossoverJie/distribut 2018-05-07 SSM > Distributed Tools #Java #Kafka #Redis #SpringBoot
sbc(七)分布式限流 前言本文接着上文应用限流进行讨论。 之前谈到的限流方案只能针对于单个 JVM 有效,也就是单机应用。而对于现在普遍的分布式应用也得有一个分布式限流的方案。 基于此尝试写了这个组件: https://github.com/crossoverJie/distributed-redis-tool DEMO以下采用的是 https://github.com/crossoverJie/springboot 2018-04-28 sbc > Distributed Tools #Distributed Limited
【译】对于初学者什么是最好的编程语言? 原文链接Python?Java?Ruby?JavaScript?有非常多的选择。选择一种编程语言开始你的编码之旅不应该是一件艰巨的任务。 事实上:你将要学习的语言并不是特别重要,更重要的是学习编程的理念。对于任何编程语言来说知识的可传递性都是至关重要的。 我学习的第一门语言是 Java,学习了循环,while 循环,条件,函数,面向对象编程和许多编程理念。 然而,选择一门能在编程领域轻松找到工作 2018-04-12 翻译
动手实现一个 LRU cache 前言LRU 是 Least Recently Used 的简写,字面意思则是最近最少使用。 通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被撑满。 如常用的 Redis 就有以下几种策略: 策略 描述 volatile-lru 从已设置过期时间的数据集中挑选最近最少使用的数据淘汰 volatile-ttl 从已设置过期时间的数据集中挑 2018-04-07 算法 > LRU cache
基于 Redis 的分布式锁 前言分布式锁在分布式应用中应用广泛,想要搞懂一个新事物首先得了解它的由来,这样才能更加的理解甚至可以举一反三。 首先谈到分布式锁自然也就联想到分布式应用。 在我们将应用拆分为分布式应用之前的单机系统中,对一些并发场景读取公共资源时如扣库存,卖车票之类的需求可以简单的使用同步或者是加锁就可以实现。 但是应用分布式了之后系统由以前的单进程多线程的程序变为了多进程多线程,这时使用以上的解决方案明显就不 2018-03-29 Distributed Tools #Distributed Lock
Spring Bean 生命周期 前言Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模式 Bean 的完整生命周期,对于 prototype 的 bean ,Spring 在创建好交给使用者之后则不会再管理后续的生命周期。 2018-03-21 Spring #Spring