使用群体
本章包含以下各节:
概观
使用群集仲裁
使用分区的高速缓存定额组
使用代理法定人数
启用自定义操作策略
16.1概述
法定人数,在Coherence,是指在集群所需要的服务行动之前允许或不允许的服务成员的最低数目。法定人数是有利的,因为他们保证,集群行为预期的方式当成员达到阈值时,自动提供。例如,一个分区的高速缓存备份法定人数可能需要至少5存储功能分区的高速缓存服务之前允许备份分区。
法定人数特定服务和内法定人数政策定义;群集服务,分区的高速缓存服务的分区的法定政策,以及代理服务代理法定人数政策有一个群集仲裁政策。法定阈值设定使用缓存的配置文件上的政策。
每个法定人数提供其特定的服务的好处。然而,在一般情况下,定额组:
成员在不同的服务级别控制服务行为
强制服务业务所必需的最低服务会员级别
为特定的应用或解决方案确保最合适的集群和缓存环境
16.2使用群集仲裁
群集仲裁策略定义了一个单一的的法定人数(超时幸存者仲裁)群集服务。超时幸存者法定职权集群成员必须保持群集服务被终止时,集群中的犯罪嫌疑人成员的最低数量。一位成员被认为是犯罪嫌疑人,如果还没有回应网络通信,是从集群中被断开的危险迫在眉睫。笼统规定的法定人数可以跨所有成员或集群中的一个特定的角色,如客户端或服务器成员的成员有约束。群集成员定义角色名称的更多信息,请参阅“会员身份”的<role-name>元素。
这的法定人数通常用于网络性能变化的环境中。例如,间歇性的网络中断,可能会导致大量的集群成员从群集中删除。使用此法定人数,在停电期间保持一定数量的成员,当网络恢复。这种行为也最大限度地减少了人工干预,需要重新启动成员。当然,需要合作的节点不响应的请求无法完成,将被阻止停电持续时间或超时。
16.2.1配置群集仲裁策略
超时幸存者法定阈值配置在操作覆盖文件,使用<timeout-survivor-quorum>元素和可选的角色属性。这个元素必须使用内<cluster-quorum-policy>元素。下面的示例演示配置超时幸存者的法定人数门槛,以确保that5集群成员始终保持集群中的服务器角色,同时消除犯罪嫌疑人的成员:
<cluster-config>
<member-identity>
<role-name>server</role-name>
</member-identity>
<cluster-quorum-policy>
<timeout-survivor-quorum role="Server">5</timeout-survivor-quorum>
</cluster-quorum-policy>
</cluster-config>
16.3使用分区的高速缓存定额组
分区的高速缓存法定人数策略定义了四个分区的高速缓存服务(使用DistributedCache )强制多少服务之前,需要不同的分区的高速缓存服务操作可以法定人数:
Distribution Quorum - (分布定额)此的法定人数授权存储功能分区的高速缓存服务之前,必须存在分区的高速缓存服务被允许执行分区分配成员的最低数量。
Restore Quorum - (还原定额)这法定人数授权存储功能分区的高速缓存服务之前,必须存在分区的高速缓存服务允许从备份中恢复丢失的主分区成员的最低数量。
Read Quorum - (阅读定额)这法定人数授权处理读取请求必须存在一个分区的高速缓存服务的最小数量的存储功能的成员。一个读请求的任何要求,不发生变异的高速缓存中的状态或内容。
Write Quorum - (写定额)这法定人数授权存储功能分区的高速缓存服务必须存在处理写请求的最小数量。一个写请求的任何要求,可能会发生变异的高速缓存中的状态或内容。
这些法定人数通常用来表示服务成员水平不同的服务操作是最好的,执行给定的用途和要求的分布式缓存。例如,一个小型分布式缓存可能只需要三个存储功能的成员充分地存储数据和处理预计请求量。虽然一个大型的分布式缓存可能需要10或以上,存储功能,以充分的数据存储和处理要求量预计。最佳的成员水平都在开发和测试,然后进行相应设置,以确保最低服务会员水平在生产环境中置备。
如果运行服务的存储功能的节点的数量下降到低于所配置的电平的读或写仲裁,对应的客户端操作被拒绝丢进com.tangosol.net.RequestPolicyException 。如果启用存储节点的数量低于配置的层级分销法定人数,某些数据可能成为“濒危” (备份) ,直到达到法定人数。低于法定人数还原操作可能会导致一些被阻塞,直到达到法定人数或超时。
16.3.1配置分区的高速缓存法定人数政策
分区的高速缓存法定人数配置缓存配置文件内<partitioned-quorum-policy-scheme>元素。元素必须使用内<distributed-scheme>元素。下面的示例演示分区的高速缓存法定人数配置阈值。在理想的情况下,阈值将指示执行该操作所需要的最小量的服务成员。
<distributed-scheme>
<scheme-name>partitioned-cache-with-quorum</scheme-name>
<service-name>PartitionedCacheWithQuorum</service-name>
<backing-map-scheme>
<local-scheme/>
</backing-map-scheme>
<partitioned-quorum-policy-scheme>
<distribution-quorum>4</distribution-quorum>
<restore-quorum>3</restore-quorum>
<read-quorum>3</read-quorum>
<write-quorum>5</write-quorum>
</partitioned-quorum-policy-scheme>
<autostart>true</autostart>
</distributed-scheme>
<partitioned-quorum-policy-scheme>元素还支持计划参考使用。在下面的例子中,一个<partitioned-quorum-policy-scheme> ,分区缓存法定人数的名称,引用从内<distributed-scheme>元素:
<distributed-scheme>
<scheme-name>partitioned-cache-with-quorum</scheme-name>
<service-name>PartitionedCacheWithQuorum</service-name>
<backing-map-scheme>
<local-scheme/>
</backing-map-scheme>
<partitioned-quorum-policy-scheme>
<scheme-ref>partitioned-cache-quorum</scheme-ref>
</partitioned-quorum-policy-scheme>
<autostart>true</autostart>
</distributed-scheme>
<distributed-scheme>
<scheme-name>dist-example</scheme-name>
<service-name>DistributedCache</service-name>
<backing-map-scheme>
<local-scheme/>
</backing-map-scheme>
<partitioned-quorum-policy-scheme>
<scheme-name>partitioned-cache-quorum</scheme-name>
<distribution-quorum>4</distribution-quorum>
<restore-quorum>3</restore-quorum>
<read-quorum>3</read-quorum>
<write-quorum>5</write-quorum>
</partitioned-quorum-policy-scheme>
<autostart>true</autostart>
</distributed-scheme>
16.4使用代理仲裁
代理法定人数政策定义了一个单一的法定人数(连接法定人数)的代理服务。连接的法定授权代理服务的会员,必须提供代理服务,可以让客户端连接之前的最低数量。
这法定人数通常用来确保足够的代理服务人员提供最佳支持一个给定的TCP客户端。例如,一个小的客户端数量可能有效地连接到一个群集使用两个代理服务。虽然大量的客户可能需要3个或更多的代理服务,有效地连接到群集。在开发过程中进行测试的最佳水平,然后进行相应设置,以确保最低服务会员水平在生产环境中置备。
16.4.1配置代理仲裁政策
连接法定阈值配置缓存配置文件内<proxy-quorum-policy-scheme>元素。元素必须使用内<proxy-scheme>元素。下面的例子演示了如何配置连接法定人数门槛,确保3代理服务集群中的成员是否存在代理服务允许接受TCP客户端连接之前:
<proxy-scheme>
<scheme-name>proxy-with-quorum</scheme-name>
<service-name>TcpProxyService</service-name>
...
<proxy-quorum-policy-scheme>
<scheme-ref>proxy-quorum</scheme-ref>
</proxy-quorum-policy-scheme>
<autostart>true</autostart>
</proxy-scheme>
<proxy-scheme>
<scheme-name>proxy-example</scheme-name>
<service-name>TcpProxyService</service-name>
...
<proxy-quorum-policy-scheme>
<scheme-name>proxy-quorum</scheme-name>
<connect-quorum>3</connect-quorum>
</proxy-quorum-policy-scheme>
<autostart>true</autostart>
</proxy-scheme>
16.5启用自定义操作策略
可以使用自定义操作策略,而不是预设的法定政策群集服务,分区的高速缓存服务,代理服务。自定义的行动政策必须实现com.tangosol.net.ActionPolicy的的接口。
要启用自定义策略,内添加一个<class-name>元素,元素,包含实现类的完全限定名法定人数政策方案。下面的示例中添加自定义操作策略分布式缓存方案定义分区的法定政策:
<distributed-scheme>
<scheme-name>partitioned-cache-with-quorum</scheme-name>
<service-name>PartitionedCacheWithQuorum</service-name>
<backing-map-scheme>
<local-scheme/>
</backing-map-scheme>
<partitioned-quorum-policy-scheme>
<class-name>package.MyCustomAction</class-name>
</partitioned-quorum-policy-scheme>
<autostart>true</autostart>
</distributed-scheme>
作为替代方案,一个工厂类可以创建自定义操作策略实例。要定义一个工厂类,使用<class-factory-name>的的元素进入完全合格的类名和方法名在工厂执行对象实例化的类元素来指定静态工厂方法的名称。举个例子。
<distributed-scheme>
<scheme-name>partitioned-cache-with-quorum</scheme-name>
<service-name>PartitionedCacheWithQuorum</service-name>
<backing-map-scheme>
<local-scheme/>
</backing-map-scheme>
<partitioned-quorum-policy-scheme>
<class-factory-name>package.Myfactory</class-factory-name>
<method-name>createPolicy</method-name>
</partitioned-quorum-policy-scheme>
<autostart>true</autostart>
</distributed-scheme>
缓存配置案例
本节提供了一系列的基本高速缓存方案的定义,可以使用或根据需要进行修改。参见第12章,“配置高速缓存,”详细说明如何配置缓存。此外,样品在本章建立在互相经常使用一个<scheme-ref>元件的重复使用其他的样品作为嵌套计划。使用的<scheme-ref>元素的详细信息,请参阅“使用计划继承”。最后,这些样品只指定最少数量的设置,按照嵌入式计划的文档的链接,看到的全套选项。
本节主要介绍配置以下缓存方案:
本地缓存(可从单个JVM)
在内存缓存
NIO的内存缓存
大小限制在内存缓存
内存中缓存窝条目
磁盘上的缓存
磁盘上缓存大小有限公司
持续高速缓存磁盘
内存与基于磁盘的缓存溢出
数据库缓存
集群缓存(可从多个JVM)
复制缓存
复制缓存溢出
分区的高速缓存
分区的高速缓存溢出
数据库分区的高速缓存
分区的高速缓存与串行
近缓存