Apache Geode 3.1 群集和缓存配置

本文围绕Apache Geode展开,介绍了集群和缓存配置方法。包括集群成员的配置,可设为客户端或服务器;设置属性可自定义集群配置;还说明了配置缓存和数据区域的选项,以及本地和远程成员身份和缓存的区别,帮助用户更好使用Geode应用程序。

群集和缓存配置

要使用Apache Geode应用程序,请使用配置文件和应用程序代码的组合。

  • 集群成员

    集群成员是连接到Geode集群的程序。您将成员配置为属于单个群集,并且可以选择将它们配置为客户端或服务器以配置到其他群集中的成员,以及与其他群集通信。

  • 设置属性

    Geode为开箱即用的系统提供默认群集配置。要使用非默认配置并微调成员通信,可以使用各种选项的混合来自定义群集配置。

  • 配置缓存和数据区域的选项

    要填充Apache Geode缓存并微调其存储和分发行为,您需要定义缓存数据区域并为缓存和区域提供自定义配置。

  • 本地和远程成员身份和缓存

    对于许多Apache Geode讨论,您需要了解本地和远程成员资格和缓存之间的区别。

会员概述

群集成员(或简称“成员”)在创建Geode数据缓存时连接到Geode群集。成员群集通过Geode属性配置。请参阅gemfire.properties和gfsecurity.properties(Geode Properties)。Geode属性指定成员启动,初始化和通信的所有必要信息。

注意: 成员连接到群集时,无法更改成员的属性。

使用属性来定义:

  • 如何查找和与其他成员沟通
  • 如何执行日志记录和统计活动
  • 哪个持久性配置或cache.xml文件用于缓存和数据区域初始化
  • 其他选项,包括事件合并,如何处理网络丢失和安全设置

成员资格和系统拓扑

每个Geode进程都是一个集群的成员,即使集群被定义为独立的,只有一个成员。您可以单独运行单个群集,也可以组合群集以进行垂直和水平缩放。请参阅拓扑和通信一般概念

  • 点对点集群。定义相同成员发现属性的成员属于同一个群集,并且彼此对等。
  • 客户端/服务器安装。客户端/服务器拓扑使用您在多个集群的成员之间配置的关系。您可以将一个集群中的部分或全部对等配置为从集群外部连接的客户端的缓存服务器。每个服务器都可以托管许多客户端进程,在高效的垂直分层缓存配置中管理所有客户端的缓存访问。您使用客户端缓存配置将客户端应用程序配置为连接到服务器。客户端作为独立Geode集群的成员运行,没有对等体,因此所有数据更新和请求都将发送到服务器。

多站点安装

多站点拓扑使用您在多个群集的成员之间配置的关系。通过此配置,您可以松散地耦合两个或更多集群以进行自动数据分发。这通常针对地理位置不同的站点进行。您可以使用网关发件人和/或网关接收器配置每个群集站点中的对等项子集,以管理在站点之间分发的事件。

在单个集群的上下文中,除非另有说明,否则“远程成员”指的是同一集群的另一个成员。在客户端/服务器和多站点安装中,“远程”通常是指其他群集中的成员。例如,所有服务器都是“远程”连接到它们的客户端。每个客户端独立运行,仅连接到服务器层,因此所有服务器及其他客户端都是“远程”到单个客户端。所有网关接收器都“远程”到网关发送器,这些发送器从其他集群连接到它们,并连接到那些网关发送器的对等体。

设置属性

Geode为开箱即用的系统提供默认配置。要使用非默认配置并微调成员通信,可以使用各种选项的混合来自定义配置。

Geode属性用于加入集群并配置系统成员行为。通过gemfire.properties文件,Java API或命令行输入配置Geode属性。通常,您将所有属性存储在gemfire.properties文件中,但您可能需要通过其他方式提供属性,例如,为您从键盘输入接收的用户名和密码传入安全属性。

注意: 在通过API更改属性(包括gemfire.propertiesgfsecurity.properties设置)之前,请咨询Geode系统管理员。系统管理员可能需要在命令行或配置文件中设置属性。通过API进行的任何更改都将覆盖其他设置。

注意: 产品defaultConfigs目录包含一个gemfire.properties包含所有默认设置的示例文件。

通过以下任意组合设置属性。系统按列出的顺序查找设置:

  1. java.lang.System属性设定。通常在命令行设置。对于应用程序,请在代码或命令行中设置它们。

    命名:以gemfire.property-name格式指定这些属性,其中property-name匹配gemfire.properties文件中的名称。要设置的GemFire属性文件名,使用gemfirePropertyFile本身

    • 在API中,System在缓存创建调用之前设置属性。例:

      System.setProperty("gemfirePropertyFile", "gfTest");
      System.setProperty("gemfire.mcast-port", "10999");
      
      Cache cache = new CacheFactory().create();
      
    • java命令行中,System使用-D开关传入属性。例:

      java -DgemfirePropertyFile=gfTest -Dgemfire.mcast-port=10999 test.Program
      
  2. 进入一个Properties对象。

    命名:使用gemfire.properties文件中的名称指定这些属性。要设置gemfire属性文件名,请使用gemfirePropertyFile

    • 在API中,创建一个Properties对象并将其传递给缓存create方法。例:

      Properties properties= new Properties();
      properties.setProperty("log-level", "warning");
      properties.setProperty("name", "testMember2");
      ClientCache userCache = 
          new ClientCacheFactory(properties).create();
      
    • 对于缓存服务器,请将gfsh命令行上的属性文件作为命令行选项传递。例:

      gfsh>start server --name=server_name --mcast-port=10338 --properties-file=serverConfig/gemfire.properties --security-properties-file=gfsecurity.properties
      

      有关运行缓存服务器的详细信息,请参阅运行Geode服务器进程

  3. gemfire.properties文件中输入。请参阅部署配置文件而不群集配置服务。例:

    cache-xml-file=cache.xml
    conserve-sockets=true
    disable-tcp=false
    
  4. 默认值。默认值在API中定义 org.apache.geode.distributed.ConfigurationProperties

配置缓存和数据区域的选项

要填充Apache Geode缓存并微调其存储和分发行为,您需要定义缓存数据区域并为缓存和区域提供自定义配置。

缓存配置属性定义:

  • 缓存范围的设置,例如磁盘存储,通信超时以及将成员指定为服务器的设置
  • 缓存数据区域

通过以下一种或多种方法配置缓存及其数据区域:

  • 通过在发出使用gfsh命令行实用程序的命令时定义的持久性配置。gfsh实用程序支持Apache Geode进程和应用程序的管理,调试和部署。您可以使用gfsh配置区域,定位器,服务器,磁盘存储,事件队列和其他对象。

    在发出命令时,gfsh会保存一组适用于整个群集的配置,并保存仅适用于群集中已定义成员组的配置。您可以重复使用这些配置来创建群集。请参阅群集配置服务概述

  • 通过在cache-xml-file gemfire.properties设置中命名的XML文件中的声明。此文件通常称为cache.xml文件,但它可以具有任何名称。请参阅cache.xml

  • 通过应用程序调用的org.apache.geode.cache.CacheFactoryorg.apache.geode.cache.Cacheorg.apache.geode.cache.RegionAPI的。

本地和远程成员身份和缓存

对于许多Apache Geode讨论,您需要了解本地和远程成员资格和缓存之间的区别。

有关Geode成员资格和缓存活动的讨论通常会区分本地和远程。本地缓存总是指正在讨论的中心成员,如果有一个这样明显的成员,而远程引用其他成员。如果没有明确的单一本地成员,则讨论会为成员分配名称以进行区分。“成员Q本地”的操作,数据,配置等正在成员Q进程内运行或驻留。“远程成员Q”的操作,数据,配置等正在其他成员中运行或驻留。

本地缓存是属于本地成员的缓存。所有其他缓存都是远程的,无论是在同一群集的其他成员中还是在不同的群集中。

Spring Data for Apache Geode 2.2.5 是 Spring Data 项目的一部分,它提供了对 Apache Geode 的简化访问。通过使用 Spring Data for Apache Geode,开发者可以更容易地与 Geode 进行交互,包括数据的CRUD操作、查询等。下面是如何配置使用 Spring Data for Apache Geode 2.2.5 的基本步骤: ### 1. 添加依赖 首先需要在项目的 `pom.xml` 文件中添加 Spring Data for Apache Geode 的依赖。假设你正在使用 Maven 作为构建工具,那么你需要添加以下依赖: ```xml <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-geode</artifactId> <version>2.2.5</version> </dependency> ``` ### 2. 配置 Geode 客户端 接下来,需要配置 Geode 客户端。这可以通过 Java 配置或者 XML 配置来完成。这里以 Java 配置为例: ```java import org.apache.geode.cache.client.ClientCache; import org.apache.geode.cache.client.ClientCacheFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class GeodeConfig { @Bean public ClientCache clientCache() { ClientCacheFactory factory = new ClientCacheFactory(); factory.addPoolLocator("localhost", 10334); // 指定 Geode 集群的位置 return factory.create(); } } ``` ### 3. 创建实体仓库接口 定义一个实体类一个继承自 `GemfireRepository` 的仓库接口。例如: ```java import org.springframework.data.annotation.Id; import org.springframework.data.gemfire.mapping.annotation.Region; @Region("people") // 指定实体存储在名为 "people" 的区域中 public class Person { @Id private Long id; private String name; // getters and setters... } import org.springframework.data.gemfire.repository.GemfireRepository; public interface PersonRepository extends GemfireRepository<Person, Long> {} ``` ### 4. 使用仓库接口进行数据操作 现在你可以注入 `PersonRepository` 并使用它来进行数据操作了: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class PersonService { @Autowired private PersonRepository personRepository; public void addPerson(Person person) { personRepository.save(person); } } ``` 以上就是使用 Spring Data for Apache Geode 2.2.5 进行基本配置使用的一个简单示例。通过这种方式,你可以轻松地将应用程序与 Geode 集成,利用其分布式缓存功能来提高应用程序的性能可伸缩性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值