自从我开始专注于CouchDB Membase(Couchbase)以来已经是第四天了,由于管理简单,Membase对我来说似乎是非常有趣的技术,它们的界面非常简洁.添加/删除存储桶的方式很有趣.
不幸的是,我没有设法在Mac OS X上启动他们的.NET客户端(在Windows上工作正常),也无法找到执行Map/Reduce查询的方式,所以看起来Membase Server技术比纯粹简单一点CouchDB的.无论如何一切都改变了,直到最近我偶然发现了描述他们技术的图表:
图像在这里解释
似乎"Couchbase服务器(当前Membase服务器)"扮演某种不直接访问的Master数据库的角色,还有"Couchbase Single Server"扮演客户端数据库的角色,具有CouchDB的所有功能(例如Map/Reduce查询)
如果是这样,那么"CouchSync"是如何执行的?是否可以从代码中执行此"CouchSync"?
我计划在我的Web应用程序中使用Couchbase作为文档存储.我正在寻找适用于Java的Couchbase客户端,如果我将Couchbase存储桶视为处理通用实体,则需要为每个存储桶创建单独的Couchbase客户端.这对系统来说有点过分(但是,我可以重用执行服务来最小化对象创建和线程管理开销.)
所以
我将在Rails中开始一个新的Web项目(肯定也有一个phonegap应用程序),我想知道使用Couchbase和Rails是否是一个好主意.
我认为rails最好的东西之一就是activerecord.我相信改变这种行为并不是利用Rails的力量......但也许我错了.
有人用过这种组合吗?最好使用其他技术而不是使用Couchbase的Rails?
谢谢你的意见.
我的应用程序有couchbase视图(map-reduce).目前,我正在将它们写在一个文本文件中,并从couchbase管理页面为每个新的couchbase服务器加载它们(繁琐且容易出错的过程).
无论如何,当我部署一个新的couchbase服务器或者当我创建一个新的存储桶时,我可以将所有这些视图从文本文件加载到couchbase中吗?
我记得在mysql中,我们曾经将所有插入查询和过程写入文件,并将文件提供给mysql(通过命令提示符)为每个新实例.是否有任何此类策略可用于couchbase?
我需要有本地Couchbase集群并将我们的prod集群中的数据复制到它上面,不能直接在OS X上安装它(因为vbuckets不兼容 - prod集群在linux上).
Docker用于救援.我已经设法创建了Dockerfile, 你可以在这里看到它.
现在,集群运行,它可以在LAN内访问,所有必要的端口都转发 - 我使用了这里描述的技巧
我在XDCR选项卡中成功创建了集群引用,但每当我尝试复制存储桶的数据时 - 它会将我的集群的主机名更改为某个非敏感的IP地址并创建一个日志条目:
Updated remote cluster `mycluster` hostname to "172.17.0.5:8091"
because old one ("mylaptop.company.com:8091")
is not part of the cluster anymore
Run Code Online (Sandbox Code Playgroud)
我知道Couchbase对ip地址非常敏感,正如你所看到的,我正在使用我的机器的主机名(docker容器的主机).我尝试使用改变容器的主机名docker run -h
,这似乎没有帮助.
有人,你们有没有设置XDCR与在docker容器中运行的集群?
我在maven项目中使用java.我正在使用couchbase 2.3.1,但在尝试解决此问题时,我回滚到2.2.8无济于事.
我得到的问题是,当我确实到达我的couchbase集群时,我看到了很多这样的事情:
java.lang.RuntimeException: java.util.concurrent.TimeoutException
at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:75)
at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:359)
at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:354)
Run Code Online (Sandbox Code Playgroud)
以下是我的couchbase环境的设置:
CouchbaseEnvironment: {sslEnabled=false, sslKeystoreFile='null', sslKeystorePassword='null', queryEnabled=false, queryPort=8093, bootstrapHttpEnabled=true, bootstrapCarrierEnabled=true, bootstrapHttpDirectPort=8091, bootstrapHttpSslPort=18091, bootstrapCarrierDirectPort=11210, bootstrapCarrierSslPort=11207, ioPoolSize=24, computationPoolSize=24, responseBufferSize=16384, requestBufferSize=16384, kvServiceEndpoints=1, viewServiceEndpoints=1, queryServiceEndpoints=1, searchServiceEndpoints=1, ioPool=NioEventLoopGroup, coreScheduler=CoreScheduler, eventBus=DefaultEventBus, packageNameAndVersion=couchbase-java-client/2.2.8 (git: 2.2.8, core: 1.2.9), dcpEnabled=false, retryStrategy=BestEffort, maxRequestLifetime=75000, retryDelay=ExponentialDelay{growBy 1.0 MICROSECONDS, powers of 2; lower=100, upper=100000}, reconnectDelay=ExponentialDelay{growBy 1.0 MILLISECONDS, powers of 2; lower=32, upper=4096}, observeIntervalDelay=ExponentialDelay{growBy 1.0 MICROSECONDS, powers of 2; lower=10, upper=100000}, keepAliveInterval=30000, autoreleaseAfter=2000, bufferPoolingEnabled=true, tcpNodelayEnabled=true, mutationTokensEnabled=false, socketConnectTimeout=1000, dcpConnectionBufferSize=20971520, dcpConnectionBufferAckThreshold=0.2, dcpConnectionName=dcp/core-io, callbacksOnIoPool=false, queryTimeout=75000, viewTimeout=75000, kvTimeout=2500, …
Run Code Online (Sandbox Code Playgroud) 我遇到了连接问题,这在亚马逊环境(AWS)中的私有虚拟vpc中是一个奇怪的问题.我的上下文是这样的,我在这个子网中有子网我有2台机器客户端机器,我使用Couchbase java SDK和Couchbase服务器的机器.两者都是大型实例.当前的java版本1.6.我在安全组上打开了Couchbase的所有必需端口(8091,8092,11210).我正在使用curl命令测试连接,以测试与存储桶的连接,这里没有问题.奇怪的行为是当我尝试使用java客户端访问视图时,因为我收到超时错误,尽管java客户端已成功通过身份验证.
这是我的日志的样子:
(CacheManager.java:102) -B06C9F5CFF85- Cache client checked out [stdout]
INFO com.couchbase.client.CouchbaseConnection: Added {QA sa=/10.0.X.XXX:11210, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
INFO com.couchbase.client.CouchbaseConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@57a220c2
INFO net.spy.memcached.auth.AuthThread: Authenticated to 10.0.X.XXX/10.0.X.XXX:11210
Added 10.0.X.XXX to connect queue
INFO com.couchbase.client.CouchbaseClient: viewmode property isn't defined. Setting viewmode to production mode
INFO com.couchbase.client.http.AsyncConnectionManager: Opening new Couchbase HTTP connection
INFO com.couchbase.client.http.AsyncConnectionManager$ConnRequestCallback: /10.0.X.XXX:8092 - Session request successful
ERROR com.couchbase.client.ViewNode$EventLogger: Connection timed out: [10.0.X.XXX/10.0.X.XXX:8092]
and then after a while
INFO …
Run Code Online (Sandbox Code Playgroud) 在Pouch DB中是否支持Couchbase Sync Gateway的"频道"?我希望能够使用看到整体数据的子集,如果他们创建新数据,以便能够与他们共享的人分享.
PouchDB有可能吗?或者我是否必须直接与服务器交互或使用couchbase lite用于移动设备?
我正在尝试使用AWS Lambda将数据从我的S3存储桶传输到Couchbase服务器,而我正在用Python编写.所以我需要在我的Python脚本中导入couchbase模块.通常如果脚本中使用了外部模块,我需要在本地pip安装这些模块并将模块和脚本压缩在一起,然后上传到Lambda.但这次不行.原因是couchbase的Python客户端与couchbase的c客户端一起工作:libcouchbase.所以我不清楚自己应该做些什么.当我只是在C客户端包添加(虽这么说,我有6个包文件夹在我的部署包,前5个是安装的那些当我运行"PIP安装couchbase":couchbase,acouchbase,gcouchbase,txcouchbase,couchbase- 2.1.0.dist-info;最后一个是我安装的Couchbase的c客户端:libcouchbase),lambda不起作用并说:
"无法导入模块'lambda_function':libcouchbase.so.2:无法打开共享对象文件:没有这样的文件或目录"
关于如何才能完成这项工作的任何想法?非常感谢.
SELECT (SELECT RAW subcomments
FROM comments.subcomments AS subcomments
JOIN users ON subcomments.userId = users.id
ORDER BY subcomments.createdDate DESC) as subcomments,
ARRAY_COUNT(comments.subcomments) as subcommentCount
FROM comments where comments.id = "f4f0f481-f0d6-4edf-8a0c-494651becdf2" and projectId= "1"
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此查询时,收到以下错误:
[
{
"code": 5370,
"msg": "Unable to run subquery - cause: FROM in correlated subquery must have USE KEYS clause: FROM users.",
"query": "SELECT (SELECT RAW subcomments \nFROM (Select * from comments.subcomments as sbcm\nJOIN users ON sbcm.userId = users.id ) as a\nORDER BY subcomments.createdDate DESC) as subcomments,\nARRAY_COUNT(comments.subcomments) …
Run Code Online (Sandbox Code Playgroud) couchbase ×10
java ×3
aws-lambda ×1
connectivity ×1
cordova ×1
couchdb ×1
docker ×1
linux ×1
membase ×1
networking ×1
nosql ×1
performance ×1
pouchdb ×1
python ×1
ruby ×1
sql++ ×1
timeout ×1
xdcr ×1