zoukankan      html  css  js  c++  java
  • Redis缓存接入监控、运维平台CacheCloud

    改造RedisConnectionFactory

    /**
    * 根据缓存策略的不同,RedisConnectionFactory不同
    * 示例是单机模式。
    *
    * @return
    */
    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
    while (true) {
    try {
    LOCK.tryLock(100, TimeUnit.MILLISECONDS);
    /**
    * 心跳返回的请求为空;
    */
    String response = HttpUtils.doGet("http://localhost:5005/cache/client/redis/standalone/10000.json?clientVersion=1.0-SNAPSHOT");
    if (response == null || response.isEmpty()) {
    continue;
    }
    JSONObject jsonObject = null;
    try {
    jsonObject = JSONObject.parseObject(response);
    } catch (Exception e) {
    }
    if (jsonObject == null) {
    continue;
    }
    /**
    * 从心跳中提取HostAndPort,构造JedisPool实例;
    */
    String instance = jsonObject.getString("standalone");
    String[] instanceArr = instance.split(":");
    if (instanceArr.length != 2) {
    continue;
    }

    //收集上报数据
    ClientDataCollectReportExecutor.getInstance("http://localhost:5005/cachecloud/client/reportData.json");

    String password = jsonObject.getString("password");
    String host = instanceArr[0];
    String port = instanceArr[1];

    JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
    jedisConnectionFactory.setPassword(password);
    jedisConnectionFactory.setHostName(host);
    jedisConnectionFactory.setPort(Integer.parseInt(port));
    return jedisConnectionFactory;
    } catch (InterruptedException e) {
    logger.error("error in build().", e);
    }

    }
    }
    改造 jedis-2.9.0

    Connection.java

    /**
    * 命令捕获,异常保存
    * @param cmd
    * @param args
    */
    public void sendCommand(final ProtocolCommand cmd, final byte[]... args) {
    try {
    //统计开始
    UsefulDataModel costModel = UsefulDataModel.getCostModel(threadLocal);
    costModel.setCommand(cmd.toString().toLowerCase());
    costModel.setStartTime(System.currentTimeMillis());
    connect(http://www.my516.com);
    Protocol.sendCommand(outputStream, cmd, args);
    } catch (JedisConnectionException ex) {
    UsefulDataCollector.collectException(ex, getHostPort(), System.currentTimeMillis());
    broken = true;
    throw ex;
    }
    }
    JedisClusterCommand.java

    private T runWithRetries(byte[] key, int attempts, boolean tryRandomNode, boolean asking) {
    if (attempts <= 0) {
    JedisClusterMaxRedirectionsException exception = new JedisClusterMaxRedirectionsException("Too many Cluster redirections? key=" + SafeEncoder.encode(key));
    //收集
    UsefulDataCollector.collectException(exception, "", System.currentTimeMillis(), ClientExceptionType.REDIS_CLUSTER);
    throw exception;
    }
    }
    更新spring-boot-starter-data-redis依赖

    <!--Redis-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <exclusions>
    <exclusion>
    <artifactId>jedis</artifactId>
    <groupId>redis.clients</groupId>
    </exclusion>
    </exclusions>
    </dependency>
    <dependency>
    <groupId>com.sohu.tv</groupId>
    <artifactId>cachecloud-open-client-redis</artifactId>
    <version>1.0-SNAPSHOT</version>
    <exclusions>
    <exclusion>
    <artifactId>jedis</artifactId>
    <groupId>redis.clients</groupId>
    </exclusion>
    </exclusions>
    </dependency>
    <!--上步改造后编译的jar-->
    <dependency>
    <groupId>com.github.pig</groupId>
    <artifactId>pig-cache-cloud-jedis</artifactId>
    <version>2.9.1</version>
    </dependency>
    部署服务war

    这一步直接参考 cachecloud 的文档即可
    ---------------------

  • 相关阅读:
    【bzoj1707/Usaco2007 Nov】tanning分配防晒霜——贪心+优先队列
    【bzoj1754/Usaco2005 qua】Bull Math——高精度乘法
    【bzoj1709/Usaco2007 Oct】Super Paintball超级弹珠——递推
    【bzoj2060/Usaco2010 Nov】Visiting Cows 拜访奶牛——树形dp
    【bzoj1710/Usaco2007 Open】Cheappal 廉价回文——区间dp
    【bzoj1828/Usaco2010 Mar】balloc 农场分配——贪心+差分+优先队列
    【bzoj4552/Tjoi2016&Heoi2016】排序——二分+线段树/平衡树+线段树分裂与合并
    【bzoj2083/Poi2010】Intelligence test——二分+贪心
    【bzoj1596/Usaco2008 Jan】电话网络——dfs
    【bzoj1782/Usaco2010 Feb】slowdown 慢慢游——dfs序+树状数组
  • 原文地址:https://www.cnblogs.com/ly570/p/11167528.html
Copyright © 2011-2022 走看看