6.8.配置日志
通常,为了准确了解ApacheGeode正在做什么以及何时执行,有必要打开日志记录。
要启用日志记录,请使用
EnableLogging并设置适当的属性或关联属性来注释您的应用程序类,如下所示:ClientCache启用日志记录的Spring应用程序
SpringBootApplication
ClientCacheApplicationEnableLogging(logLevel="info",logFile="/absolute/file/system/path/to/application.log)publicclassClientApplication{..}虽然logLevel可以使用所有基于缓存的应用程序注释(例如,
ClientCacheApplication(logLevel="info"))指定该属性,但使用EnableLogging注释自定义日志记录行为更容易。此外,您可以log-level通过spring.data.gemfire.logging.level在application.properties.
有关更多详细信息,请参阅
EnableLogging注释Javadoc。6.9.配置统计
要在运行时更深入地了解ApacheGeode,您可以启用统计信息。收集统计数据有助于系统分析和故障排除,当复杂问题发生时,这些问题通常在自然界中分布且时间是一个关键因素。
启用统计后,您可以使用ApacheGeode的VSD(可视统计显示)工具来分析收集的统计数据。
要启用统计信息,请使用注释您的应用程序类
EnableStatistics,如下所示:ClientCache启用统计的Spring应用程序
SpringBootApplication
ClientCacheApplicationEnableStatisticspublicclassClientApplication{..}在评估性能时,在服务器上启用统计信息特别有价值。要做到这一点,你的注释
PeerCacheApplication或CacheServerApplication类EnableStatistics。您可以使用
EnableStatistics注释属性或关联属性来自定义统计信息收集和收集过程。有关更多详细信息,请参阅
EnableStatistics注释Javadoc。可以在此处找到有关ApacheGeode统计数据的更多详细信息。
6.10.配置PDX
ApacheGeode更强大的功能之一是PDX序列化。虽然对PDX的完整讨论超出了本文档的范围,但使用PDX进行序列化是Java序列化的更好替代方法,具有以下优点:
PDX使用集中式类型注册表来保持对象的序列化字节更紧凑。
PDX是一种中性的序列化格式,允许Java和Native客户端对同一数据集进行操作。
PDX支持版本控制并允许添加或删除对象字段,而不会影响使用已更改的旧版或新版PDX序列化对象的现有应用程序,而不会丢失数据。
PDX允许在OQL查询投影和谓词中单独访问对象字段,而无需先对对象进行反序列化。
通常,在正常分发和复制过程中,以及在数据溢出或持久化到磁盘时,任何时候都需要在ApacheGeode中进行序列化。
启用PDX序列化比修改要实现的所有应用程序域对象类型要简单得多java.io.Serializable,尤其是在对应用程序域模型施加此类限制可能不合需要时,或者您对正在序列化的对象没有任何控制权时,尤其如此使用3rd方库时为true(例如,考虑带有Coordinate类型的地理空间API)。
要启用PDX,请使用注释您的应用程序类
EnablePdx,如下所示:ClientCache启用PDX的Spring应用程序
SpringBootApplicationClientCacheApplicationEnablePdxpublicclassClientApplication{..}通常,应用程序的域对象类型要么实现该org.apache.geode.pdx.PdxSerializable接口,要么您可以实现并注册该接口的非侵入式实现,org.apache.geode.pdx.PdxSerializer以处理所有需要序列化的应用程序域对象类型。
不幸的是,ApacheGeode只允许PdxSerializer注册一个,这表明所有应用程序域对象类型都需要由单个PdxSerializer实例处理。然而,这是一种严重的反模式和不可维护的做法。
尽管只能PdxSerializer向ApacheGeode注册一个实例,但为PdxSerializer每个应用程序域对象类型创建一个实现是有意义的。
通过使用复合软件设计模式,您可以提供PdxSerializer接口的实现,该接口聚合所有应用程序域对象类型特定的PdxSerializer实例,但充当单个PdxSerializer实例并注册它。
您可以PdxSerializer在Spring容器中将此组合声明为托管bean,并使用属性PdxSerializer在
EnablePdx注释中通过其bean名称引用此组合serializerBeanName。SpringDataforApacheGeode负责代表您将其注册到ApacheGeode。以下示例显示了如何创建自定义组合PdxSerializer:
ClientCache启用PDX的Spring应用程序,使用自定义组合PdxSerializer
SpringBootApplicationClientCacheApplicationEnablePdx(serializerBeanName="转载请注明:http://www.0431gb208.com/sjsbszl/2594.html