自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 Mycat架构与源码精析系列

很久没更新博客啦!^-^由于个人兴趣,最近研究了下Mycat这个中间件,通读了1.5.2版本的源码。所谓独乐乐不如众乐乐,笔者打算把其中的收获全部分享给大家。所以,近期将会有一系列关于Mycat的博客更新,涵盖Mycat的架构和源码的分析,并重点指出其中设计精要的地方,大家记得关注哦。系列博客目录Mycat架构与源码精析之一“整体架构”Mycat架构与源码精析之二“线程模型总览...

2019-07-30 19:28:46 402

原创 Mycat架构与源码精析之三“业务处理流程”

上一篇我们讲了Mycat的线程模型,今天我们聊聊一条常规的查询sql,在mycat中的执行流程。一条查询sql的执行,大概会经历下图的n个步骤,其发生和在各组件中的流转顺序如其数字标号,大体流程应该还是比较好懂的吧?有朋友看不懂的可以留言一下,这里就不多说啦,大家请看图:执行流程图(此图是原创)下面对几个核心设计要点进行讲解,大家要好好理解哦~...

2019-07-30 16:55:15 380

原创 Mycat架构与源码精析之二“线程模型总览”

续上上一篇整体架构,今天讲一下mycat的里面的线程。开局继续一张图(此图非原创):这里只介绍几种核心的线程。首先看最上面粉色的框框,除了main和timer线程,都是和网络有关的线程。MyCat主要使用NIO的网络方式,关于Mycat里面的NIO,我们下一篇会讲到,我们先看下各个线程大概的职责。网络类:Server线程:1个,处理业务的连接请求Manager...

2019-07-30 16:32:25 400

原创 Mycat架构与源码精析之一“整体架构”

很久没更新博客啦!^-^由于个人兴趣,最近研究了下Mycat这个中间件,通读了1.5.2版本的源码。所谓独乐乐不如众乐乐,笔者打算把其中的收获全部分享给大家。所以,近期将会有一系列关于Mycat的博客更新,涵盖Mycat的架构和源码的分析,并重点指出其中设计精要的地方,大家记得关注哦。这是系列第一篇,介绍Mycat的整体架构。开局一张图(此图来源于网络):从上...

2019-07-30 16:25:06 621

原创 深入Guava Cache的refresh和expire刷新机制

Guava Cache是本地缓存的不二之选,用起来真不错呵,可是你真的知道怎么使用才能满足需求?今天我们深入探讨一下Expire和Refresh。(废话少说)一、思考和猜想首先看一下三种基于时间的清理或刷新缓存数据的方式:expireAfterAccess:当缓存项在指定的时间段内没有被读或写就会被回收。expireAfterWrite:当缓存项在指定的时间段内没有更新就会...

2016-11-03 13:05:58 73830 21

原创 JDBC的Savepoint机制

默认情况下,当我们创建一个数据库连接时,会运行在自动提交模式(Auto-commit)下。这意味着,任何时候我们执行一条SQL完成之后,事务都会自动提交。所以我们执行的每一条SQL都是一个事务,并且如果正在运行DML或者DDL语句,这些改变会在每一条SQL语句结束的时存入数据库。有时候我们想让一组SQL语句成为事务的一部分,那样我们就可以在所有语句运行成功的时候提交,并且如果出现任何异常,这些语句

2016-06-08 13:37:53 3686 2

原创 Spring事务传播

Spring的事务传播是指使用Spring声明式事务,并且在事务方法相互调用过程中,事务的嵌套、传播和管理行为。如果是直接使用JDBC API,事务通过代码实现,则事务的行为自行控制和管理,无所谓传播。Spring的事务传播行为类型有以下几种:事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务

2016-06-08 13:24:20 631

转载 搜索Maven仓库

转自:http://juvenshun.iteye.com/blog/269094使用Maven进行开发的时候,比较常见的一个问题就是如何寻找我要的依赖,比如说,我想要使用activeMQ,可是我不知道groupId,artifactId,和合适的version。怎么办呢?本文介绍几个提供maven仓库搜索服务的站点。 1. http://repository.sona

2016-05-12 17:49:04 592

转载 十道海量数据处理面试题与十个方法大总结(转)

转自:http://kb.cnblogs.com/page/95701/ 第一部分、十道海量数据处理面试题  1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,

2016-05-03 17:11:57 542

转载 Bloom Filter(布隆过滤器)

转自:http://blog.csdn.net/hguisu/article/details/78661731. Bloom-Filter算法简介        Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。       Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地

2016-05-03 17:10:53 566

转载 Java程序执行Linux命令

转自:http://blog.csdn.net/a19881029/article/details/8063758Java程序中要执行linux命令主要依赖2个类:Process和Runtime首先看一下Process类:[plain] view plain copyProcessBuilder.start() 和 Runtime

2016-04-29 10:13:44 674

转载 linux下文件的访问时间、修改时间和改变时间

转自:http://blog.csdn.net/zyz511919766/article/details/14452027确切的说不存在创建时间。若文件从创建后不曾修改过则可认为创建时间=修改时间,若文件创建后状态也不曾改变过则可认为创建时间=改变时间,若文件创建后不曾被读取过则可认为创建时间=访问时间。但是,但是,上述情况基本上是不可能的,也就是说几乎不可能获取到文件的创建时间。

2016-04-26 10:36:56 12132

转载 Java多线程总结之线程安全队列Queue(转)

转自:http://blog.csdn.net/madun/article/details/20313269在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根

2016-04-09 21:08:44 764

转载 Linux文件之inode

文件名 -> inode -> device block  转自:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.htmlhttp://www.ruanyifeng.com/blog/2011/12/inode.htmlhttp://blog.s135.com/post/295/ http://hi

2016-04-09 18:02:07 465

原创 Rsync+Inotify实现文件同步方案

1.数据同步模式1.1推模式推模式是指数据源服务器主动将要同步的文件发送给其他服务器。该模式优点是同步较及时,缺点是源服务器开销较大,因此该模式适用于需要同步的服务器的数量较少的情况。1.2拉模式拉模式是指需要同步的服务器主动拉取数据源服务器的数据。该模式优点是数据源服务器的开销低,但是缺点是拉取数据需要等待源服务器处理会有延迟,该模式适合同步服务器数量较多的情况。1.3模式优化当需要同步的服务器数

2016-04-08 13:28:17 1199 1

转载 activemq的P2P和订阅发布模型

转自:http://shmilyaw-hotmail-com.iteye.com/blog/1897635简介     在前面一篇文章里讨论过几种应用系统集成的方式,发现实际上面向消息队列的集成方案算是一个总体比较合理的选择。这里,我们先针对具体的一个消息队列Activemq的基本通信方式进行探讨。activemq是JMS消息通信规范的一个实现。总的来说,消息规范里面定

2016-04-04 21:09:52 2287

转载 Docker网络一览

转自:http://dockone.io/article/1143【编者的话】本文是Nuage Networks公司Filip Verloy的一篇博文,简单介绍了一下Docker网络情况,单主机的四种模式及多主机的Libnetwork模式,大家可以试用了。同时Nuage Networks公司在鼓捣的SDN方案,我觉得大家也可以去了解一下。@Container容器技术大会将于6月4日

2016-03-25 13:26:30 779

转载 深入理解Docker Volume(二)

转自:http://dockone.io/article/129【编者的话】继上一篇文章深入理解Docker Volume(一)后,DockerOne翻译了深入理解Volume的第二篇文章。本文重点介绍了两种创建Volume方式的异同以及使用docker run命令创建Volume时,指定主机目录与不指定主机目录的区别。Docker的难点之一就是Volume的使用,这也是很多人都会

2016-03-25 13:25:21 882

转载 深入理解Docker Volume(一)

转自:http://dockone.io/article/128【编者的话】本文主要介绍了Docker Volume的原理以及使用方式,是Docker入门教程的延伸。作者通过从数据的共享、数据容器、备份、权限以及删除Volume五方面深入介绍了Volume的工作原理,从实战中帮助读者了解Volume。从Docker IRC频道以及stackoverflow的问题来看,很多人还不是很明白

2016-03-25 13:23:52 613

转载 ZooKeeper架构设计及其应用要点

转自:http://shiyanjun.cn/archives/474.htmlZooKeeper是一个开源的分布式服务框架,它是Apache Hadoop项目的一个子项目,主要用来解决分布式应用场景中存在的一些问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置管理等,它支持Standalone模式和分布式模式,在分布式模式下,能够为分布式应用提供高性能和可靠地协调服务,而

2016-03-25 13:19:32 511

转载 一步一步理解Paxos算法

转自:http://www.open-open.com/lib/view/open1420635646984.html背景Paxos 算法是Lamport于1990年提出的一种基于消息传递的一致性算法。由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后重新发表到 TOCS上。即便如此paxos算法还是没有得到重视,2001年Lamport用可读性比较强的

2016-03-25 13:16:46 999

转载 ActiveMQ消息传送及ACK机制详解(转)

转自:http://shift-alt-ctrl.iteye.com/blog/2020182 AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机制    Producer客户端使用来发送消息的, Co

2016-03-18 16:27:16 965

转载 MQTT协议详解二

转自:http://www.xuebuyuan.com/1951013.html下面我们开始一步步执行连接,订阅,发布和接收。首先就是CONNECT,发送连接申请。在连接中我们要做的是将客户端ID、消息标识、用户名、密码等能过Socket传送给服务器。 private $socket; private $msgid=1;//消息id pub

2016-03-16 19:33:25 1685

转载 MQTT协议详解一

转自:http://www.xuebuyuan.com/1951015.html首先给出MQTT协议的查看地址:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html当然也有PDF版的,百度一下,不过个人感觉不是官网上的字体和排版最舒服。那么这个协议是用做什么或有什么特色呢?下面是

2016-03-16 19:31:44 1277

转载 git-忽略指定文件

转自:http://blog.sina.com.cn/s/blog_601f224a01012a9r.html    有些文件是我们并不想加入也无需被添加到 Git 管理中,同时也不希望他出现在未跟踪列表中。例如在编译过程中生成的 o 文件。 “.gitignore” 文件可以达到这个效果。一、局部和全局设置    .gitignore 有全局和局部两种:1. 全局

2016-03-01 10:33:37 619

转载 TCP状态转换详解

转自:http://www.cnblogs.com/qlee/archive/2011/07/12/2104089.html注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。

2016-02-26 18:07:07 532

原创 TCP的几个重要参数介绍

1.TCP_NODELAYED默认情况下, TCP发送数据采用Nagle算法.。Nagle算法是解决小数据的频繁发送问题,比如1个字节的数据,在封包后会加上几十字节的首部,相当浪费资源。Nagle的做法是发送方发送的数据不会立即发出,而是先放在缓冲区,等待缓冲区达到一定的大小,或者是缓冲达到一定的时间后再一批发出。 发送完一批数据后, 会等待接收方对这批数据的回应,然后再发送下一批数据.。Negle

2016-02-26 18:01:04 5223

转载 Java序列化详解

转自:http://www.cnblogs.com/xdp-gacl/p/3777987.html一、序列化和反序列化的概念  把对象转换为字节序列的过程称为对象的序列化。  把字节序列恢复为对象的过程称为对象的反序列化。  对象的序列化主要有两种用途:  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;  2) 在网络上传送对象的字节序列。

2016-02-25 12:53:10 462

原创 Java的BIO、NIO和AIO介绍

Java的BIO、NIO和AIO介绍1. I/O概念理解:同步/异步、阻塞/非阻塞一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作。同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO。阻塞IO和非阻塞IO的区别在于第一步,发起IO请求是否会被阻塞,如果阻塞直到完成那么就是传统的阻塞IO,如果不阻塞,那么就是非阻塞IO。2.Java对

2016-02-23 13:17:49 1428

转载 LVS:三种负载均衡方式比较(转)

转自:http://my.oschina.net/leeypp1/blog/2948071、什么是LVS?首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器

2016-02-17 11:54:52 363

原创 分布式CAP理论

CAP原理 分布式系统中,有三种重要的属性,分别是:l 一致性(Consistency):任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的。l 可用性(Availability):每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。l 分区容忍性(Tolerance of network Partition

2016-02-05 17:31:57 1104

原创 Maven系列教程推荐

看到一博主写的Maven系列教程,介绍得不错,推荐一下:http://blog.csdn.net/liutengteng130/article/category/2746857

2016-02-04 15:32:56 459

转载 Ubuntu 设置环境变量

转自:http://www.cnblogs.com/hzhida/archive/2012/08/06/2624998.html在 Ubuntu 系统中有两种设置环境变量 PATH 的方法。第一种适用于为单一用户设置 PATH,第二种是为全局设置 PATH。 第一种方法: 在用户主目录下有一个 .bashrc 文件,可以在此文件中加入 PATH 的设置如下: exp

2016-01-14 14:58:23 401

转载 优秀的Git教程

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137628548491051ccfaef0ccb470894c858999603fedf000廖雪峰的电子书,非常推荐。

2016-01-13 23:08:42 391

原创 Nginx系列博客推荐

推荐大家一些nginx的学习资料。

2016-01-06 16:48:26 669

转载 Redis三种启动方式

转自:http://www.tuicool.com/articles/aQbQ3uPart I. 直接启动下载官网下载安装tar zxvf redis-2.8.9.tar.gzcd redis-2.8.9#直接make 编译make#可使用root用户执行`make install`,将可执行文件拷贝到/usr/local/bin目录下。这样就可

2016-01-06 16:24:21 3070

转载 Redis主从配置和切换

转自:http://blog.sina.com.cn/s/blog_67196ddc0101h8v0.html环境描述:主redis:192.168.10.1 6379从redis:192.168.10.2 6380一、主从配置1、将主从redis配置文件redis.conf中的aemonize no 改为 yes2、修改从redis配置

2016-01-06 16:22:23 504

转载 redis主从同步配置和原理

转自:http://www.linuxidc.com/Linux/2014-10/108200.htm推荐阅读:Redis安装配置教程及phpredis扩展安装测试 http://www.linuxidc.com/Linux/2014-10/108197.htmRedis命令参考之复制(Replication) http://www.linuxidc.com/Lin

2016-01-06 16:21:34 1226

转载 redis配置文件项解释

转载自:http://blog.csdn.net/wudiyi815/article/details/84695801. 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes    daemonize no2. 当Redis在后台运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

2016-01-06 16:15:57 505

原创 Java多线程编程相关资料推荐

Java多线程编程相关资料推荐:1、Java多线程编程--(8)学习Java5.0 并发编程包--线程池、Callable & Future 简介http://blog.csdn.net/drifterj/article/details/7847797

2015-12-18 13:08:38 448

空空如也

空空如也

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

TA关注的人

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