分享传递价值

一个健全的心态比一百种智慧都有力量!

使用Quartz实现分布式定时任务(包含管理界面)

引言 年底出去面试的的时候,被问到如下问题: 定时任务是如何实现的?定时任务是如何监控的?因为我们项目中的定时任务就是使用Spring的@Scheduled(cron = "0 59 23 * * ?")来实现的,至于监控方面的,没有,就是通过在定时任务代码里...

2019-01-01 18:43:34

阅读数 452

评论数 0

高并发秒杀功能架构设计

 本文包含的知识点 秒杀场景简述及分析 使用乐观锁控制库存数量 结合redis缓存层减小DB压力 使用zookeeper分布式锁控制库存数量 kafka异步削峰 接口限流 jmeter压测接口 前阵子经常开发一些秒杀类型的项目,故而抽时间总结下。把我们产品的流程图大致勾勒了下: ...

2018-12-18 23:09:34

阅读数 729

评论数 4

Mysql慢查询日志详解(slow_query_log)

引言 Mysql中比较重要的日志包括二进制日志、relay_log(中继日志)、慢查询日志、redo_log、undo_log等,本篇来聊一聊mysql的慢查询日志。 程序中定位一个执行慢的SQL可以根据慢查询日志,默认情况下,慢查询日志禁用,因为开启慢查询日志或多或少的会对mysql的性能产...

2018-11-03 16:13:38

阅读数 123

评论数 0

jdk动态代理和cglib动态代理详解

本文内容概括: 静态代理概述 基于继承方式实现静态代理 基于聚合方式实现静态代理 jdk动态代理实现 如何实现一个HashMap的动态代理类 cglib动态代理实现 jdk和cglib代理的区别 动态代理和静态代理的区别  spring如何选择jdk和cglib代理 如上图,...

2018-08-22 15:14:11

阅读数 204

评论数 2

Guava RateLimiter实现接口API限流

Guava提供的RateLimiter可以限制物理或逻辑资源的被访问速率,咋一听有点像java并发包下的Samephore,但是又不相同,RateLimiter控制的是速率,Samephore控制的是并发量。RateLimiter的原理类似于令牌桶,它主要由许可发出的速率来定义,如果没有额外的配置...

2018-07-07 11:37:16

阅读数 1192

评论数 1

Jmeter压测java接口、Jmeter自定义变量模拟多用户压测

场景:作为开发人员经常需要进行java接口的压测,比如商品抢购、并发量大的活动接口,需要模拟多用户进行并发压测,这个时候就需要使用到Apache的Jmeter压测工具了,本篇讲述的是使用Jmeter自定义变量模拟多用户压测,通俗点讲:就是把参数都放在一个文件中,Jmeter调用接口时动态的去读取,...

2018-06-20 21:55:57

阅读数 296

评论数 0

高并发处理之接口限流

最近开发的抢购活动上线后发现了两个比较明显的问题,其一:活动一开始,接口访问量剧增;其二:黑名单中增加了一大批黑名单用户(或者说IP),这其中就包含了一些恶意用户或机器人刷接口。 针对一些高并发的接口,限流是处理高并发的几大利剑之一。一方面,限流可以防止接口被刷,造成不必要的服务层压力,另一方面...

2018-06-13 18:24:56

阅读数 4329

评论数 2

原子操作类AtomicInteger详解

为什么需要AtomicInteger原子操作类? 对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。测试代码如下: public clas...

2018-06-08 15:33:17

阅读数 21939

评论数 7

Redis缓存穿透、缓存雪崩、redis并发问题分析

把redis作为缓存使用已经是司空见惯,但是使用redis后也可能会碰到一系列的问题,尤其是数据量很大的时候,经典的几个问题如下: (一)缓存和数据库间数据一致性问题 分布式环境下(单机就不用说了)非常容易出现缓存和数据库间的数据一致性问题,针对这一点的话,只能说,如果你的项目对缓存的要求是强...

2018-06-01 22:16:35

阅读数 9541

评论数 5

java时间戳与Date相互转换、日期格式化、给日期加上指定时长、判断两时间点是否为同一天

项目经常涉及到时间戳和Date类型的相互转换、时间类型处理等,我有时候一段时间不写就又忘记了,故而写篇笔记备忘下! 本文主要包含的有: 时间戳与Date类型的相互转换 判断是否为同一天 日期格式化 给日期加上指定时长 得到指定时间节点的Date 1、时间戳转Date 注:以下的方法中...

2018-05-31 23:20:44

阅读数 12641

评论数 2

Java中的线程池和异步任务详解

引言 java中经常需要用到多线程来处理一些业务,我们非常不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程,那样势必有创建及销毁线程耗费资源、线程上下文切换问题,这个时候引入线程池比较合理。有些时候也需要把多线程的逻辑给异步话,接口不需要等待子线程逻辑执行完就马上返回,...

2018-04-08 19:07:23

阅读数 585

评论数 0

HashMap put get方法工作原理详解

HashMap基于Map接口,其提供了Map接口中几乎所有的操作,允许空值和空键,不保证元素的次序,线程不安全。由于数组查询操作速度快,链表插入更改操作快,hashmap底层即采用这两种数据结构来实现。 截图取自《java编程思想》 jdk 1.7版本HashMap put()方法 结合p...

2018-03-15 14:18:40

阅读数 127

评论数 0

Json和Bean间的序列化和反序列化(JSONObject、Gson、FastJson的使用)

json格式校验 日常开发经常涉及到和json的交互,以下原因会常常会使json格式错误: 1、json串的非数字型的键值没有双引号 2、json中存在\t这样的表符,这个比较难发现 3、json中缺少{}或[]导致结构不完整 可以通过FE助手或网页版的json校验json格式正确与否,...

2017-10-16 10:13:22

阅读数 351

评论数 0

Mysql主从复制-基于GTID的复制

前言 mysql的复制能减轻数据库的读负载压力,同时可作为主库的数据备份。mysql的复制功能(异步,可能会导致同一时间点上数据不一致问题)是基于二进制日志增量进行的。建议在同一个IDC机房中进行复制,以减少网络带来的问题。 mysql的复制方式主要有两种,SBR(基于SQL语句复制)和RBR...

2017-04-16 18:40:25

阅读数 459

评论数 0

Mysql主从复制-基于日志点的复制

前言 mysql的复制能减轻数据库的读负载压力。mysql的复制功能(异步,可能会导致同一时间点上数据不一致问题)是基于二进制日志增量进行的。同时建议在同一个IDC机房中进行复制,以减少网络问题带来的问题。 mysql的复制方式主要有两种,SBR(基于SQL语句复制)和RBR(基于行复制),实...

2017-04-16 16:51:53

阅读数 238

评论数 0

Mysql二进制日志详解

引言 注:图片取自网络 提一下比较重要的几个: 重做日志(Redo Log):重做日志是实现mysql事务的持久性的原理之一,当新增数据时,Redo Log会备份新数据,在事务提交前,只要持久化Redo Log即可,而不需要持久化实际数据,如果这时候mysql系统崩溃,虽然数据还没有持久化...

2017-04-16 08:49:50

阅读数 876

评论数 0

单例模式详解

 单例模式 单例模式: 一个类有且只有一个实例,且提供一个全局访问方法来访问这个实例。 核心点: 控制类实例数量 范围: 同一个JVM环境下 实现思路: 该实例类提供私有的构造函数,防止外部类创建该类实例 定义该类对象为私有且静态类型 提供一个全局可以访问该类实例的静态方法  饿汉式...

2017-04-09 09:50:47

阅读数 201

评论数 0

intellij idea查看方法被哪些类引用过?

点击这里查看 <intellij idea使用教程汇总篇> 场景: 项目开发时候经常需要修改某个类的方法,于是想要看下项目里这个类的方法被哪些类引用过,一种比较挫的方式是根据方法名字 Ctrl+Shift+f 进行全局搜索,这样可以实现却非最佳实践,i...

2019-01-30 11:30:58

阅读数 83

评论数 0

java list和map的初始化

项目中经常需要使用到ArrayList、HashMap集合的初始化操作,下面分享几种ArrayList实例化的方法,都是项目中实际用到的,方法二、三同样适用于HashMap等其他常用的集合类 方法一:普通版 List<String> lis...

2019-01-29 16:53:00

阅读数 34

评论数 0

知乎7万赞回答:你思考问题的方式,决定了你的层次

重要声明:本文出自公众号:《管理的常识》"知乎7万赞回答:你思考问题的方式,决定了你的层次"一文。本人觉得写得蛮好,分享给大家,共勉!文章有点长,看完全文需要点耐心…… 所谓厉害的人,遇到问题时的思维模式,跟我们的差别在哪? 这篇文章里,作者从“一家零售店的...

2019-01-29 10:25:50

阅读数 825

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭