• Coherence的NameService


    Coherence*Extend模式下客户端需要连接一个或多个proxy Server从而接入集群,在一些比较大型的环境中,Proxy Server往往比较多,一旦修改起来需要修改每个配置文件,在Coherence 12.1.2中推出了NameService的功能,原理如下:

    • 启动Coherence集群时,先启动一个NameService的进程(固定port),也可以启动多个
    • 所有的客户端指到这个NameService(也可以联到多个),然后由NameService分派一个Proxy Service完成接入
    • 这样每个Proxy Server的配置可以比较简单

    具体配置如下:

    proxy-override.xml

    <?xml version="1.0"?>
    <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
    <cache-config>
    <caching-scheme-mapping>
    <cache-mapping>
    <cache-name>*</cache-name>
    <scheme-name>distributed-scheme</scheme-name>
    </cache-mapping>
    </caching-scheme-mapping>

    <caching-schemes>
    <!-- Distributed caching scheme. -->
    <distributed-scheme>
    <scheme-name>distributed-scheme</scheme-name>
    <service-name>DistributedCache</service-name>
    <thread-count>50</thread-count>
    <backup-count>1</backup-count>
    <backing-map-scheme>
    <local-scheme>
    <scheme-name>LocalSizeLimited</scheme-name>
    </local-scheme>

    </backing-map-scheme>
    <autostart>true</autostart>
    <local-storage>false</local-storage>
    </distributed-scheme>
    <local-scheme>
    <scheme-name>LocalSizeLimited</scheme-name>
    <eviction-policy>LRU</eviction-policy>
    <high-units>500</high-units>
    <unit-calculator>BINARY</unit-calculator>
    <unit-factor>1048576</unit-factor>
    <expiry-delay>48h</expiry-delay>
    </local-scheme>

    <proxy-scheme>
    <service-name>ExtendTcpProxyService</service-name>
    <thread-count>10</thread-count>
    <acceptor-config>
    <tcp-acceptor>
    </tcp-acceptor>
    </acceptor-config>
    <load-balancer>proxy</load-balancer>
    <autostart>true</autostart>
    </proxy-scheme>

    </caching-schemes>
    </cache-config>

    启动nameServer的命令(通过unicast方式启动nameServer)

    "%java_exec%" -server -showversion -Dtangosol.coherence.localhost=192.168.0.101 -Dtangosol.coherence.localport=8088 -Dtangosol.coherence.mode=prod -Dtangosol.coherence.management.remote=true -Dtangosol.coherence.management=all %java_opts% -Dtangosol.coherence.cacheconfig=E:wls12ccoherenceinstorage-override.xml -cp "%coherence_home%libcoherence.jar" com.tangosol.net.DefaultCacheServer %*

    启动后的提示

    启动一个或多个代理服务器,输出

    客户端的schema,client.xml

    <?xml version="1.0"?>
    <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
    <cache-config>
    <caching-scheme-mapping>
    <cache-mapping>
    <cache-name>*</cache-name>
    <scheme-name>extend-dist</scheme-name>
    </cache-mapping>
    </caching-scheme-mapping>

    <caching-schemes>
    <remote-cache-scheme>
    <scheme-name>extend-dist</scheme-name>
    <service-name>ExtendTcpCacheService</service-name>
    <proxy-service-name>ExtendTcpProxyService</proxy-service-name>
    <initiator-config>
    <tcp-initiator>
    <name-service-addresses>
    <socket-address>
    <address>192.168.0.101</address>
    <port>8088</port>
    </socket-address>
    </name-service-addresses>
    <connect-timeout>10s</connect-timeout>
    </tcp-initiator>
    <outgoing-message-handler>
    <request-timeout>5s</request-timeout>
    </outgoing-message-handler>
    </initiator-config>
    </remote-cache-scheme>
    </caching-schemes>
    </cache-config>

     启动以后,看到请求先到NameService 8088.3,然后分到proxy Server,8089:36095

  • 相关阅读:
    项目经理必备的8个要素:沟通、总结、懂技术
    完工概率计算总结
    PMP--可能会涉及到的计算题
    六顶思考帽子法
    预测技术
    React.Component与React.PureComponent的区别
    简单理解JavaScript,TypeScript和JSX
    自己常用的linux命令
    ES6 promise 用法
    node的express框架接收get/post请求时,参数获取方式
  • 原文地址:https://www.cnblogs.com/ericnie/p/5880567.html
Copyright © 2020-2023  润新知