读《分布式一致性原理》系统模型
摘要:在本节中,我们先从数据模型,节点特性,版本,watcher和ACL五个方面来了解zookeeper系统模型。 数据模型 事务ID 狭义的事务通常指的是数据库事务,,一般包括一系列对数据库有序的读写操作,这些数据库事务所具有的ACID特性, 即原子性,一致性,隔离性,持久性。 在zookeeper中,
阅读全文
读《分布式一致性原理》CURATOR客户端3
摘要:分布式锁 在分布式环境中,为了保证数据的一致性,经常在程序运行的某个运行点。需要进行同步控制。 上面这个程序借助Curator来实现了一个简单的分布式锁。其核心接口如下: 工具 curator也提供了了很多的工具类,其中用的最多的就是zkPath和EnsurePath。 ZKPaths ZKPath
阅读全文
读《分布式一致性原理》CURATOR客户端
摘要:创建会话 使用curator客户端创建会话和其它客户端产品有很大不同 1.使用CuratorFrameworkFactory这个工厂类的两个静态方法来创建一个客户端: 2.通过调用CuratorFramework的start()方法来启动会话 在重试策略上,Curator通过一个接口来让用户实现自定
阅读全文
读《分布式一致性原理》JAVA客户端API操作3
摘要:更新数据 客户端可以通过zookeeper的API来更新一个节点的数据内容,有如下两个接口: 更新数据的接口较为简单明了。我们重点来看下方法中的version参数。version参数是指定节点的数据版本。表明本次更新是针对指定版本进行的。 《java并发编程实践》一书提到,在现代的绝大数计算机处理器
阅读全文
读《分布式一致性原理》JAVA客户端API操作2
摘要:创建节点 通过客户端API来创建一个数据节点,有一下两个接口: 这两个接口分别是同步和异步的方式创建节点 需要注意的是无论是同步还是异步创建节点,zookeeper都不支持递归创建,即在不存在父节点的情况下创建一个子节点 。另外如果一个节点已经存在了,那么再创建同名节点时会抛出异常:NodeExis
阅读全文
读《分布式一致性原理》JAVA客户端API操作
摘要:创建会话 客户端可以通过创建一个Zookeeper实例来连接服务器。4种构造方法如下 注意,zookeeper客户端和服务端会话建立是一个异步的过程,也是就是说在程序中构造zookeeper方法初始化方法执行完后 会立即返回,在大多数情况下此时并没有真正的建立一个可用的会话,此时会话正处于CONne
阅读全文
读<分布式一致性原理>初识zookeeper
摘要:zookeeper是什么 zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如:数据发布/订阅,负载均衡,命名服务,分布式协调/通知 ,集群管理,Master选举,分布式锁和分布式队列等功能。zookeeper可以保证如下分布式一致性特性。 顺序一致性 从同一个
阅读全文
获取管理权
摘要:现在我们有了会话,我们的Master程序需要获得管理权,虽然现在我们只有一个主节点,但我们还是要小心仔细。我们需要运行多个进程,以便在活动主节点发生故障后,可以有进程接替主节点。为了确保同一时间只有一个主节点进程出于活动状态,我们使用ZooKeeper来实现简单的群首选举算法(在2.4.1节中所描述
阅读全文
开始使⽤ZooKeeper的API
摘要:在之前的章节中,我们使用zkCli工具介绍了ZooKeeper的基本操作。从本章开始,我们将会看到在应用中如何通过API来进行操作。首先介绍一下如何使用ZooKeeper的API进行开发,展示如何创建会话,实现监视点(watcher)。我们还是从主-从模式例子开始进行编码 1.1建立ZooKeepe
阅读全文
ZooKeeper与仲裁模式
摘要:为了让服务器之间可以通信,服务器间需要一些联系信息。理论上,服务器可以使用多播来发现彼此,但我们想让ZooKeeper集合支持跨多个网 络而不是单个网络,这样就可以支持多个集合的情况。 每一个server.n项指定了编号为n的ZooKeeper服务器使用的地址和端口号。每个server.n项通过冒号
阅读全文
了解zookeeper
摘要:ZooKeeper操作和维护多个小型的数据节点,这些节点被称为znode,采用类似于文件系统的层级树状结构进行管理。图2-1描述了一个znode树的结构,根节点包含4个个节点,其中三个子节点拥有下一级节点,叶子节点存储了数据信息。 针对一个znode,没有数据常常表达了重要的信息。如,在主-从模式的
阅读全文
ZooKeeper架构
摘要:ZooKeeper服务器端运行于两种模式下:独立模式(standalone)和仲裁模式(quorum)。独立模式几乎与其术语所描述的一样:有一个单独的服务器,ZooKeeper状态无法复制。在仲裁模式下,具有一组ZooKeeper服务器,我们称为ZooKeeper集合(ZooKeeper ensem
阅读全文
转--activemq的官方中文文档
摘要:1 JMS 在介绍ActiveMQ之前,首先简要介绍一下JMS规范。 1.1 JMS的基本构件 1.1.1 连接工厂 连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory。 1.1.2 连接 JMS Connection封装了客户与JMS提供
阅读全文
使用Spring MVC创建 REST API--2
摘要:1.提供资源之外的其他内容 @ResponseBody提供了一种很有用的方式,能够将控制器返回的Java对象转换为发送到客户端的资源表述。实际上,将资源表述发送给客户端只是整个过程的一部分。一个好的REST API不仅能够在客户端和服务器之间传递资源,它还能够给客户端提供额外的元数据,帮助客户端理解
阅读全文
使用Spring MVC创建 REST API
摘要:1.REST的基础知识 当谈论REST时,有一种常见的错误就是将其视为“基于URL的Web服务”——将REST作为另一种类型的远程过程调用(remote procedurecall,RPC)机制,就像SOAP一样,只不过是通过简单的HTTP URL来触发,而不是使用SOAP大量的XML命名空间。恰好
阅读全文
zookeeper的概念和基础
摘要:1.1ZooKeeper的使命 当开发人员使用ZooKeeper进行开发时,开发人员设计的那些应⽤往往可以看成成组连接到ZooKeeper服务器端的客户端,它们通过ZooKeeper的客户端API连接到ZooKeeper服务器端进行相应的操作。Zookeep的客户端API功能强大,其 中包括: 1.
阅读全文
使用Spring的HttpInvoker
摘要:Spring开发团队意识到RMI服务和基于HTTP的服务(例如Hessian和Burlap)之间的空白。一方面,RMI使用Java标准的对象序列化机制,但是很难穿透防火墙。另一方面,Hessian和Burlap能很好地穿透防火墙,但是使用私有的对象序列化机制。就这样,Spring的HTTP invo
阅读全文
使用远程服务
摘要:**访问和发布RMI服务**使用Hessian和Burlap服务**使用Spring的HTTP invoker**使用Spring开发Web服务 想象一下,我们被困在一个荒凉的小岛上,这听上去就像是一场梦境变成了现实。毕竟,谁不想在海滩上静静地独处,可以幸福地不顾外面世界的纷纷扰扰呢?但是在一个荒岛
阅读全文
Spring MVC起步
摘要:1.1跟踪Spring MVC的请求 每当用户在Web浏览器中点击链接或提交表单的时候,请求就开始工作了。对请求的工作描述就像是快递投送员。与邮局投递员或FedEx投送员一样,请求会将信息从一个地方带到另一个地方。请求是一个十分繁忙的家伙。从离开浏览器开始到获取响应返回,它会经历好多站,在每站都会留
阅读全文
使用注解创建切面
摘要:使用注解来创建切面是AspectJ 5所引入的关键特性。AspectJ 5之前,编写AspectJ切面需要学习一种Java语言的扩展,但是AspectJ面向注解 的模型可以非常简便地通过少量注解把任意类转变为切面。 1.1AspectJ提供了五个注解来定义通知, @Pointcut注解能够在一个@A
阅读全文
通过切点来选择连接点
摘要:关于Spring AOP的AspectJ切点,最重要的一点就是Spring仅支持AspectJ切点指示器(pointcut designator)的一个子集。让我们回顾下,Spring是基于代理的,而某些切点表达式是与基于代理的AOP无 关的。表4.1列出了Spring AOP所支持的AspectJ
阅读全文
Spring实战之切面编程
摘要:如果要重用通用功能的话,最常见的面向对象技术是继承(inheritance)或委托(delegation)。但是,如果在整个应用中都使用相同的基类,继承往往会导致一个脆弱的对象体系;而使用委托可能需要对委托对象进行复杂的调用。切面提供了取代继承和委托的另一种可选方案,而且在很多场景下更清晰简洁。在使
阅读全文