看完前面的章节,多多少少,对JBoss Datagrid(JDG)应该有一个大致的了解,比如它有几种运行模式,分别使用于什么场景。它的启动模式,是单实例的还是集群模式,各种模式分别适用于什么场景。
了解了这么多之后,这一节学习一下关于它的内部结构。
远程客户端服务器模式
远程客户端服务器模式里,由infinispan服务器,infinispan核心,JGroups这三个模块组成。
infinispan (server):infinispan服务器就是,接受从客户程序(应用程序)发过来的cache操作的命令,将cache操作的结果返回给客户端的JDG的"前端部分"。
infinispan(core):infinispan core担当着JDG里重要的任务,是键值对存储(cache)的管理部分。
JGroups:Jgroups模块的作用是使得组成集群的结点间的数据的复制,平衡。
JDG服务器就是通过这三个模块之间的协同工作,来提供服务的。
库模式
库模式中,infinispan服务器这一个模块是不使用的,应用程序直接操作infinispan core的API。也就是说在库模式中,应用程序通过捆绑infinispan core和JGroups的jar包而使用的。
下面就对JDG的各个模块进行详细的说明。
infinispan server
JDG服务器中,为了要和客户端(应用程序)相链接,默认情况下Infinispan服务器中Hot Rod,Memcached,REST这三个连接器是有效的。关于Hot Rod和Memcached,infinispan服务器里
通过启动相应的协议服务,就会持有各自的线程池。 关于REST,因为使用了和JBoss EAP容器同样的JBoss Web模块,因此可以使用和JBOSS EAP一样的考虑方法来进行该Web容器的调优。还有,这里的协议服务可以根据配置的变更,可以实现自由的停止。举个例子,如果只使用Hot Rod的客户端,那么可以通过不启动Memcached和REST的连接器来使得启动的时候生成的线程数变少,也就是说JDG是一个轻量级的服务。
infinispan core
Infinispan core作为JDG服务中的核心组件,它可以拥有多个cache container,而cache container中,又可以定义多个键值对存储也就是cache。cache可以选择是否定义使得数据可以永久存储的cache存储。
cache存储,可以使用文件系统的文件存储,使用数据库的JDBC存储,或者使用的别的JDG集群来作为存储,除此之外还可以使用自己定制的存储。但是使用cache存储的情况下,JDG的性能将会收到使用的cache存储的性能的制约,因此使用cache存储时要非常的注意。
从架构上来看,infinispan core关于集群中使用的模块是可以进行选择的,但是从目前的现状来看,可以选择的协议模块实际上只有JGroups。
JGroups
JGroups因为是由多个协议栈的集合构成,因此可以非常简单的管理由多个结点构成的动态的集群。这里指的协议栈包括:比如,为了检出是否有一个新的结点要加入到集群中的discovery协议,
再比如为了能够检出集群中是否有节点要脱离的障害检知协议,消息再发送的控制协议和消息循序的控制的协议。而JGroups中,又使用unicast和multicast的组合,因此它能高效率的管理
动态的集群。
通过上面的描述,可以看出JDG服务器是基于模块的架构,因此它有着非常多的可以扩展的地方。
相关推荐
JBoss Enterprise Application Platform (EAP) 7.0 是一个基于Java EE 7规范的开源应用服务器,由Red Hat公司开发并维护。这个版本在Java企业级开发领域中扮演着重要角色,因为它提供了全面的框架和服务,使得开发、...
### Eclipse中集成JBOSS 7.0版本的详细步骤及常见问题解决 #### 引言 随着JBOSS 7.0版本的发布,许多开发者开始尝试在Eclipse环境中集成这一新版本。然而,由于该版本较为新颖,可能会遇到一些在早期版本中未曾出现...
5. **安全框架**:JBoss 7.0包含了安全管理器,用于实现用户认证和授权。源码中会有处理安全策略和角色的代码。 6. **热部署**:源码还涵盖了热部署机制,允许在运行时更新部署的应用,而无需停止服务器。 依赖包...
JBoss EAP 7.0,全称是Red Hat JBoss Enterprise Application Platform 7.0,是Red Hat公司推出的一款企业级Java应用服务器,基于Java EE 7规范。这款产品以其稳定性和强大的功能在IT行业中获得了广泛的认可。下面将...
在Linux环境下配置JBoss6.0与JDK7.0是一项关键的任务,因为这两个组件是许多企业级Java应用的基础。JBoss是一个流行的开源应用服务器,它支持Java EE规范,而JDK则是运行Java应用程序和应用服务器所必需的开发工具包...
1. **基础入门**:如《JBoss_ESB学习笔记5——第四个ESB应用Hello World File Action.doc》所示,初学者通常从“Hello World”程序开始,了解如何创建并运行一个简单的ESB服务。这一阶段会介绍ESB的基本概念,如服务...
2. **统一的部署模型**:在7.0版本中,所有类型的部署(如WAR、EAR、JAR等)都被视为平等的,使用相同的部署结构,简化了管理和配置。 3. **更佳的内存管理**:通过优化内存模型,JBoss AS 7减少了内存占用,提高了...
JBoss 企业应用平台和 JBoss 数据网格演示添加一名作者级别:中级技术:CDI、jQuery、JAX-RS、Infinispan HotRod 简介: datagrid-demo-app展示了 JBoss DataGrid 如何使用服务器内存而不是数据库来存储、删除、检索...
jboss rules 中文学习资料.chm
如果你使用的是JBoss 5.x版本,那么JDK版本必须是6.0,这是由于版本兼容性问题。 #### 创建与配置EJB项目 接下来,我们将创建一个名为EJBTest的项目,用于测试环境: 1. **添加外部JARs**:将JBoss的client目录下...
5. **EAP与AS区别**:JBoss AS是社区版,而JBoss Enterprise Application Platform (EAP)是企业级的付费版本,包含更多的企业级特性、长期支持和专业的技术支持。 6. **微容器(Microcontainer)**:JBoss7的...
【JBoss学习全集多本书整合】集合了丰富的JBoss相关知识,涵盖了JBoss服务器的配置、管理和优化等多个方面,是深入理解与掌握JBoss的理想资料。JBoss,作为一个开源的应用服务器,基于Java EE(现在被称为Jakarta EE...
JBoss EAP 5 Hibernate EntityManager Reference Guide是一份指南文档,用于指导开发者如何在JBoss EAP 5的环境中使用Hibernate EntityManager。它详细描述了JBoss EAP 5中Hibernate EntityManager的配置和使用方法...
### JBoss AS 5 Development: 关键知识点解析 #### 一、JBoss AS 5 概述 ...通过深入学习本书,读者不仅可以掌握JBoss AS 5的基本使用方法,还能了解到许多高级特性和最佳实践,有助于提升自己的技术水平。
【JBoss ESB学习笔记】 JBoss ESB(Enterprise Service Bus)是Red Hat公司开发的一款开源企业服务总线,它是企业级应用集成的核心组件,用于连接不同系统、服务和应用程序,实现服务之间的通信和交互。本学习笔记...
### JBoss5部署原理详解 #### 一、JBoss5微容器架构与启动流程 JBoss5采用了全新的微容器架构,这种设计使得整个系统更为灵活且易于扩展。启动时,JBoss5首先会加载一个名为`ProfileServiceBootstrap`的类,该类...
【JBoss5服务器详解】 JBoss5,全称为JBoss Application Server 5,是Red Hat公司推出的基于Java EE(Java Enterprise Edition)规范的开源中间件平台。作为一个强大的Java Web容器,它提供了对多种企业级服务的...
通过深入研究这部分JBoss5的源代码,开发者不仅可以理解JBoss5的工作机制,还能学习到Java EE应用服务器的设计原则,这对于提升Java企业级开发技能大有裨益。同时,这也为定制和优化JBoss5提供了可能,以满足特定...