- 博客(1016)
- 收藏
- 关注
转载 JAVA设计模式之工厂模式
原文:https://www.cnblogs.com/carryjack/p/7709861.html1.工厂模式简介工厂模式用于对象的创建,使得客户从具体的产品对象中被解耦。2.工厂模式分类这里以制造coffee的例子开始工厂模式设计之旅。我们知道coffee只是一种泛举,在点购咖啡时需要指定具体的咖啡种类:美式咖啡、卡布奇诺、拿铁等等。/*...
2019-09-05 11:16:00
320
转载 java反射与动态代理的理解
原文:https://www.cnblogs.com/jacksontao/p/8552357.html一、什么是反射机制? 反射的官方定义是这样的:在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。 讲的通俗一点的话就是,对...
2019-09-05 10:20:00
314
转载 线程死锁代码
/** * @author hollis */public class JStackDemo { public static void main(String[] args) { Thread t1 = new Thread(new DeadLockclass(true));//建立一个线程 Thread t...
2019-09-04 16:35:00
343
转载 生产环境碰到系统CPU飙高和频繁GC系统反应慢,你要怎么排查?(转)
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jsta...
2019-09-03 10:41:00
235
转载 利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法
原文:https://www.jb51.net/article/29962.htm当前很多应用都适用字符串char(15)来存储IP地址(占用16个字节),利用inet_aton()和inet_ntoa()函数,来存储IP地址效率很高,适用unsigned int 就可以满足需求,不需要使用bigint,只需要4个字节,节省存储空间,同时效率也高很多mysql>...
2019-09-03 09:24:00
108
转载 spring boot 过滤器、拦截器的区别与使用
原文:https://blog.csdn.net/heweimingming/article/details/79993591拦截器与过滤器的区别:1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。 如下图: 2、拦截器可以获取IOC容器中的各个bean,而过...
2019-09-02 14:09:00
64
转载 消息中间件面试题:如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时呢?...
面试题如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?面试题剖析你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了;或者消费的速度极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是这整个就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,导致...
2019-09-01 16:22:00
122
转载 如何保证消息队列的高可用
RabbitMQ 的高可用性RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用性的,我们就以 RabbitMQ 为例子讲解第一种 MQ 的高可用性怎么实现。RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。单机模式单机模式,就是 Demo 级别的,一般就是你本地启动了玩玩儿的????,没人生产用单机模式。普通集群模式(无高可用性)普通集群...
2019-09-01 16:15:00
62
转载 消息中间件选型分析
原文:https://blog.csdn.net/java_zyq/article/details/80022391消息中间件选型分析目录一、概述 什么是消息中间件?二、消息队列的使用场景 为什么使用消息队列? 消息队列有什么优缺点?三、目前流行的消息队列优缺点对比四、总结 ...
2019-09-01 16:13:00
80
转载 消息中间件 消息丢失怎么办
如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?如果说你这个是用 MQ 来传递非常核心的消息,比如说计费、扣费的一些消息,那必须确保这个 MQ 传递过程中绝对不会把计费消息给弄丢。消息中间件各种面试题:消息中间件面试题:消息丢失怎么办?消息中间件面试题:消息队列的优缺点,区别消息中间件面试题:消息中间件的高可用消息中间件面试题:如何保证消息的顺序性消息中间件...
2019-09-01 16:08:00
146
转载 spring的@Scheduled定时任务,同一时间段的定时任务只会执行一个,其余的会被阻塞,@Scheduled注解定时任务并发执行解决办法,即多线程运行定时任务...
原文:https://blog.csdn.net/qq_35937303/article/details/88851064现有两个定时任务@Component("aa")public class aa { @Scheduled(cron = "0 44 17 * * ?") public void bb() { try { ...
2019-08-29 13:31:00
711
转载 事务@Transactional
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked如果遇到checked意外就不回滚。如何改变默认规则:1 让checked例外也回滚:在整个方法前加上 @Tra...
2019-08-29 10:38:00
65
转载 Guava Cache 工具类
maven依赖<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version></dependency>...
2019-08-29 10:10:00
447
转载 一个线上JVM的CPU资源占用过高问题的排查
原文:https://www.iteye.com/blog/tyrion-2293369上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题了,现在将问题排查步骤总结记录一下。1.通过top命令查看当前机器的CPU使用情况此时发现如果是Java的进程占用过高,并且一直下不来,则排查是什么线程导致占比过高。以...
2019-08-28 14:57:00
500
转载 Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级
原文链接:https://blog.csdn.net/tongdanping/article/details/796473371、锁升级锁的4中状态:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态(级别从低到高)(1)偏向锁:为什么要引入偏向锁?因为经过HotSpot的作者大量的研究发现,大多数时候是不存在锁竞争的,常常是一个线程多次获得同一个锁,因此如果每次都要...
2019-08-28 09:54:00
91
转载 Redis持久化 - RDB和AOF
原文:https://segmentfault.com/a/1190000016021217一、持久化的作用1. 什么是持久化持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化Redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。2. 持久化的实现方式快照方式持久化快照方式持久化就是在某...
2019-08-27 12:49:00
71
转载 自增主键用完了怎么办
原文:https://www.cnblogs.com/rjzheng/p/10669043.html在面试中,大家应该经历过如下场景面试官:"用过mysql吧,你们是用自增主键还是UUID?"你:"用的是自增主键"面试官:"为什么是自增主键?"你:"因为采用自增主键,数据在物理结构上是顺序存储,性能最好,blabla..."面试官:"那自增主键达到最大值了,用完了怎么办...
2019-08-27 11:35:00
75
转载 谈谈线上CPU100%排查套路
原文:https://www.cnblogs.com/rjzheng/p/10315250.html不知道在大家面试中,有没有遇到这个问题生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢?这个问题分为两版回答!高调版对不起,我是做研发的,这个问题在生产上是不可能遇见的!因为研发是不可能直接操作生产服务器,如果贵公司研发能...
2019-08-27 11:15:00
92
转载 分布式之消息队列复习精讲
原文:https://www.cnblogs.com/rjzheng/p/8994962.html本文大概围绕如下几点进行阐述:为什么使用消息队列?使用消息队列有什么缺点?消息队列如何选型?如何保证消息队列是高可用的?如何保证消息不被重复消费?如何保证消费的可靠性传输?如何保证消息的顺序性?我们围绕以上七点进行阐述。需要说明一下,本文不是...
2019-08-27 11:00:00
59
转载 Redis 总结精讲
原文:https://www.cnblogs.com/rjzheng/p/9096228.html本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解...
2019-08-27 10:32:00
80
转载 Spring cloud架构中利用zuul网关实现灰度发布功能
蓝绿发布、金丝雀发布(灰度发布)、AB测试首先,了解下这几种发布方式的基础概念。目前常见的发布策略有蓝绿发布、金丝雀发布(灰度发布)、AB测试这几种,在国内的开发者中,对这几个概念有独立的理解。蓝绿发布通常被大家成为热部署;金丝雀发布在国内的名头完全被他的变种发布方式盖过了,主要是灰度发布与AB测试,下面来详细的为大家解释一下他们之间的异同。蓝绿发布在发布的过...
2019-08-27 09:51:00
718
转载 Spring Cloud注册中心Eureka设置访问权限并自定义鉴权页面
原文:https://blog.csdn.net/a823007573/article/details/88971496使用Spring Security实现鉴权1. 导入Spring Security的jar包。<!--spring security--><dependency> <groupId>org.springf...
2019-08-27 09:19:00
333
转载 Eureka 中服务下线的几种方式
原文:https://blog.csdn.net/qq_15071263/article/details/85276486#1_6Eureka 中服务下线的几种方式1、直接停掉服务根据默认的策略,如果在一定的时间内,客户端没有向注册中心发送续约请求,那么注册中心就会将该实例从注册中心移除,但是有缺陷,因为服务直接停掉后,实例仍然会在注册中心存在一小段时间,也有可能注册中心直接认...
2019-08-26 15:10:00
196
转载 ExecutorService java多线程分割list运行
调用方法 int threadNum = 7; while(true) { List<FaceAnalyseImage> list = faceAnalyseImageMapper.selectAllWaitDetectLimit2000(); i...
2019-08-26 12:58:00
532
转载 Mysql InnoDB行锁不使用索引锁表的时候会锁整张表
原文:http://www.thinkphp.cn/topic/41577.html如果使用针对InnoDB的表使用行锁,被锁定字段不是主键,也没有针对它建立索引的话。行锁锁定的也是整张表。锁整张表会造成程序的执行效率会很低。具体测试步骤如下:1. 创建测试表注意表类型设置成为InnoDB2. 插入测试数据3. 不使用索引的情况,线程1进行查询结果如下这时候来启动另一个查...
2019-08-26 11:42:00
540
转载 Java中线程池,你真的会用吗?ExecutorService ThreadPoolExcutor
原文:https://www.hollischuang.com/archives/2888在《深入源码分析Java线程池的实现原理》这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理。在文中有这样一段描述:可以通过Executors静态工厂构建线程池,但一般不建议这样使用。关于这个问题,在那篇文章中并没有深入的展开。作者之所以这么说,是因为这种创...
2019-08-26 10:58:00
124
转载 Zabbix 3.0 从入门到精通(zabbix使用详解)
原文:https://www.cnblogs.com/clsn/p/7885990.html第1章 zabbix监控1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/服务器 的可用性1.1.1 网站可用性 在软件系统的高可靠性(也称为可用性,英文描述为HA,High Avai...
2019-08-26 09:28:00
161
转载 springcloud中微服务的优雅停机(已验证)
大部分项目部署中,为了方便,可能都直接使用kill -9 服务的pid来停掉服务。但是由于Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提供者然后出错。可以采用以下方式来解决:核心是先调用方法主动通知Eureka注册中心服务下线,然后再停掉服务。本文会介绍几种eureka 注册中心服务下线的方式最不可取的就是直接使用ki...
2019-08-25 17:57:00
740
转载 SpringCloud eureka
参考文章:https://segmentfault.com/a/1190000017412946eureka元数据Eureka的元数据有两种,分别为标准元数据和自定义元数据。标准元数据:主机名、IP地址、端口号、状态页和健康检查等信息,这些信息都会被发布在服务注册表中,用于服务之间的调用。自定义元数据:自定义元数据可以使用eureka.instance.metada...
2019-08-25 17:50:00
137
转载 Spring Boot实战:静态资源处理
做web开发的时候,我们往往会有很多静态资源,如html、图片、css等。那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问。但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理?一、最笨的方式...
2019-08-25 15:43:00
100
转载 你真的理解CountDownLatch与CyclicBarrier使用场景吗?
原文:https://blog.csdn.net/zzg1229059735/article/details/61191679相信每个想深入了解多线程开发的Java开发者都会遇到CountDownLatch和CyclicBarrier,大家也在网上看到各种介绍原理,代码的,以及他们区别(应付面试)的,但是很少能讲清楚:他们到底有啥作用,怎么用,应用那些场景?为什么面试总会遇到?...
2019-08-25 11:54:00
92
转载 循环屏障CyclicBarrier以及和CountDownLatch的区别
原文:https://www.cnblogs.com/twoheads/p/9555867.html答案:CountdownLatch阻塞主线程,等所有子线程完结了再继续下去。Syslicbarrier阻塞一组线程,直至某个状态之后再全部同时执行,并且所有线程都被释放后,还能通过reset来重用。CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障...
2019-08-25 11:46:00
121
转载 CyclicBarrier 使用详解
原文:https://www.jianshu.com/p/333fd8faa56e1. CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会...
2019-08-25 11:40:00
60
转载 i++和++i的真正区别
原文:https://blog.csdn.net/c15158032319/article/details/78209740记得刚开始学编程的时候还是从c语言开始的,还是看的谭浩强写的那本书,上面对介绍i++和++i的区别如下:i++是先赋值,然后再自增;++i是先自增,后赋值。用代码表示就是:若 a = i++; 则等价于 a=i;i=i+1;而 a = ++i; 则等价于 ...
2019-08-25 11:11:00
93
转载 数据库优化方案之分库分表
原文:https://www.jianshu.com/p/2b75742e9941分库分表概述读写分离分散数据库读写操作压力,分库分表分散存储压力适用场景类似读写分离,分库分表也是确定没有其他优化空间之后才采取的优化方案。那如果业务真的发展很快岂不是很快要进行分库分表了?那为何不一开...
2019-08-24 22:34:00
88
转载 聊聊ThreadLocal源码(基于JDK1.8)
原文:https://cloud.tencent.com/developer/article/1333298聊聊JDK源码中ThreadLocal的实现主要方法:ThreadLocal的get方法 ThreadLocal之get流程: 1、获取当前线程t; 2、返回当前线程t的成员变量ThreadLocalMap(以下简写map); 3、map不为null,则获取以...
2019-08-24 19:53:00
98
转载 HashMap扩容死循环问题
原文:https://blog.csdn.net/Leon_cx/article/details/81911223下面我们来模拟一下多线程场景下扩容会出现的问题:假设在扩容过程中旧hash桶中有一个单链表,单链表中只有一个节点A,也就是e引用的对象。新hash桶中有一个单链表,单链表中的节点是B->C,也就是newTable[i]引用的对象。单线程扩容如果只有一个...
2019-08-24 18:35:00
159
转载 Synchronized偏向锁和轻量级锁的升级
原文:https://blog.csdn.net/tongdanping/article/details/79647337锁的优化1、锁升级锁的4中状态:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态(级别从低到高)(1)偏向锁:为什么要引入偏向锁?因为经过HotSpot的作者大量的研究发现,大多数时候是不存在锁竞争的,常常是一个线程多次获得同一个锁,因此如果每次...
2019-08-23 16:16:00
82
转载 【Java并发编程之深入理解】Synchronized的使用
原文:https://blog.csdn.net/zjy15203167987/article/details/825317721.为什么要使用synchronized在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchroni...
2019-08-23 14:13:00
79
转载 ConcurrentHashMap 1.8为什么要使用CAS+Synchronized取代Segment+ReentrantLock
原文:https://www.cnblogs.com/yangfeiORfeiyang/p/9694383.html大家应该都知道ConcurrentHashMap在1.8的时候有了很大的改动,当然,我这里要说的改动不是指链表长度大于8就转为红黑树这种常识,我要说的是ConcurrentHashMap在1.8为什么用CAS+Synchronized取代Segment+Reent...
2019-08-23 13:31:00
258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人