jboss datagrid7.0学习(5)构成

阅读更多

看完前面的章节,多多少少,对JBoss Datagrid(JDG)应该有一个大致的了解,比如它有几种运行模式,分别使用于什么场景。它的启动模式,是单实例的还是集群模式,各种模式分别适用于什么场景。

了解了这么多之后,这一节学习一下关于它的内部结构。

 

远程客户端服务器模式

远程客户端服务器模式里,由infinispan服务器,infinispan核心,JGroups这三个模块组成。


jboss datagrid7.0学习(5)构成_第1张图片
infinispan (server):infinispan服务器就是,接受从客户程序(应用程序)发过来的cache操作的命令,将cache操作的结果返回给客户端的JDG的"前端部分"。

infinispan(core):infinispan core担当着JDG里重要的任务,是键值对存储(cache)的管理部分。

JGroups:Jgroups模块的作用是使得组成集群的结点间的数据的复制,平衡。

JDG服务器就是通过这三个模块之间的协同工作,来提供服务的。

 

库模式

库模式中,infinispan服务器这一个模块是不使用的,应用程序直接操作infinispan core的API。也就是说在库模式中,应用程序通过捆绑infinispan core和JGroups的jar包而使用的。

 

下面就对JDG的各个模块进行详细的说明。


jboss datagrid7.0学习(5)构成_第2张图片

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 datagrid7.0学习(5)构成_第3张图片
  • 大小: 24.9 KB
  • jboss datagrid7.0学习(5)构成_第4张图片
  • 大小: 42.6 KB
  • 查看图片附件

你可能感兴趣的:(构成)