coherence配置说明

时间:2021-06-09 19:32:58

经过上篇 coherence初识 ,最近算是和coherence杠上了,针对coherence3.5.3这个版本,把学到的东西整理下

1. 这个jar包有点大,4M多,首先打开coherence.jar,可以发现里面有许多的配置xml文件,就从这些xml说起

默认的配置文件包含下面文件:
  • tangosol-coherence.xml---提供了operational 和run-time设置,用来创建和配置cluster,通讯和数据管理服务。这个文件通常被称为operational deployment descriptor。
<coherence xml-override="{tangosol.coherence.override /tangosol-coherence-override-{mode}.xml}">
。。。。
</coherence>
  • tangosol-coherence-override-dev.xml---当Coherence启动在dev模式时,这个文件覆盖了tangosol-coherence.xml文件的operational 设置。Coherence启动默认是dev 模式,这个文件中的设置会被使用。
    <coherence xml-override="/tangosol-coherence-override.xml">
    。。。。
    </coherence>
  • tangosol-coherence-override-eval.xml---当Coherence启动在eval模式时,这个文件覆盖了在tangosol-coherence.xml文件的operational 设置。
    <coherence xml-override="/tangosol-coherence-override.xml">
    。。。。
    </coherence>
  • tangosol-coherence-override-prod.xml---当Coherence启动在prod模式时,这个文件覆盖了在tangosol-coherence.xml文件的operational 设置。
    <coherence xml-override="/tangosol-coherence-override.xml">
    。。。。
    </coherence>

默认,使用tangosol-coherence-override.xml这个文件覆盖jar包中的配置,我们可以在自己的项目中加一个tangosol-coherence-override.xml,然后将它加入到classpath中,也可以设置tangosol.coherence.override系统参数指定xml文件,使用coherence不可避免要用集群,以上就是集群的相关配置文件

  • coherence-cache-config.xml---定义在cluster中使用的缓存名称、策略等,我们可以在classpath中添加coherence-cache-config.xml,或者在tangosol-coherence-override.xml中配置
    <configurable-cache-factory-config>
    <class-name>com.tangosol.net.DefaultConfigurableCacheFactory</class-name>
    <init-params>
    <init-param>
    <param-type>java.lang.String</param-type>
    <param-value system-property="tangosol.coherence.cacheconfig">coherence-cache-my.xml</param-value>
    </init-param>
    </init-params>
    </configurable-cache-factory-config>

    或者,设置tangosol.coherence.cacheconfig系统参数指定配置

  • coherence-pof-config.xml---我们可以在classpath中添加coherence-pof-config.xml,或者设置tangosol.pof.config系统参数指定配置
  • Management configuration files 一个用来配置coherence management reports的文件集合。这些文件在coherence.jar库的/reports目录里。文件包含了一组配置文件的报 告(report-group.xml。默认的),参考了许多的报告定义文件。 每个报告定义文件的结果是创建一个报告文件,该文件显示管理信息基于特定的一组度量。

2. 配置集群

在tangosol-coherence-override.xml中简单配置集群名称,成员名称,组播/单播地址,缓存配置等:

<coherence>
<cluster-config>
<member-identity>
<cluster-name system-property="tangosol.coherence.cluster">ProductClusterV3</cluster-name> <!--集群名称-->
<member-name system-property="tangosol.coherence.member">ctas-node</member-name> <!--成员节点名称-->
</member-identity>

<!--单播-->
<unicast-listener>
<well-known-addresses>
<socket-address id="1">
<address system-property="tangosol.coherence.wka">10.6.53.83</address>
<port system-property="tangosol.coherence.wka.port">23401</port>
</socket-address>
<socket-address id="2">
<address system-property="tangosol.coherence.wka">10.6.53.83</address>
<port system-property="tangosol.coherence.wka.port">23403</port>
</socket-address>
<socket-address id="3">
<address system-property="tangosol.coherence.wka">10.6.53.84</address>
<port system-property="tangosol.coherence.wka.port">23401</port>
</socket-address>
<socket-address id="4">
<address system-property="tangosol.coherence.wka">10.6.53.84</address>
<port system-property="tangosol.coherence.wka.port">23403</port>
</socket-address>
</well-known-addresses> <!--<address system-property="tangosol.coherence.localhost">localhost</address>
<port system-property="tangosol.coherence.localport">33414</port> -->
</unicast-listener>

<!--组播-->
<multicast-listener>
<address system-property="tangosol.coherence.clusteraddress">224.3.3.1</address>
<port system-property="tangosol.coherence.clusterport">35301</port>
<time-to-live system-property="tangosol.coherence.ttl">4</time-to-live>
<join-timeout-milliseconds>10000</join-timeout-milliseconds>
</multicast-listener>
</cluster-config>
<configurable-cache-factory-config>
<class-name>com.tangosol.net.DefaultConfigurableCacheFactory</class-name>
<init-params>
<init-param>
<param-type>java.lang.String</param-type>
<param-value system-property="tangosol.coherence.cacheconfig">coherence-cache-config.xml</param-value> <!--缓存配置-->
</init-param>
</init-params>
</configurable-cache-factory-config>
</coherence>

单播要比组播的优先级高,一个集群应该保证名称,组播ip和端口一样,成员节点名称(member-name)可以一样,因为要确定一个节点还有好多其他信息(site-name、machine-name、process-name、role-name等)会默认设置的

实践证明:要想使用自定义配置文件,配置文件的classpath要优先于jar包,否则不会生效,千万注意