摘要: 我们在使用netty的时候会使用一个参数,ChannelOption.SO_KEEPALIVE为true, 设置好了之后再Linux系统才会对keepalive生效,但是linux里边需要配置几个参数,tcp_keepalive_time, tcp_keepalive_invl, tcp_keepa阅读全文
posted @ 2019-05-19 11:48 黄青石 阅读(244) 评论(0) 编辑
摘要: 在现在的微服务使用的过程中,经常会遇到依赖的服务不可用,那么如果依赖的服务不可用的话,会导致把自己的服务也会拖死,那么就产生了熔断,熔断顾名思义就是当服务处于不可用的时候采取半开关的状态,达到一定数量后就熔断器就打开。这就相当于家里边的保险丝,如果电压过高的话,保险丝就会断掉,起到保护电器的作用。 阅读全文
posted @ 2019-03-19 23:34 黄青石 阅读(626) 评论(0) 编辑
摘要: 大家都用过ReentrantLock,但是大家对内部实现是否足够了解呢,下面我就简单说一下其中的实现原理。 ReentrantLock是可重入锁,也就是同一个线程可以多次获取锁,每获取一次就会进行一次计数,解锁的时候就会递减这个计数,直到计数变为0。 它有两种实现,一种是公平锁,一种是非公平锁,那么阅读全文
posted @ 2019-03-10 22:11 黄青石 阅读(179) 评论(0) 编辑
摘要: 随着现在数据量的不断增加,很多大数量的问题随之而来,就得需要我们想办法解决,我找了一些问题并首先思考,然后找到方法,在这里记录一下,未来有需要的同学可以拿走去用。 1. 在海量日志数据里,提取某天访问量最多的IP。 一般处理海量的思路都是分治处理,就是现将数据进行拆分,然后进行处理,排序等。这个例子阅读全文
posted @ 2019-02-17 11:41 黄青石 阅读(473) 评论(0) 编辑
摘要: 策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在springboot中实现策略和工厂模式? 具体策略模式和工厂模式的UML我就不给出来了,使用这个这两个模式主要是防止程序中出现大量的IF ELSE IF ELSE....。接下来咱们直接实现,项目结构图: 工厂类FactoryStrategy负阅读全文
posted @ 2019-01-31 22:02 黄青石 阅读(1523) 评论(3) 编辑
摘要: 之前我写了如何实现分布式锁和分布式限流,这次我们继续在这块功能上推进,实现一个秒杀系统,采用spring boot 2.x + mybatis+ redis + swagger2 + lombok实现。 先说说基本流程,就是提供一个秒杀接口,然后针对秒杀接口进行限流,限流的方式目前我实现了两种,上次阅读全文
posted @ 2019-01-27 09:42 黄青石 阅读(2371) 评论(1) 编辑
摘要: 随着现在分布式越来越普遍,分布式锁也十分常用,我的上一篇文章解释了使用zookeeper实现分布式锁(传送门),本次咱们说一下如何用Redis实现分布式锁和分布限流。 Redis有个事务锁,就是如下的命令,这个命令的含义是将一个value设置到一个key中,如果不存在将会赋值并且设置超时时间为30秒阅读全文
posted @ 2019-01-19 10:14 黄青石 阅读(1268) 评论(0) 编辑
摘要: 现在很多地方都会用到zookeeper, 用到它的地方就是为了实现分布式。用到的场景就是服务注册,比如一个集群服务器,需要知道哪些服务器在线,哪些服务器不在线。 ZK有一个功能,就是创建临时节点,当机器启动应用的时候就会连接到一个ZK节点,然后创建一个临时节点,那么通过获取监听该路径,并且获取该路径阅读全文
posted @ 2019-01-12 15:34 黄青石 阅读(541) 评论(0) 编辑
摘要: 在写入数据库的时候需要有锁,比如同时写入数据库的时候会出现丢数据,那么就需要锁机制。 数据锁分为乐观锁和悲观锁,那么它们使用的场景如下: 1. 乐观锁适用于写少读多的情景,因为这种乐观锁相当于JAVA的CAS,所以多条数据同时过来的时候,不用等待,可以立即进行返回。 2. 悲观锁适用于写多读少的情景阅读全文
posted @ 2018-12-23 20:04 黄青石 阅读(1442) 评论(3) 编辑
摘要: 之前写了一篇关于RPC的文章,浏览量十分感人:),但是感觉文章写得有些粗,觉得很多细节没有讲出来,这次把里边的细节再次补充和说明。 这次主要说的内容分为: 1. RPC的主要结构图。 2.分析结构图的中的细节和步骤。 关于RPC,大家都不陌生,其简写和介绍什么的我就不过多介绍了,可以从我上篇文章中看阅读全文
posted @ 2018-11-21 22:43 黄青石 阅读(435) 评论(0) 编辑