zoukankan      html  css  js  c++  java
  • 由Memcached升级到 Couchbase的 Java 客户端的过程记录(一)

    背景:

      在项目启动的选用了Memcached 作为缓存服务器,采用了Xmemcached作为客户端。在项目中使用了Shiro,为了给 Shiro 配置缓存的时候,采用了开源代码   https://github.com/mythfish/shiro-memcached 来实现 缓存服务器实现类。其他与项目自适应的修改,皆在当前类的基础上。

          此后,Memcached 升级为了 CouchBase,本项目环境需与此对接。

    环境:

      1、随着数据的增多,为了访问速度的更快,采用缓存服务器来缓解数据库的压力,目前项目采用的是 memcached 缓存服务器

      2、memcached的java 客户端有多种形式,目前采用 Xmemcached

      3、目前项目的框架是 Spring+SpringMVC+MyBatis+Shiro ,需要将 Xmemcached 与这些对应的技术结合起来

      4、Xmemcached 与 Spring的结合,参考:

           https://github.com/ragnor/simple-spring-memcached

      5、Shiro 与 Spring的结合,参考:

           https://github.com/mythfish/shiro-memcached

      6、memcached 升级为新的版本 Couchbase

            关于Couchbase的介绍与安装:http://developer.couchbase.com/documentation/server/4.5/getting-started/installing.html

        也可参考 我的另一篇博客  Couchbase的安装步骤

      7、由于Couchbase 是整合了 Membase、Memcached和CouchDB ,未改变其根本性功能,故 在其发挥与Memcached相同的功能的时候,可以就采用原有的Memcached 的使用方法!

      8、Couchbase 安装后,http://localhost:8091 是web 控制台访问路径。11211 是Memcached 访问端口,8091 是管理和操作端口,其他几个是用于管理和集群通讯的。

    对比知识要点:

      由于我的环境使然,我只会去关注 couchbase 中与缓存相关的功能。

      先理解一下 Couchbase Server的结构。集群、Couchbase Server(在集群中每一个Couchbase是一个Node)

      

    Cluster
    一个cluster是一个包含一个或多个Couchbase Server实例而且作为一个逻辑上的cluster设置的集群。所有cluster内的node都是相同的,提供相同的功能。每个节点都可以管理cluster并提供其统计数据和操作信息。用户数据通过vBucket系统存储在整个cluster之中。

    Couchbase Server 或 Node
    一个在机器上运行着的Couchbase Server实例,无论是实体机器、虚拟机器、EC2或者其它环境。
    所有Couchbase Server实例都是相同的,提供相同功能、接口和系统,包含相同的组成部件。

    Couchbase Server使用buckets来提供数据管理服务。buckets是为数据准备的互相隔离的虚拟容器。一个bucket就是一个cluster内物理资源的一个逻辑上的分组,可以通过cluster被多个客户使用。Buckets提供了一种安全的组织、管理和分析数据资源的机制。

    Couchbase Server中有两类bucket: 1) memcached buckets,以及 2) couchbase buckets.这两种bucket让你可以选择仅把数据缓存在内存里,还是既缓存在内存里也为了持久性同步到硬盘上。

    有三种可以设置的bucket接口:
    The default Bucket
      默认的default bucket是Couchbase 类型的bucket,预留11211端口且不需要SASL认证。当Couchbase Server安装成功时default bucket也自动安装了。这个bucket也可以在安装后卸载,如果需要再次添加,只需要在11211端口上以default为名称添加一个non-SASL类型的bucket即可。default bucket可以通过一个识别vBucket的智能客户端、一个ASCII客户端或者是不使用SASL认证的二进制客户端访问。
    Non-SASL Buckets
      名称不是“default”的Non-SASL buckets 应该在除了11211以外的端口设置。一个端口上只能安排一个Non-SASL bucket。此类bucket可以通过一个识别vBucket的智能客户端、一个ASCII客户端或者是不使用SASL认证的二进制客户端访问。
    SASL Buckets
      SASL认证的Couchbase类型buckets只能设置在11211端口,不同bucket通过名称和密码区别。SASL bucket不应该在11211以外的端口设置。此类buckets可以通过识别vBucket的智能客户端或支持SASL认证的二进制客户端访问,不可通过ASCII客户端访问。

    与实际结合:

      安装完 CouchBase 后,登录 http://localhost:8091/  Couchbase的管理窗口,可以查看一下 各个页面,页面上都会有与上述概念相关的配置。

    参考博客:Couchbase2.2使用手册(一)——介绍 

  • 相关阅读:
    浅谈左偏树入门
    【洛谷3768】简单的数学题(莫比乌斯反演+杜教筛)
    【51nod1743】雪之国度(最小生成树+倍增)
    【BZOJ1562】[NOI2009] 变换序列(匈牙利算法)
    【HHHOJ】NOIP模拟赛 玖 解题报告
    【BZOJ3930】[CQOI2015] 选数(容斥)
    【BZOJ1257】[CQOI2007] 余数之和(除法分块)
    杜教筛入门
    初学狄利克雷卷积
    关于积性函数的一些知识
  • 原文地址:https://www.cnblogs.com/panie2015/p/6180091.html
Copyright © 2011-2022 走看看