自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

转载 RocketMQ原理与实践

RocketMQ原理与实践分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:消息的顺序问题消息的重复问题RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的?关键特性以及其实现原理

2017-02-08 08:56:19 744

转载 谷总语录2017

谷总语录2017年1月24日一、关于做人1、做一个有情商的人。2、正确看待财富。3、诚实守信,踏实做人。4、用人所长,容人所短。5、要有一颗善良、感恩的心。6、你的胸怀决定了你的一切。7、为他人着想,不要自私。8、学会负责任。9、学会忍耐,任何时候都不要抱怨。10、人的一生就是不断解决各种问题。11、不要制造矛盾和是非,要与人和谐相处。1

2017-01-25 10:52:44 416

原创 SQL Statements Summary

-- multi-tables updatingupdate (select /*+bypass_ujvc*/      a.v1 oldV1, b.v1 newV1       from t1 a, t2 b            where a.id = b.id)   set oldV1 = newV1;

2017-01-16 16:42:40 360

原创 sqluldr2 usage

Oracle数据导出工具sqluldr2可以将数据以csv、txt等文件格式导出,适用于大批量数据的导出,导出速度非常快,导出后可以使用Oracle SQL Loader工具将数据导入到数据库中。下面将介绍Sqluldr2和sqlldr在Windows平台下的数据处理过程。一、软件下载地址最新软件下载地址:http://www.anysql.net/software/sqluldr.z

2017-01-16 16:30:28 2017

原创 Common Tools Summary

批量数据导出工具sqluldr2.exe

2017-01-16 16:16:33 269

转载 SecureCRT For MAC

继续更新到8.0.2的破解,整体的破解方案都发生了的变化首先还是去 http://macabc.com/detail.htm?app_id=24 下载最新的8.0.2介于很多小白说替换之后说文件损坏,请在下载破解之前,打开系统偏好设置就是那个齿轮的APP点击安全性与隐私,点击锁,选择任何来源然后下载的破解文件发生的变化1.下载破解文件 SecureCRT

2016-12-24 12:59:01 374

原创 Java 多线程编程总结

一、多线程编程基础1.线程安全定义:       当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就被称之为是线程安全的。简言之对于线程安全类的实例进行顺序或并发的一系列操作,都不会导致实例处于无效状态。       只有对象状态可变,且存在对象共享,才需要考虑线程安全。

2016-12-23 18:38:45 930

转载 Elasticsearch与Solr

Elasticsearch与SolrElasticsearch简介*Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,

2016-12-23 18:36:44 195

转载 NIO原理图文分析及代码实现

Java NIO原理图文分析及代码实现  前言:  最近在分析Hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考: ;)和java NIO。为了能够正确地分析hadoop

2016-12-23 18:32:30 496

转载 Zookeeper基本原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

2016-12-21 17:09:17 212

转载 JVM总结-JVM启动参数详解

JVM启动参数详解文章转自:http://blog.sina.com.cn/s/blog_5dd380b90100c12r.htmlJava虚拟机(JVM)通过操作系统命令JAVA_HOME\bin\java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有

2016-12-21 16:18:25 452

转载 JVM总结-内存监视手段及各区域内存溢出解决

引言本文仅关注一些常见的虚拟机内存监视手段,以及JVM运行时数据区各个部分内存溢出的发生和对应的解决方案,总体来说属于概括性总结,涉及相对不是很深入,目的是让自己和其它初学者有一个框架性、概念性的了解,当遇到问题时有迹可循、不至于不知所措。一、虚拟机内存监视手段虚拟机常出现的问题包括:内存泄露、内存溢出、频繁GC导致性能下降等,导致这些问题的原因可以通过下面虚拟

2016-12-21 15:54:15 6317

原创 使用SolrJ创建索引

Solr 是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API 接口。用户可以通过 http请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也可以通过 Http Get 操作提出查找请求,并得到XML 格式的返回结果。所以我们可以使用httpClient作为客户端向solr服务器添加索引,但是幸运的是,solr为我们提供专门的客户端jar包,so

2016-12-21 15:07:33 1143

转载 JVM总结-垃圾回收

垃圾收集(Garbage Collection,GC)要考虑的两个问题就是垃圾检测检测到的垃圾如何回收垃圾检测 java内存运行时,程序计数器,虚拟机栈,本地方法栈这三个区域是线程私有的,所以会随着线程的消亡而消亡。而java堆和方法区则不同,只有在程序运行期间才会知道创建哪些对象,这部分内存的分配和回收都是动态的,垃圾回收器所关注的是这部分内存。 不管通过哪种算法来判断对

2016-12-21 15:03:28 219

转载 JVM总结-内存溢出分析

在实际的开发中我们可能会遇到各种各样的内存溢出(OutOfMemoryError)问题,我在开发的时候就遇到过这样的情况。当时是报的这样异常Caused by:java.lang.OutOfMemoryError:PermGen Space at java.lang.ClassLoader……1212造成这个原因的是我们的tomcat下方了好几个web程序,而且每个程序都有大量的s

2016-12-21 15:02:21 372

转载 JVM总结-JVM内存区域

人人都知道的java的一大优点就是不需要程序员去显示的分配内存和回收内存,这是由于虚拟机的自动内存管理机制帮我们搞定了这一切。下面我们就来看看虚拟机是如何划分内存的。 我们将java虚拟机划分的内存区域叫做运行时数据区域。因为只有在JVM启动后才会出现这些区域,所以叫做运行时数据区域。先来看张经典的图 程序计数器程序计数器是一块较小的内存空间,可以看作当前线程所执行的字节码

2016-12-21 15:00:33 274

转载 JVM总结-类加载机制

ClassLoader的作用(1)加载class文件进入JVM (2)审查每个类应该由谁加载,采用双亲委托机制 (3)将class字节码重新解析成JVM要求的对象格式ClassLoader结构分析protected final Class defineClass(byte[] b, int off, int len)throws ClassFormatError{

2016-12-21 14:59:24 291

转载 JVM总结-体系结构

JVM体系结构JVM的基本组成 (1)指令集:JVM指令集 (2)类加载器:在jvm启动时或者类在运行时将需要的class加载到JVM中 (3)执行引擎:负责执行class文件中的字节码指令,相当于CPU (4)运行时数据区:将内存划分成若干个区,分别完成不同的任务 (5)本地方法区:调用C或C++实现的本地方法代码返回的结果 类加载器ClassLo

2016-12-21 14:58:00 301

转载 JVM原理

一、什么是JVM    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。    Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而

2016-12-21 14:53:44 241

转载 多线程编程总结

一、多线程编程基础1.线程安全定义:       当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就被称之为是线程安全的。简言之对于线程安全类的实例进行顺序或并发的一系列操作,都不会导致实例处于无效状态。       只有对象状态可变,且存在对象共享,才需要考虑线程安全。

2016-11-18 10:13:13 971

转载 分布式事务处理 2pc 3pc

关于分布式事务、两阶段提交协议、三阶提交协议随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在分布式一致性一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么

2016-10-19 08:03:50 265

转载 Jmeter性能测试指标

Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。Label:每个 JMeter 的

2016-10-18 15:51:29 1357

转载 Paxos算法与Zookeeper

1 Paxos算法1.1 基本定义算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色:⑴proposer 提出提案,提案信息包括提案编号和提议的value;⑵acceptor 收到提案后可以接受(accept)提案;⑶learner 只能"学习"被批准的提案;算法保重一致性的基本语义:⑴决议(value)只有在被proposers

2016-10-18 09:02:19 223

转载 solr系统query检索词特殊字符的处理

solr是基于 lucence开发的应用,如果query中带有非法字符串,结果很可能是检索出所有内容或者直接报错,所以你对用户的输入必须要先做处理。输入星号,能够检索出所有内容;输入加号,则会报错。官方的处理办法(Java,因为solr是java开发的):[java] view plain copy https://svn.apache.

2016-10-17 20:26:44 1044

转载 Java并发编程之二十三:并发新特性—信号量Semaphore

出处:http://blog.csdn.NET/ns_code/article/details/17524153    在操作系统中,信号量是个很重要的概念,它在控制进程间的协作方面有着非常重要的作用,通过对信号量的不同操作,可以分别实现进程间的互斥与同步。当然它也可以用于多线程的控制,我们完全可以通过使用信号量来自定义实现类似Java中的synchronized、wait、not

2016-10-17 20:06:10 235

转载 Java并发编程之二十二:并发新特性—障碍器CyclicBarrier(含代码)

出处:http://blog.csdn.NET/ns_code/article/details/17512983    CyclicBarrier(又叫障碍器)同样是Java 5中加入的新特性,使用时需要导入Java.util.concurrent.CylicBarrier。它适用于这样一种情况:你希望创建一组任务,它们并发地执行工作,另外的一个任务在这一组任务并发执行结束前一直阻

2016-10-17 20:05:08 182

转载 Java并发编程之二十一:并发新特性—阻塞队列和阻塞栈(含代码)

出处:http://blog.csdn.NET/ns_code/article/details/17511147阻塞队列    阻塞队列是Java 5并发新特性中的内容,阻塞队列的接口是Java.util.concurrent.BlockingQueue,它有多个实现类:ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、Priority

2016-10-17 20:03:38 202

转载 Java并发编程之二十:并发新特性—Lock锁和条件变量(含代码)

出处:http://blog.csdn.NET/ns_code/article/details/17487337简单使用Lock锁    Java 5中引入了新的锁机制——Java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作。Lock接口有3个实现它的类:ReentrantLock、ReetrantRe

2016-10-17 20:02:39 235

转载 Java并发编程之十九:并发新特性—Executor框架与线程池(含代码)

出处:http://blog.csdn.NET/ns_code/article/details/17465497Executor框架简介    在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化

2016-10-17 20:01:20 336

转载 Java并发编程之十八:深入Java内存模型—内存操作规则总结

出处:http://blog.csdn.NET/ns_code/article/details/17377197主内存与工作内存    Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量主要是指共享变量,存在竞争问题的变量。Java内存模型规定所有的变量都存储在主内存中,而每条线程还有自己的工作内存,线程的

2016-10-17 19:59:42 242

转载 Java并发编程之十七:深入Java内存模型——happen-before规则及其对DCL的分析

出处:http://blog.csdn.NET/ns_code/article/details/17348313happen—before规则介绍    Java语言中有一个“先行发生”(happen—before)的规则,它是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,其意思就是说,在发生操作B之前,操作A产生的影响都能被操作B观察到,“影响”

2016-10-17 19:58:30 210

转载 Java并发编程之十六:生产者—消费者模型(含代码)

出处:http://blog.csdn.net/ns_code/article/details/17249321     生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。    这里实现如下情况的生产--消费模型:    生产者不断交替地生产两组数据“姓名--1 --> 内容--1”,“姓名--2-

2016-10-17 19:56:27 201

转载 Java并发编程之十五:线程间通信中notifyAll造成的早期通知问题(含代码)

出处:http://blog.csdn.net/ns_code/article/details/17229601    如果线程在等待时接到通知,但线程等待的条件还不满足,此时,线程接到的就是早期通知,如果条件满足的时间很短,但很快又改变了,而变得不再满足,这时也将发生早期通知。这种现象听起来很奇怪,下面通过一个示例程序来说明问题。    很简单,两个线程等待删除List中的元素,同时

2016-10-17 19:55:08 173

转载 Java并发编程之十四:线程间通信中notify通知的遗漏(含代码)

出处:http://blog.csdn.net/ns_code/article/details/17228213     notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块后,threadA再开始wait,便会一直阻塞等待,直到被别的线程

2016-10-17 19:53:53 288

转载 Java并发编程之十三:使用wait/notify/notifyAll实现线程间通信的几点重要说明

出处:http://blog.csdn.NET/ns_code/article/details/17225469   在Java中,可以通过配合调用Object对象的wait()方法和notify()方法或notifyAll()方法来实现线程间的通信。在线程中调用wait()方法,将阻塞等待其他线程的通知(其他线程调用notify()方法或notifyAll()方法),在线程中调用noti

2016-10-17 19:52:50 225

转载 Java并发编程之十二:可重入内置锁

每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法。    当某个线程请求一个由其他线程持有的锁时,发出请求的线程就会阻塞。然而,由于内置锁是可重入的,因此如果摸个线程试图获得一个已经由它自己持有的锁,那么这个请求就会成功。“重入”意味

2016-10-17 19:51:21 143

转载 Java并发编程之十一:死锁(含代码)

出处:http://blog.csdn.NET/ns_code/article/details/17200937   当线程需要同时持有多个锁时,有可能产生死锁。考虑如下情形:      线程A当前持有互斥所锁lock1,线程B当前持有互斥锁lock2。接下来,当线程A仍然持有lock1时,它试图获取lock2,因为线程B正持有lock2,因此线程A会阻塞等待线程B对lock2的释放。

2016-10-17 19:50:05 199

转载 Java并发编程之十:多线程环境中安全使用集合API(含代码)

出处:http://blog.csdn.NET/ns_code/article/details/17200509    在集合API中,最初设计的Vector和Hashtable是多线程安全的。例如:对于Vector来说,用来添加和删除元素的方法是同步的。如果只有一个线程与Vector的实例交互,那么,要求获取和释放对象锁便是一种浪费,另外在不必要的时候如果滥用同步化,也有可能

2016-10-17 19:48:22 176

转载 Java并发编程之九:实现内存可见性的两种方法比较:synchronized和Volatile

出处:http://blog.csdn.net/ns_code/article/details/17290021      在http://blog.csdn.net/ns_code/article/details/17288243这篇博文中,讲述了通过同步实现内存可见性的方法,在http://blog.csdn.net/ns_code/article/details/171013

2016-10-17 19:47:05 227

转载 Java并发编程之八:synchronized的另个一重要作用:内存可见性

出处:http://blog.csdn.net/ns_code/article/details/17288243      加锁(synchronized同步)的功能不仅仅局限于互斥行为,同时还存在另外一个重要的方面:内存可见性。我们不仅希望防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且还希望确保当一个线程修改了对象状态后,其他线程能够看到该变化。而线程的同步恰恰也

2016-10-17 19:45:31 243

空空如也

空空如也

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

TA关注的人

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