07 2018 档案

摘要:之前在做 秒杀架构实践 时有提到对 distributed-redis-tool 的一次小升级,但是没有细说。 阅读全文
posted @ 2018-07-30 08:01 crossoverJie 阅读(732) 评论(2) 推荐(2)
摘要:Netty 是一个高性能的 NIO 网络框架,本文基于 SpringBoot 以常见的心跳机制来认识 Netty。 阅读全文
posted @ 2018-07-27 08:33 crossoverJie 阅读(1814) 评论(0) 推荐(3)
摘要:之前在 Java-Interview 中提到过秒杀架构的设计,这次基于其中的理论简单实现了一下。 本次采用循序渐进的方式逐步提高性能达到并发秒杀的效果,文章较长请准备好瓜子板凳(liushuizhang😂)。 阅读全文
posted @ 2018-07-26 08:02 crossoverJie 阅读(2767) 评论(12) 推荐(14)
摘要:首先标题党一下,其实这篇文章主要是记录我的第二个过 1K star 的项目 Java-Interview,顺便分享下其中的过程及经验。 阅读全文
posted @ 2018-07-25 09:11 crossoverJie 阅读(1210) 评论(4) 推荐(3)
摘要:本文接着上文应用限流进行讨论。 之前谈到的限流方案只能针对于单个 JVM 有效,也就是单机应用。而对于现在普遍的分布式应用也得有一个分布式限流的方案。 基于此尝试写了这个组件: https://github.com/crossoverJie/distributed-redis-tool 阅读全文
posted @ 2018-07-24 08:12 crossoverJie 阅读(1571) 评论(3) 推荐(3)
摘要:LRU 是 Least Recently Used 的简写,字面意思则是最近最少使用。 通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被撑满。 阅读全文
posted @ 2018-07-23 08:02 crossoverJie 阅读(651) 评论(0) 推荐(0)
摘要:分布式锁在分布式应用中应用广泛,想要搞懂一个新事物首先得了解它的由来,这样才能更加的理解甚至可以举一反三。 首先谈到分布式锁自然也就联想到分布式应用。 在我们将应用拆分为分布式应用之前的单机系统中,对一些并发场景读取公共资源时如扣库存,卖车票之类的需求可以简单的使用同步或者是加锁就可以实现。 但是应用分布式了之后系统由以前的单进程多线程的程序变为了多进程多线程,这时使用以上的解决方案明显就不够了。 阅读全文
posted @ 2018-07-20 08:32 crossoverJie 阅读(3611) 评论(11) 推荐(0)
摘要:开发中不免会遇到需要所有子线程执行完毕通知主线程处理某些逻辑的场景。 或者是线程 A 在执行到某个条件通知线程 B 执行某个操作。 可以通过以下几种方式实现: 阅读全文
posted @ 2018-07-19 08:31 crossoverJie 阅读(907) 评论(3) 推荐(1)
摘要:不管是在面试还是实际开发中都是一个应该掌握的技能。 阅读全文
posted @ 2018-07-18 08:35 crossoverJie 阅读(1044) 评论(7) 推荐(1)
摘要:众所周知 HashMap 是一个无序的 Map,因为每次根据 key 的 hashcode 映射到 Entry 数组上,所以遍历出来的顺序并不是写入的顺序。 阅读全文
posted @ 2018-07-17 08:55 crossoverJie 阅读(1617) 评论(1) 推荐(1)
摘要:使用 synchronize 来做同步处理时,锁的获取和释放都是隐式的,实现的原理是通过编译后加上不同的机器指令来实现。 而 ReentrantLock 就是一个普通的类,它是基于 AQS(AbstractQueuedSynchronizer)来实现的。 是一个重入锁:一个线程获得了锁之后仍然可以反复的加锁,不会出现自己阻塞自己的情况。 阅读全文
posted @ 2018-07-16 08:00 crossoverJie 阅读(613) 评论(0) 推荐(1)
摘要:当 JVM 收到一个 new 指令时,会检查指令中的参数在常量池是否有这个符号的引用,还会检查该类是否已经被加载过了,如果没有的话则要进行一次类加载。 阅读全文
posted @ 2018-07-13 08:08 crossoverJie 阅读(1600) 评论(3) 推荐(2)
摘要:众所周知 synchronize 关键字是解决并发问题常用解决方案,有以下三种使用方式: 同步普通方法,锁的是当前对象。 同步静态方法,锁的是当前 Class 对象。 同步块,锁的是 {} 中的对象。 阅读全文
posted @ 2018-07-12 09:00 crossoverJie 阅读(1021) 评论(2) 推荐(2)
摘要:当我们在做数据库分库分表或者是分布式缓存时,不可避免的都会遇到一个问题: 如何将数据均匀的分散到各个节点中,并且尽量的在加减节点时能使受影响的数据最少。 阅读全文
posted @ 2018-07-10 11:59 crossoverJie 阅读(623) 评论(0) 推荐(0)
摘要:之前或多或少分享过一些内存模型、对象创建之类的内容,其实大部分人看完都是懵懵懂懂,也不知道这些的实际意义。 直到有一天你会碰到线上奇奇怪怪的问题,如: 阅读全文
posted @ 2018-07-09 08:20 crossoverJie 阅读(3571) 评论(6) 推荐(21)
摘要:现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的 SSM 项目来让第一次接触的同学能快速上手。 阅读全文
posted @ 2018-07-06 08:39 crossoverJie 阅读(5197) 评论(1) 推荐(4)
摘要:Netty 是一个高性能的 NIO 网络框架,本文基于 SpringBoot 以常见的心跳机制来认识 Netty。 阅读全文
posted @ 2018-07-05 08:20 crossoverJie 阅读(7857) 评论(1) 推荐(1)
摘要:在之前的 SpringBoot 整合长连接心跳机制 一文中认识了 Netty。 但其实只是能用,为什么要用 Netty?它有哪些优势?这些其实都不清楚。 本文就来从历史源头说道说道。 阅读全文
posted @ 2018-07-04 11:25 crossoverJie 阅读(2966) 评论(0) 推荐(0)