Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Quartz采用API的方式对任务进行管理,从而可以避免上述问题,但是同样存在以下问题:问题一:调用API的的方式操作任务,不人性化;问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务;问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;而XXL-JOB通过执行器实现“...阅读全文>>
Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Quartz采用API的方式对任务进行管理,从而可以避免上述问题,但是同样存在以下问题:问题一:调用API的的方式操作任务,不人性化;问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务;问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;而XXL-JOB通过执行器实现“...阅读全文>>
Spring-Kafka 提供消费重试的机制。当消息消费失败的时候,Spring-Kafka 会通过消费重试机制,重新投递该消息给 Consumer ,让 Consumer 重新消费消息 。默认情况下,Spring-Kafka 达到配置的重试次数时,【每条消息的失败重试时间,由配置的时间隔决定】Consumer 如果依然消费失败 ,那么该消息就会进入到死信队列。Spring-Kafka 封装了消费重试和死信队列, 将正常情况下无法被消费的消息称为死信消息(Dead-Letter Message),将存储死信消息的特殊队列称为死信队列(Dead-Letter Queue)。我们在应用中可以对死信...阅读全文>>
现如今又要写一个关于下午的业务,因此再次编写测试用例,总结了两种下载方式。首先介绍一个14年就写的文章,Http断点下载实简单讲解(http://www.javacui.com/java/98.html )基于Spring的ResponseEntity/** * SpringMVC方式 */ @GetMapping("/downSpring") public ResponseEntity<byte[]> down() throws Exception { &n...阅读全文>>
双重检查锁(Double-Check Locking),顾名思义,通过两次检查,并基于加锁机制,实现某个功能。在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的getInstance1()错误代码:public class Singleton { private static volatile Singleton INSTANCE = null; private Singleton()&n...阅读全文>>
打开AutoType功能在1.2.25之后的版本,以及所有的.sec01后缀版本中,autotype功能是受限的,和之前的版本不同,如果在升级的过程中遇到问题,可以通过以下方法配置。注意:如果配置了safeMode,配置白名单也是不起作用的。一、添加autotype白名单添加白名单有三种方式,三选一,如下:1. 在代码中配置ParserConfig.getGlobalInstance().addAccept("com.taobao.pac.client.sdk.dataobject.");如果有多个包名前缀,分多次addAccept2. 加上JVM启动参数 &nb...阅读全文>>
我的沉默不语,并不是无话可说,而是我这一路走过来,一言难尽。一轮明月挂长空,自古悲欢各不同。只见浮云流水去,青山总在画屏中。月似铜镜树似扇,苍穹划过数鸿雁。心思婵娟归似箭,高歌伴吾寥寂谈。残阳半树高,如镜似火烧,凄凉伴孤影,群鸟欲归巢。一月一树一人, 一步一动一走。一思一想一念,一人一天一生。夕阳西下行路艰,寒鸦老树伴孤魂。本是红尘悲伤客,来生不做痴心人!枯树难挡落日,归燕且知日暮;吾岂不惧夜黑?只是上孝下扶!一言难尽的巧合,一路走来的艰辛,无话可说的境界,沉默不语的长空,推开门,烟火中的红尘。我问青山几时老,青山问我几时闲,青山青时我未闲,待得闲时与山眠。落日余晖在,落叶树枝由。落发红尘里,...阅读全文>>
自1917年俄国十月革命胜利后,马克思主义迅速传遍到我国,经过“五四”爱国运动,最早接受马列主义的革命知识分子李大钊、陈独秀、毛泽东、董必武等人,相继在各地成立共产主义小组,宣传马列主义,从事工人运动。1921年7月23日,各地共产党早期组织的代表会集上海法租界望志路106号,在这里举行中国共产党的第一次全国代表大会。7月1日作为中国共产党的诞辰纪念日,是毛泽东同志于1938年5月提出来的。《论持久战》中提出:“七月一日,是中国共产党建立的十七周年纪念日”。阅读全文>>
首先我们要知道一个问题:HttpServletRequest的输入流只能读取一次,如果你在拦截器读取了Body的参数,那么在Controller再次读取时,会直接报错,原因如下:我们先来看看为什么HttpServletRequest的输入流只能读一次,当我们调用getInputStream()方法获取输入流时得到的是一个InputStream对象,而实际类型是ServletInputStream,它继承于InputStream。InputStream的read()方法内部有一个postion,标志当前流被读取到的位置,每读取一次,该标志就会移动一次,如果读到最后,read()会返回-1,表示已...阅读全文>>
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步...阅读全文>>