Server Discovery如何工作
Apache Geode的Locator为您的客户提供可靠,灵活的Server Discovery服务。 您可以将所有服务器用于所有客户端请求,或根据功能分组服务器,Locator将每个客户端请求定向到正确的服务器组。
默认情况下,Geode客户端和服务器在localhost的预定义端口(40404)的进行相互发现。 这种方法是可行的,但这不是部署client/server配置的典型方式。 推荐的解决方案是使用一个或多个专用locator。 locator提供发现和负载平衡服务。 使用locator,客户端配置了locator列表,locator维护动态服务器列表。 locator侦听用于连接客户端的地址和端口,并为客户端提供服务器信息。 客户端配置了locator信息,并且没有关指定服务器的配置。
基本配置
在此图中,仅使用了一个locator,但考虑到高可用性建议的配置使用多个locator。
locator和服务器在gemfire.properties
中配置了相同的对等发现:
locators=lucy[41111]
服务器在各自的主机上运行,在cache.xml
中有这个cache-server
配置
<cache-server port="40404" ...
客户端的cache.xml
中的pool
配置和region-attributes
配置:
<pool name="PoolA" ...
<locator host="lucy" port="41111">
<region ...
<region-attributes pool-name="PoolA" ...
使用成员组
您可以通过命名成员组来进行控制使用到的服务器。 如果您希望服务器管理不同的数据集或将特定客户端流量定向到服务器的子集(例如直接连接到后端数据库的服务器),请执行此操作。
要在服务器之间拆分数据管理,请将一些服务器配置为承载一组数据Region,将另一些服务器配置为托管另一组。将服务器分配给两个分开的成员组。 然后,在客户端定义两个单独的服务器连接池,并将池分配给适当的相应客户端Region。
在此图中,Region的客户端使用也是分开的,但您可以在所有客户端中定义两个连接池和两个Region。
这是服务器1的gemfire.properties
定义:
#gemfire.properties
groups=Portfolios
客户端1的pool
声明:
<pool name="PortfolioPool" server-group="Portfolios"...
<locator host="lucy" port="41111">