zoukankan      html  css  js  c++  java
  • 基于CacheManager组件的缓存产品配置

    一、Couchbase

    使用CacheManager组件,在配置Couchbase缓存支持时,由于对配置节cache handle命名规则要求不了解,费了点时间查了源码才明白。

    section配置节

        <sectionGroup name="couchbaseClients">
          <section name="couchbase" type="Couchbase.Configuration.Client.Providers.CouchbaseClientSection, Couchbase.NetClient" />
        </sectionGroup>

    cacheManager中的cache节点配置

        <managers>
          <cache name="cacheName" updateMode="Up" enableStatistics="false" enablePerformanceCounters="false">        
            <handle name="couchbaseClients/couchbase:default" ref="couchbaseHandle" expirationMode="Absolute" timeout="50s"/>
          </cache>
        </managers>
    注意:

    handleName的命名规则必须满足可通过配置名称找到CouchbaseClientSection对应配置节,即couchbaseClients下的couchbase

    Bucket名为可选,默认为default

    格式为<configKey>:<bucketName>

    源码参考CacheManager.Couchbase.BucketCacheHandle

                // we can configure the bucket name by having "<configKey>:<bucketName>" as handle's
                // name value
                var nameParts = configuration.Key.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                Ensure(nameParts.Length > 0, "Handle key is not valid {0}", configuration.Key);
    
                this.configurationName = nameParts[0];
    
                if (nameParts.Length == 2)
                {
                    this.bucketName = nameParts[1];
                }
    
                this.configuration = CouchbaseConfigurationManager.GetConfiguration(this.configurationName);
                this.bucketConfiguration = CouchbaseConfigurationManager.GetBucketConfiguration(this.configuration, this.bucketName);
                this.bucket = CouchbaseConfigurationManager.GetBucket(this.configuration, this.configurationName, this.bucketName);

    二、memcached

    memcached配置时,对cacheManager中的cache节点handle的命名也和Couchbase类型,配置如下

        <sectionGroup name="enyim.com">
          <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
        </sectionGroup>
        <managers>
          <cache name="cacheName" updateMode="Up" enableStatistics="false" enablePerformanceCounters="false">        
            <handle name="enyim.com/memcached" ref="memcachedHandle"/>
          </cache> 
        </managers>

    或者

        <managers>
          <cache name="cacheName" updateMode="Up" enableStatistics="false" enablePerformanceCounters="false">        
            <handle name="default" ref="memcachedHandle"/>
          </cache> 
        </managers>
    handle命名为enyim.com/memcacheddefault,default时组件自动为转化为enyim.com/memcached
  • 相关阅读:
    1. Spring Cloud Greenwich SR2 概览
    Spring zuul 快速入门实践 --服务转发实现解析
    文件上传下载原理:http协议分析及实现
    Tomcat session的实现:线程安全与管理
    Dubbo(七):redis注册中心的应用
    Dubbo(六):zookeeper注册中心的应用
    Dubbo(五):集群容错的实现
    Dubbo(四):服务路由的实现
    Dubbo(三):负载均衡实现解析
    Nginx(一):启动流程解析
  • 原文地址:https://www.cnblogs.com/shijun/p/5287625.html
Copyright © 2011-2022 走看看