摘要:在使用Springboot的时候,都要涉及到服务的停止和启动,当我们停止服务的时候,很多时候大家都是kill -9 直接把程序进程杀掉,这样程序不会执行优雅的关闭。而且一些没有执行完的程序就会直接退出。 我们很多时候都需要安全的将服务停止,也就是把没有处理完的工作继续处理完成。比如停止一些依赖的服务 阅读全文
posted @ 2019-08-17 20:45 黄青石 阅读 (522) 评论 (2) 编辑
摘要:随着互联网的数据量越来越大,很多单表的数据量已经上亿了,甚至更多,这样单表的数据已经达到了查询的瓶颈,那么就需要将数据库进行拆分。 如何有效的进行数据库拆分呢,而且在互联网公司停机进行数据库处理不是很现实,因为影响了业务量。那么就需要更好的方法去进行解决。 首先咱们先准备一下数据库,然后将数据库建立 阅读全文
posted @ 2019-07-28 18:00 黄青石 阅读 (54) 评论 (0) 编辑
摘要:很多大的互联网公司数据量很大,都采用分库分表,那么分库后就需要统一的唯一ID进行存储。这个ID可以是数字递增的,也可以是UUID类型的。 如果是递增的话,那么拆分了数据库后,可以按照id的hash,均匀的分配到数据库中,并且mysql数据库如果将递增的字段作为主键存储的话会大大提高存储速度。但是如果 阅读全文
posted @ 2019-07-27 20:34 黄青石 阅读 (1052) 评论 (4) 编辑
摘要:我们在使用netty的时候会使用一个参数,ChannelOption.SO_KEEPALIVE为true, 设置好了之后再Linux系统才会对keepalive生效,但是linux里边需要配置几个参数,tcp_keepalive_time, tcp_keepalive_invl, tcp_keepa 阅读全文
posted @ 2019-05-19 11:48 黄青石 阅读 (352) 评论 (0) 编辑
摘要:在现在的微服务使用的过程中,经常会遇到依赖的服务不可用,那么如果依赖的服务不可用的话,会导致把自己的服务也会拖死,那么就产生了熔断,熔断顾名思义就是当服务处于不可用的时候采取半开关的状态,达到一定数量后就熔断器就打开。这就相当于家里边的保险丝,如果电压过高的话,保险丝就会断掉,起到保护电器的作用。 阅读全文
posted @ 2019-03-19 23:34 黄青石 阅读 (757) 评论 (0) 编辑
摘要:大家都用过ReentrantLock,但是大家对内部实现是否足够了解呢,下面我就简单说一下其中的实现原理。 ReentrantLock是可重入锁,也就是同一个线程可以多次获取锁,每获取一次就会进行一次计数,解锁的时候就会递减这个计数,直到计数变为0。 它有两种实现,一种是公平锁,一种是非公平锁,那么 阅读全文
posted @ 2019-03-10 22:11 黄青石 阅读 (257) 评论 (0) 编辑
摘要:随着现在数据量的不断增加,很多大数量的问题随之而来,就得需要我们想办法解决,我找了一些问题并首先思考,然后找到方法,在这里记录一下,未来有需要的同学可以拿走去用。 1. 在海量日志数据里,提取某天访问量最多的IP。 一般处理海量的思路都是分治处理,就是现将数据进行拆分,然后进行处理,排序等。这个例子 阅读全文
posted @ 2019-02-17 11:41 黄青石 阅读 (536) 评论 (0) 编辑
摘要:策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在springboot中实现策略和工厂模式? 具体策略模式和工厂模式的UML我就不给出来了,使用这个这两个模式主要是防止程序中出现大量的IF ELSE IF ELSE....。接下来咱们直接实现,项目结构图: 工厂类FactoryStrategy负 阅读全文
posted @ 2019-01-31 22:02 黄青石 阅读 (2431) 评论 (3) 编辑
摘要:之前我写了如何实现分布式锁和分布式限流,这次我们继续在这块功能上推进,实现一个秒杀系统,采用spring boot 2.x + mybatis+ redis + swagger2 + lombok实现。 先说说基本流程,就是提供一个秒杀接口,然后针对秒杀接口进行限流,限流的方式目前我实现了两种,上次 阅读全文
posted @ 2019-01-27 09:42 黄青石 阅读 (2860) 评论 (4) 编辑
摘要:随着现在分布式越来越普遍,分布式锁也十分常用,我的上一篇文章解释了使用zookeeper实现分布式锁(传送门),本次咱们说一下如何用Redis实现分布式锁和分布限流。 Redis有个事务锁,就是如下的命令,这个命令的含义是将一个value设置到一个key中,如果不存在将会赋值并且设置超时时间为30秒 阅读全文
posted @ 2019-01-19 10:14 黄青石 阅读 (1509) 评论 (0) 编辑