自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java代理实现方式详解

1. 简介代理模式是常用的Java设计模式,其主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在调用对象和被调用对象起到中介的作用,代理模式的思想是为了提供额外的处理或者不同的操作。代理模式中,基本上有Subject角色,RealSubject角色,Proxy角色。其中:Subject角色负责定义RealSubje

2015-06-26 13:31:54 2833

转载 ClassPool详解

转自:http://www.tuicool.com/articles/nQNn6z1.简介ClassPool对象是一个CtClass对象的容器。一个CtClass对象被构建后,它被记录在ClassPool中。这是因为当编译的原文件关联到CtClass表示的类, 编译器要访问CtClass对象。例如,假定一个新方法getter()要加入到CtClass对象表示的的Point类。程

2015-06-25 15:36:31 8648

原创 Javassist详解

1. 简介在博客中我们有提到关于Java反射,Java反射可以实现运行时加载,探知,自省,使用编译期完全未知的classes,获悉其完整构造,并生成其实体对象,或对fields设值。自审:通过Java的反射机制能够探知到java类的基本机构,这种对java类结构探知的能力,我们称为Java类的“自审”。Java的反射原理最典型的应用就是各种java IDE:比如Jcreateor,ec

2015-06-25 10:20:43 6725

原创 Redis集群实现

简介前面两篇文章介绍到了Redis的主从节点和Redies的数据分片,但在实际环境中,我们可能需要同时满足这两个要求,即既能实现主从结构(master/slave)解决主节点(master)出现故障,从节点(slave)能够提升为主节点,不影响整个程序的运行;而且又能够满足当业务压力太大,单个master节点的写入无法满足要求时,能够实现数据分片的功能。而Redis 3.0.2提供了Red

2015-06-09 23:33:08 2160 2

转载 Redis数据分片

转自:http://m.blog.csdn.net/blog/hjx_1000/38304081      http://blog.csdn.net/lang_man_xing/article/details/38405269Redis的分片(Sharding或者Partitioning)技术是指将数据分散到多个Redis实例中的方法,分片之后,每个redis拥有一部分原数据集

2015-06-09 23:10:44 9398 2

原创 Redis Sentinel实现集群节点故障转移

1. 简介Redis Sentinel为Redis提供了很高的可用性,在实践中,这意味着你可以部署一个可以解决非人为干预导致节点故障的Redis集群系统。Redis Sentinel还提供了其他的功能:如监控,通知和客户端配置服务的提供方。下面列出来了Redis Sentinel的功能列表:监控:Sentinel能够监控master节点或slave节点是否处于按照预期工作的状态。通

2015-06-08 14:30:53 9763

原创 Redis

简介redis 是一个开源的 key-value数据库。它又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的 string类型还有 list,set ,sorted set 和hash类型。当然这些类型的元素也都是string类型。也就是说 list,set这些集合类型也只能包含 string 类型。你可以在这些类型上做很多原子性的操作。比如对一个字符value追加字符串(AP

2015-06-05 17:43:40 617

转载 SpringMVC源码剖析(三)- DispatcherServlet的初始化流

转自:http://my.oschina.net/lichhao/blog/102315在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Servlet

2015-06-02 18:03:21 402

转载 SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现

转自:http://my.oschina.net/lichhao/blog/104943SpringMVC完成初始化流程之后,就进入Servlet标准生命周期的第二个阶段,即“service”阶段。在“service”阶段中,每一次Http请求到来,容器都会启动一个请求线程,通过service()方法,委派到doGet()或者doPost()这些方法,完成Http请求的处理。在

2015-06-02 18:03:01 418

转载 SpringMVC源码剖析(二)- DispatcherServlet的前世今生

转自:http://my.oschina.net/lichhao/blog/100138上一篇文章,我介绍了一次典型的SpringMVC请求处理过程中,相继粉墨登场的各种核心类和接口。我刻意忽略了源码中的处理细节,只列出最简单的类甚至是接口类,目的就是让大家先从最高层次的抽象意义上来审视SpringMVC这个框架;我也刻意将SpringMVC和Struts2做对比,目的是让大家

2015-06-02 18:02:31 397

转载 SpringMVC源码剖析(一)- 从抽象和接口说起

转自:http://my.oschina.net/lichhao/blog/99039SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的

2015-06-02 17:59:50 533

转载 zookeeper应用场景

转自:http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3113923.htmlZookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的

2015-06-02 09:01:17 456

转载 跟着实例学习ZooKeeper的用法: Leader选举

转自:http://ifeve.com/zookeeper-leader/ZooKeeper官方给出了使用zookeeper的几种用途。Leader ElectionBarriersQueuesLocksTwo-phased Commit其它应用如Name Service, Configuration, Group Membership在实际使用ZooK

2015-06-01 20:27:02 791

转载 跟着实例学习ZooKeeper的用法: 缓存

转自:http://ifeve.com/zookeeper-path-cache/可以利用ZooKeeper在集群的各个节点之间缓存数据。 每个节点都可以得到最新的缓存的数据。 Curator提供了三种类型的缓存方式:Path Cache,Node Cache 和Tree Cache。Path CachePath Cache用来监控一个ZNode的子节点. 当一

2015-06-01 20:26:40 3402

转载 跟着实例学习ZooKeeper的用法: 分布式锁

转自:http://ifeve.com/zookeeper-lock/锁分布式的锁全局同步, 这意味着任何一个时间点不会有两个客户端都拥有相同的锁。可重入锁Shared Reentrant Lock首先我们先看一个全局可重入的锁。 Shared意味着锁是全局可见的, 客户端都可以请求锁。 Reentrant和JDK的ReentrantLock类似,

2015-06-01 20:25:49 798

转载 跟着实例学习ZooKeeper的用法: 队列

转自:http://ifeve.com/zookeeper%ef%bc%8dcurator/使用Curator也可以简化Ephemeral Node (临时节点)的操作。Curator也提供ZK Recipe的分布式队列实现。 利用ZK的 PERSISTENTSEQUENTIAL节点, 可以保证放入到队列中的项目是按照顺序排队的。 如果单一的消费者从队列中取数据, 那么它是先入先出的,

2015-06-01 20:24:14 705

转载 跟着实例学习ZooKeeper的用法: 计数器

转自:http://ifeve.com/zookeeper-sharedcount/这一篇文章我们将学习使用Curator来实现计数器。 顾名思义,计数器是用来计数的, 利用ZooKeeper可以实现一个集群共享的计数器。 只要使用相同的path就可以得到最新的计数器值, 这是由ZooKeeper的一致性保证的。Curator有两个计数器, 一个是用int来计数,一个用long来计数。

2015-06-01 20:23:13 1086

转载 跟着实例学习ZooKeeper的用法: 临时节点

转自:http://ifeve.com/zookeeper-ephemeral-node/使用Curator也可以简化Ephemeral Node (临时节点)的操作。 临时节点驻存在ZooKeeper中,当连接和session断掉时被删除。比如通过ZooKeeper发布服务,服务启动时将自己的信息注册为临时节点,当服务断掉时ZooKeeper将此临时节点删除,这样cl

2015-06-01 20:20:16 3676

转载 跟着实例学习ZooKeeper的用法: Barrier

转自:http://ifeve.com/zookeeper-barrier/分布式Barrier是这样一个类: 它会阻塞所有节点上的等待进程,知道某一个被满足, 然后所有的节点继续进行。比如赛马比赛中, 等赛马陆续来到起跑线前。 一声令下,所有的赛马都飞奔而出。栅栏BarrierDistributedBarrier类实现了栅栏的功能。 它的构造函数如下:

2015-06-01 20:19:26 463

转载 Zookeeper开源客户端框架Curator简介

转自:Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情, 于是在它的基础上包装了一下, 提供了一套更好用的客户端框架. Netflix在用ZooKeeper的过程中遇到的问题, 我们也遇到了, 所以开始研究一下, 首先从他在gith

2015-06-01 20:11:56 439

转载 zookeeper原理

转自:http://cailin.iteye.com/blog/2014486/1 Zookeeper的基本概念1.1 角色Zookeeper中的角色主要有以下三类,如下表所示:系统模型如图所示:1.2 设计目的1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。

2015-06-01 20:08:16 410

原创 zookeeper

简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。安装和配置z

2015-06-01 19:32:39 323

空空如也

空空如也

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

TA关注的人

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