Oracle Coherence中文教程六:Coherence集群简介

Coherence集群简介

本章包含以下各节:
    群集概述
    了解TCMP
    了解群集服务

6.1 Cluster简介

coherence集群是JVM进程的集合。在运行时,JVM运行的进程的连贯自动加入集群。 JVM的加入集群被称为集群成员或群集节点。集群成员使用Tangosol的集群管理协议(TCMP)通信。群集成员使用TCMP组播通信(广播)和单播通信(点至点通信)。

一个集群包含所有群集成员所共享的服务。这些服务包括:连接服务(如群集服务),缓存服务(如分布式缓存服务),以及处理服务(如调用服务)。每个群集成员可以提供和使用这样的服务。被称为第一个集群成员为高级会员,通常开始创建群集所需要的核心服务。如果集群的高级成员是关机,另一个群集成员,假定高级成员角色。

6.2了解TCMP

TCMP是一个基于IP的协议,用于来发现群集成员,集群管理,提供服务,并发送数据。 TCMP可以配置为使用:

1.UDP / IP多播和UDP / IP单播的组合。这是默认配置。

    2.UDP / IP协议的单播(即,没有组播)。请参阅禁用组播通信。使用这种配置的网络 环境不支持多播或组播是不是最佳配置。

    3.TCP / IPUDP / IP多播或UDP / IP单播)。请参阅使用的TCP套接字提供者。使用 这种配置有利于TCP的网络环境。

    4.SSLTCP / IP。请参阅使用SSL套接字提供者。使用这种配置的网络环境,需要 高 度安全的集群成员之间的沟通。

使用多播

多播的使用方式如下:

Cluster discovery::使用多播发现,如果有一个集群运行一个新的会员,可以参加。

    Cluster heartbeat:最高级的集群中的成员通过组播发出一个周期性的心跳的速率可以配置,默认为每秒一次。

    Message delivery:消息传递,消息必须被传递到多个集群成员往往通过组播方式发送的,而不是一次单播消息的每个成员。

使用单播

单播的使用方式如下:

直接成员成员(点至点)沟通,包括消息,异步应答信号(ACK),异步否定的确认(NACK 的)和点对点同行的心跳。集群通信的大多数是点至点。

    在某些情况下,消息可以通过单播发送,即使该消息被定向到多个成员。这样做是为了 塑造流量和降低CPU负荷非常大的集群。

    如果使用单播多播通信被禁用,所有的通信发送。

使用TCP

使用TCP时,如下所示:

    TCP / IP环是用来作为一个额外的的死亡检测机制来区分实际节点故障和无响应的节 点(例如,当一个JVM进行一个完整的GC)。

    TCMP可以被配置为只使用数据传输的TCP。如UDP,转让可以被配置为只使用单播 或单播和组播。

协议的可靠性

TCMP协议提供完全可靠的,在订单交付的所有邮件。由于底层的UDP / IP协议不提供可靠或按顺序传送,TCMP使用排队,完全异步的ACKNACK可靠的消息传递机制,具有独特的不可或缺的身份为保证订购的消息。

协议资源利用率
TCMP协议(缺省情况下,配置)要求只有三个UDP / IP的套接字(一个多播,单播)和六个线程每个JVM,簇的大小无关。这是一个连贯的可扩展性的关键因素,无论服务器的数量,每个节点在集群通信无论是点至点或群集成员的集合,而无需额外的网络连接。

可选的TCP / IP环使用一些额外的TCP / IP套接字,和一个额外的线程。

协议的可调性
TCMP协议是非常可调,利用具体的网络拓扑结构,或低带宽和高延迟段在地理位置分散的群集添加宽容。相干与预先设定的配置。一些TCMP属性是动态的自我配置在运行时,但也可以覆盖和锁定部署。

6.3了解群集服务

cherence功能是基于群集服务的概念。每个群集节点可以提供以及消耗任何数量的命名服务。这些命名服务可能运行在一个或多个其他群集节点或集群节点可以注册新的命名服务。每个命名服务都有一个服务名称,唯一标识群集内的服务和服务类型,定义了什么样的服务,能做到。可能有多个命名实例,每个服务类型(除的根群集服务)。以下服务类型所支持的连贯性。

连接服务

    群集服务:该服务时自动启动一个群集节点必须加入集群,每个集群节点总是有且只有 一个运行这种类型的服务。这项服务是负责为其他群集节点的检测,检测故障 的群集节点,并为注册的可用性集群中的其他服务。

    代理服务:该服务允许从群集外运行的客户端的连接(使用TCP)。虽然许多应用程序 配置,使所有的客户都群集成员,还有很多使用的情况下,它是可取的外 集群上运行的客户端。远程客户端的情况下,有数百或数千的客户流程, 客户端没有运行在Java平台上,或需要更大程度的耦合特别有用。

加工服务

    调用服务:这项服务提供集群调用,并支持网格计算架构。此服务允许应用程序调用代 理集群中的任何节点上,或任何一组节点,或整个集群。代理调用可以请求/响应,消 防和忘记,或异步的用户自定义模式。

数据服务

    分布式缓存服务:该服务允许群集节点分发跨集群使每一块缓存中的数据管理(持有)只有一个群集节点(分区)的数据。分布式缓存服务支持悲观。此外,为支持故障转移没有任何数据丢失,服务可以使每一块的数据备份由一个或多个其他群集节点配置。最后,一​​些群集节点可以配置持有任何数据,这是非常有用的,例如,限制应用程序服务器进程的Java堆大小,通过设置应用服务器进程不持有任何分布式数据,并通过运行额外的缓存服务器的JVM提供分布式缓存存储。分布式缓存欲了解更多信息,请参阅分布式缓存

    复制缓存服务:这是一个同步复制的缓存服务,完全复制所有的数据到所有群集节点上运行的服务。复制缓存支持悲观锁,以确保所有集群成员时收到更新数据被修改。复制缓存通常用于管理内部应用程序元数据。如需复制缓存的更多信息,请参阅复制缓存

    乐观缓存服务:这是一个乐观的并发版本,完全复制所有的数据到所有群集节点,并采用了类似到乐观的数据库锁定以保持一致性的优化复制缓存服务。结束了所有的服务器相同的电流值,即使发生在完全相同的时间,来自不同服务器的多个更新。乐观的缓存服务不支持悲观锁,所以,一般来说,它应该只用于只读用途缓存最近已知值。这项服务是很少使用。乐观缓存的更多信息,请参阅乐观缓存

群集服务通常使用一个守护线程,并任选一个线程池,可以配置额外的处理带宽提供服务。例如,调用服务和分布式缓存服务都完全支持线程池来加快数据库负载操作,并行分布式查询和代理调用。

上面的服务都只有基本的集群服务,而不是一整套连贯性所提供的缓存类型。通过缓存功能,如支持地图和溢出地图的群集服务相结合,连贯性提供了一套非常灵活和可配置的集群应用程序的选项。

高速缓存服务中,存在任意数量的命名缓存。命名缓存提供了标准的JCache API,它是基于Java集合API键 值对,称为java.util.Map的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值