07 2020 档案

理解ThreadLocalMap内存泄露问题
摘要:这里所说的ThreadLocal的内存泄露问题,其实都是从ThreadLocalMap中的一段代码说起的,这段代码就是Entry的构造方法: static class Entry extends WeakReference,ThreadLocal{ /** The value associated 阅读全文

posted @ 2020-07-23 15:37 anqli_java 阅读(473) 评论(0) 推荐(0)

面试题:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?
摘要:如何保证消息不丢失 就我们市面上常见的消息队列而言,只要配置得当,我们的消息就不会丢。 先来看看这个图, 可以看到一共有三个阶段,分别是生产消息、存储消息和消费消息。我们从这三个阶段分别入手来看看如何确保消息不会丢失。 生产消息 生产者发送消息至Broker,需要处理Broker的响应,不论是同步还 阅读全文

posted @ 2020-07-23 15:34 anqli_java 阅读(915) 评论(0) 推荐(1)

微服务网关Zuul和Gateway的区别
摘要:spring-cloud-Gateway是spring-cloud的一个子项目。而zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已。因为zuul2.0连续跳票和zuul1的性能表现不是很理想,所以催生了spring团队开发了Gateway项目。 阅读全文

posted @ 2020-07-14 22:36 anqli_java 阅读(3080) 评论(0) 推荐(0)

如何设计一个秒杀系统
摘要:什么是秒杀 秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。 秒杀系统场景特点 秒杀时大量用户会在同一 阅读全文

posted @ 2020-07-14 11:25 anqli_java 阅读(578) 评论(0) 推荐(0)

volatile和synchronized的区别
摘要:volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取; synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。 volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的 volatil 阅读全文

posted @ 2020-07-14 11:13 anqli_java 阅读(118) 评论(0) 推荐(0)