自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LittleCadet

明天的我,在为我等待

  • 博客(31)
  • 收藏
  • 关注

原创 spring的task和quartz的区别

前言以前每次看定时任务,总是感觉怪怪的,因为每一种的写法都不一样,感觉没有套路,这不好.其实,spring Task和Quartz都是定时任务的实现方式,甚至java中的timer也是定时任务的实现方式(只是没人用,个人没用过)。插一嘴,spring task实际上是一种轻量级的quartz,实现的方式比quartz简单很多quartz:默认多线程异步执行能被集群实例化,支持分布式部署...

2019-01-02 16:42:59 6505 1

原创 对DDS中间件的理解与操作

1.DDS的定义:Data Distribution Service:是一款信息分发的中间件,支持分布式实时通信的服务2.DDS处理过程:dds作为中间件:是oracle的客户端(类似于plsql):用户将sql传递给dds处理,之后dds转交给oracle处理,oracle将处理结果反馈给dds,dds将结果反馈给用户3.DDS模块子系统模块职责DDS Clien...

2018-12-20 10:56:19 8543

原创 对maven的深入理解《三》

前面两篇是对maven的基础的介绍,这一篇更侧重于实际的运用1.maven设置编译级别的两种方式用插件的形式:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <...

2018-09-25 20:48:37 315

原创 对maven的深入理解《二》

1.maven与ant的基本区别: 1. Maven作为一个构建工具只要编写比Ant所需少得多的脚本就能实现同样的构建。 2. Maven还有很多Ant没有的高级特性,例如依赖管理等,这一切使得Maven不仅是构建工具,更是项目管理工具,并越发流行起来。2.Maven拥有三套相互独立的生命周期,它们分别为clean,default和site: 1. Clean Lifecycle在...

2018-09-04 08:49:29 401

原创 对maven的深入理解

最近需要做maven的配置管理,这里做个记录,有延伸。1.对本地仓库的配置: 本地仓库不宜放在C盘:原因:a.本地仓库大小约为1G,占用内存 B.万一重装系统,C盘内容消失,build workSpace时间漫长 更改本地仓库方法:a.在maven安装包的conf/settings.xml中设置D:\tools\maven\m2\r...

2018-08-26 21:54:14 540

原创 对Redis的深入理解与解析

最近换了项目中,突然碰到redis了,对他的理解很有限,这里做个分享。1.Redis的连接池(JedisPool)说到连接池,我的第一反应是这可能跟数据源的C3P0类似。结果一查,恩,差不多。Redis是一种C/S的模式,但是频繁的链接会导致花费在底层链接上的时间大大增加(因为Redis是基于内存的,读取效率高,假设一次数据交互总共用时30ms,超高性能的Redis数据库处理数据所花的时间可能不到...

2018-04-30 22:12:14 714

原创 观察者模式的深度解析

今天,面试的时候,面试官让我手写观察者,实现zk的订阅和取消订阅以及及时推送的功能!!!妈啊,写了2页纸的代码,结果只对了60%.......恶心到家了。。。。观察者模式的定义:在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。(即为发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。)观察者模式仔细分:可以分为4个角色...

2018-04-18 23:33:23 296

转载 Memcache线上常见问题(缓存雪崩、缓存无底洞、永久数据被踢)

缓存雪崩现象一般是由于某个节点失效,导致其它节点的缓存命中率下降,缓存中缺失的数据直接去数据库查询,短时间内造成数据库服务器崩溃。或者是由于缓存周期性失效,比如设置每隔6个小时失效一次,那么每6个小时将会有一个请求峰值,严重的话,也会导致数据库崩溃。重启DB后,短期内又被压垮,但缓存又会恢复一点,DB反复重启多次,直至缓存重建完毕,才能恢复稳定。如果小网站,平时访问量不大的情况下,数据缓存的时间不...

2018-04-17 08:26:07 284

原创 MEMCACHE的内存管理和删除策略

最近在看MEMCACHE的缓存机制,发现有些东西不是很明白,追加一篇博客。一.内存碎片在不断的申请和释放内存的时候,实际上会有一些很小的碎片空间没有使用价值,那么这就是内存碎片(就好像GC在复制-清除的时候,会出现内存碎片的不足,是同一个道理)。二.MEMCACHE的内存管理1.内存管理的机制是:slab-allocator:就是说,会将内存划分成多个的slab-class的仓库,而每个仓库又含有...

2018-04-15 22:11:13 1011

原创 MEMCACHE缓存的深度解析

笔记上传:一:Memcahce的深度解析:1.Memcache是什么:Memcache是一套分布式的高速缓存系统,最早是为了LiveJournal服务的,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。2.MemCache的工作流程如下:它采用了c/s的模式,先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不...

2018-04-15 10:53:33 1378

原创 SOAP协议的深度解析

笔记上传:1.soap与http的区别:HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。( HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等。。。。 )而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等   (SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信。)2.s...

2018-04-14 18:30:02 6400

原创 HTTP协议与FTP协议的区别

项目中应用到ftp,将ftp的笔记上传一下。简单的说:HTTP是Hyper Text Transfer Protocol,超文本传输协议;面向网页的。FTP是File Transfer Protocol,文件传输协议;面向文件的。1.FTP(1)FTP比HTTP复杂FTP和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂...

2018-04-14 16:56:58 13486

原创 设计模式 代理模式和装饰者模式的区别

设计模式中有很多种,这里介绍下面试中可能会被问到的一个问题:代理模式和装饰者模式的区别。先看一下代理模式的设计图:再看一下代理模式的代码:第一步:定义一个接口:package com.interview.designModel.agentModel;/** * 第一步:定义一个接口 * @author EdwardShen * * 2018年4月13日 */public interf...

2018-04-13 08:42:02 598 1

原创 高并发中多线程的通信方式

多线程需要通信的原因:对于系统中的各个子线程来说,如果要完成一个系统功能,同样需要各个线程的配合,这样就少不了线程之间的通信与协作。多线程中的通信方式:有4种:while循环,通过synchronize配合final 和native修饰的wait(),notify(),notifyAll(),  管道流,工具类1).while循环:通过循环判断是否达到某个条件,再执行代码:import java....

2018-04-03 23:48:04 773

原创 进程之间的通信方式

进程之间需要通信的原因:即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须互相通话。进程之间的通信方式有6种:管道和有名管道,信号,消息队列,共享内存,信号量,套接字 (记忆方式:管信消,共信套)1.管道及有名管道:    前者:具有亲缘关系的父子进程间的通信    后者:有无亲缘关系均可。2.信号:  在软件层上对终端机制的一种模拟,通知有事发生,与处理器收到一个中断...

2018-04-02 22:23:39 307

原创 多线程中Future与FutureTask的区别和联系

线程的创建方式中有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,于是就有了Callable接口,Future接口与FutureTask类的配和取得返回的结果。我们先回顾一下java.lang.Runnable接口,就声明了run(),其返回值为void,当然就无法获取结果。public interface Run...

2018-03-29 00:04:29 30013 5

转载 多线程的实现方式

Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService来创建线程池,配合Callable和Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。 1、继承Thread类创建线程Thread类本质上是实现了Runnable...

2018-03-28 22:19:05 334

原创 线程池的四种实现方式

ExecutorService是线程池接口。它定义了4中线程池:1.newCachedThreadPool:底层:返回ThreadPoolExecutor实例,corePoolSize为0;maximumPoolSize为Integer.MAX_VALUE;keepAliveTime为60L;unit为TimeUnit.SECONDS;workQueue为SynchronousQueue(同步队列...

2018-03-28 21:59:14 9906

转载 对线程池的深入理解

1.需要线程池的原因:以前,线程执行完任务后就会销毁,无法复用,效率低下,且线程的频繁创建和销毁需要时间。所以线程池出现:可以线程复用,执行完任务的线程去缓存队列中取任务来执行。(而不是给空闲的线程来取任务,因为多了一步线程的任务分配。)一.Java中的ThreadPoolExecutor类  java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类...

2018-03-27 23:47:48 228

原创 Ant build.xml实例讲解

Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。make是基于shell命令而进行操作的。而ant不然,他依靠xml,所以也给了他跨平台的特性。而且无需配置ant环境,ant不需要引入任何jar包,即可使用1.java类:package com.ant;/** * TestAnt * @author EdwardShen...

2018-03-21 22:56:33 730

原创 华为BME框架

bme框架中usf.properties:    1.zk服务器的地址      zk.server.url=100.106.25.124:2181   2.dsf的接口鉴权       dsf.authentication.enable-false  3.dsf到zk的响应时间      dsf.zk.session.timeout=200000      dsf.zk.center.timeo...

2018-03-15 22:15:00 3585

原创 zookeeper的快速入门《三》

1. zookeeper的环境配置:(jdk6以上)       1):集群模式的配置:(超过半数则可用)            A.  在zoo.cfg文件中配置服务器的格式:server.id=host:port1:port2                      Host:vm的ip                  Port1:follower和leader服务器的通信端口。(可任意填...

2018-03-15 22:09:39 195

原创 zookeeper的快速入门《二》

1. zookeeper的六大应用场景:A. 数据的发布和订阅:一方发布数据,另一方得到数据a) 数据的订阅有2种方法:推模式和拉模式。a) 推模式:服务器主动向客户推送消息。b) 拉模式:客户端主动去服务器获取数据(通常为定时轮询的方式)b) 发布者将数据发布到zk集群节点上,订阅者通过告知服务器,对该节点感兴趣,则当服务器的该节点数据发生变化时,会通知客户端,则客户端,可以去服务器获取信息。B...

2018-03-15 22:04:13 169

原创 zk的快速入门

1. zookeeper是一个源码开放的分布式数据一致性解决方案,它将复杂的分布式一致性服务封装起来,构成一个高效可靠地原语集,并提供接口给用户使用。 2. Zk的目的:1).解决分布式集群中应用系统一致性的问题。                     2).提供类似于文件系统的目录节点的方式来存储数据,但并非专门存储数据,而是维护和监控存储数据的变化。 3. 分布式:把一个计算任务分解成若干个...

2018-03-15 21:40:23 357

转载 Mybaitis的缓存机制(三)

MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。本文将全面分析MyBatis的二级缓存的设计原理。1.MyBatis的缓存机制整体设计以及二级缓存的工作模式          如上图所示,当开一个会话时,一个SqlSession对象会使用一个Executor对象来完成会话操作,MyBatis的二级缓存机制的关键就是对这个E

2017-12-17 11:28:47 261

转载 Mybatis的缓存机制(二)

0.写在前面        MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上。MyBatis提供了一级缓存、二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能。本文的目的则是向读者详细介绍MyBatis的一级缓存,深入源码,解析MyBatis一级缓存的实现原理,并且针对一级缓存的特点提出了在实际使用过程中应该注意的事项。

2017-12-17 11:26:48 164

转载 Mybatis的缓存机制(一)

本文主要讲解MyBatis非常棒的缓存机制的设计原理,给读者们介绍一下MyBatis的缓存机制的轮廓,然后会分别针对缓存机制中的方方面面展开讨论。MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存:       一级缓存是Session会话级别的缓存,位于表示一次数据库会话的SqlSession对象之中,又被称之为本地缓存。一级缓存是MyBatis内部实现的一个特性,用户不

2017-12-17 11:23:59 210

原创 类加载器

作用:在类加载的第一阶段“加载”中,通过一个类的全限定名来获取定义此类的二进制字节流,而完成这个动作的代码块,就是类加载器类的唯一性:由是否是同一个类加载器决定,与是否是同一个class文件/jvm无关分类:启动(bootStrap)类加载器:在jvm内,用c++实现标准扩展类(extension)加载器应用程序类(Application)加载器:加载classpath下的类库

2017-12-03 14:52:42 116

原创 EhCache常用缓存配置

cache元素的属性:      name:缓存名称      maxElementsInMemory:内存中最大缓存对象数      maxElementsOnDisk:硬盘中最大缓存对象数,若是0表示无穷大      eternal:true表示对象永不过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false     

2017-12-01 17:34:03 3813

转载 五种简单工厂模式

转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52798423本文出自:【张旭童的博客】系列开篇瞎BB设计模式相关的文章学习与总结,一直有意为之,一直又觉得时机不到。一 是怕自己代码经验还不够,学习了也不懂,强行理解没有意义。二 是怕自己学习了以后总结出来,万一有不对的地方,误人子弟。而在现在的公司摸爬滚打半

2017-11-30 20:02:01 215

原创 EhCache缓存框架

EhCache 是一个纯Java的进程内缓存框架,是Hibernate中默认的CacheProvider。使用EhCache缓存框架主要是为了判断重复Url,每次爬取一个网页,都把Url存储到缓存中,并且每次爬某个网页之前,都去缓存中搜索下,假如存在的话,我们就不要爬取这个网页了,不存在的话,我们就爬下网页,爬取成功后,把这个Url存储到缓存中;之所以用缓存框架,主要是速度快,相对于传

2017-11-30 10:26:41 162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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