Apache Geode允许水平和垂直缩放
- 所有系统的核心是单一的P2P分布式系统。
- 在C/S系统中,少数服务器进程为更大的客户机组管理数据和事件处理。
- 在多站点系统中,几个不同地理位置的系统松散地耦合到单个有凝聚力的处理单元中。
准备:
- 确定协议(TCP和UDP单播和多播的组合)和地址(绑定地址或在IPv4和IPv6之间选择)
- 设立会员和沟通
P2P配置及其发现机制
配置P2P发现
gemfire.properties配置文件中可以列出定位器:
locators=<locator1-address>[<port1>],<locator2-address>[<port2>]
如果要运行独立成员,该配置文件禁用locators:
locators=
mcast-address=
mcast-port=0
配置P2P通信
将常规消息设置为使用TCP或UDP单播,在gemfire.properties文件中:
disable-tcp=false
或者使用UDP单播
disable-tcp=true
使用UDP多播且分发到任何region
mcast-address=<address>
mcast-port=<port>
在cache.xml中,为每个需要多播的区域启用多播:
<region-attributes multicast-enabled="true"/>
每个缓存实例或成员直接与分布式系统中的每个其他成员进行通信,一个典型的例子是一个应用程序服务器集群,其中应用程序和高速缓存位于同一位置并共享相同的堆。
成员使用一个或多个定位器发现彼此。定位器提供发现和负载均衡服务。P2P定位器管理分布式系统成员的动态列表。新成员连接到其中一个定位器以检索用于加入系统的成员列表。一个成员一次只能属于一个分布式系统。一旦彼此找到了对方,成员之间直接沟通,独立于发现机制。在P2P发现中,Geode使用成员协调员来管理成员加入和离开。
C/S配置及其发现机制
此结构是垂直扩展的模型,Client通常在应用程序进程空间中托管一小部分数据,然后委托给服务器系统。客户机/服务器体系结构本身与点对点相比,提供了更好的数据隔离性,高提取性能和更高的可伸缩性。如果数据分发会给网络带来很大负担,那么客户机/服务器体系结构通常会提供更好的性能。在任何客户机/服务器安装中,服务器系统本身就是一个P2P系统,数据在服务器之间分配。Client系统有一个连接池,它用来与服务器和其他Geode成员进行通信。Client也可能包含本地缓存。
定位器持续监视服务器可用性和服务器负载信息,随时为Client提供负载最轻的服务器的连接信息。
为了提高性能和缓存一致性,Client必须以独立成员身份运行,或者以不同于其服务器的分布式系统运行。
多站点配置及其发现机制
适用于水平缩放,跨地域,每个站点都是P2P或C/S系统。
发现机制
在多站点(WAN)配置中,Geode集群使用定位器来发现远程Geode集群以及发现本地Geode成员。WAN配置中的每个定位器唯一地标识其所属的本地群集,并且还可以标识远程Geode群集中的定位器,以便将它连接到WAN分配。定位器启动时,它会联系每个远程定位器,以交换有关远程群集中可用定位器和网关接收器配置的信息。除了共享有关其自己的群集的信息之外,定位器还共享从其他所有连接的群集获得的信息。每当新的定位器启动或现有的定位器关闭时,更改的信息将通过广域网广播到其他连接的Geode群集。locator相当于粘合剂的角色,将集群中所有的成员连接在一起。
程序媛小白一枚,如有错误,烦请批评指正!(#.#)