- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新 Java SDK 版本后尝试连接集群时遇到此问题。
系统设置如下:
我们有一个使用 Java SDK 和 Couchbase 集群的 Web 应用程序。在两者之间我们有一个 VIP(虚拟 IP 地址)。我们意识到这并不理想,但我们无法立即改变这一点,因为 VIP 是由技术运营部门强制执行的。 VIP 基本上只是在应用程序启动时重新路由初始请求。这样我们就可以对集群进行修改,并确保当应用程序启动时,无论集群中的实际节点及其IP如何,它都可以找到集群。
在出现此问题之前,我们使用的是 JAVA SDK 版本 1.4.4。我们的应用程序将启动,Java SDK 将在端口 8091 上向 VIP 发起请求。请注意,端口 8091 是 VIP 上唯一开放的端口。 VIP 会将请求重新路由到当前正在使用的节点集群之一,该集群将响应 Java SDK。此时,Java SDK 将发现集群中的所有节点,并且应用程序将正常运行。在正常运行期间,如果我们从集群中添加、删除节点,Java SDK 将自动更新,并且一切都将正常运行,不会出现问题。
在上一个冲刺中,我们将 Java SDK 更新到版本 2.1.3。我们的应用程序将启动,Java SDK 将在端口 11210 上向 VIP 发起请求。由于此端口未打开,请求将失败并且 Java SDK 将抛出异常:
Caused by: java.lang.RuntimeException: java.util.concurrent.TimeoutException
at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93)
at com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:108)
at com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:99)
at com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:89)
不会在任何端口上发出进一步的请求。
版本之间使用端口的顺序似乎已更改。有人可以确认或质疑用于集群发现的端口顺序在版本之间已更改吗?另外,有人可以就我们如何解决该问题提供一些建议吗?我们正在尝试了解客户端的行为,如果我们可以打开 VIP 上的所有这些端口,客户端是否仍能正常运行并发挥全部性能?
该问题发生在我们的生产环境中,我们无法使用该环境来测试潜在的解决方案,因为它会干扰我们的产品。
最佳答案
在 Java SDK v2.x 中,默认为 11210 来获取集群映射来引导应用程序。这实际上是一个巨大的改进,因为现在映射来自托管缓存而不是集群管理器(8091)。如果 SDK 无法获取 11210 上的 map ,则它应该使用 8091 作为后备。无论如何,你真的很想从 11210 得到那张 map ,相信我。它解决了很多问题。
要解决这个长期问题并遵循 Couchbase 最佳实践,请升级到 Java 2.2.x SDK,完全摆脱 VIP 并改用 DNS SRV 记录。这为您提供了 SDK 连接对象的一个 DNS 条目,您只需管理 DNS 中的节点列表即可。效果很好。我说 SDK 2.2 是完全支持 DNS SRV 记录解决方案的,在 2.1 中它是实验性的。如今,Couchbase 特别建议不要使用 VIP。在旧版本的 SDK 中,这样做很好,它有助于限制从应用程序到数据库节点的连接数量,但这不再是必要的,实际上可能是一件坏事。
关于couchbase - 更新Java SDK版本后尝试连接集群时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32690374/
我有看起来像这样的文件: { "name": "n", "age": 22 //other properties "hash": "XyRZHDJJD6738..." //This property
有下一个对象 "a" : { "id" : "1", "arr" : [ {"id" : "b1"}, {"id" : "b2"} ] } "b1" : { "id" : "b
Couchbase 文档说“磁盘持久性使您能够执行备份和恢复操作,并使您能够将数据集增长到比内置缓存层更大的数据集”,但我似乎无法让它发挥作用。 我正在一个三节点集群上测试 Couchbase 2.5
我搜索了有关 Couchbase 如何在集群内实现强一致性的解释。这一切都是因为使用了membase吗? 最佳答案 顺便说一句,Couchbase 是 membase。 Couchbase 是一个产品
我有以下格式存储的 couchbase 文档: { "userEmail": "satyam@xyz.com", "hashedPassword": "$2a$12$MT31FHNEbOAKpQGzL
请在下方找到有关 Couchbase 产品路线图的问题。 上下文 我目前正在研究一项将现有系统(后端应用程序和移动应用程序)转变为 Multi-Tenancy 应用程序的功能。 堆栈将是: 沙发底座
什么是 Couchbase,什么是 Couchbase Lite?两者之间有什么区别吗?如何在移动设备中创建 couchbase lite 以及如何与服务器通信? 最佳答案 你碰巧知道CouchDB
我正在寻找一种使用 Spring Data Couchbase 连接到两个单独的 Couchbase 集群的方法。查看文档和实现,不清楚如何执行此操作,我担心如果有两个扩展 AbstractCouch
我想使用 couchbase lite 和 couchbase syncgetway 在 nodejs 中开发一个 CRUD 应用程序。我想在 Raspberry-pi 上运行这个 Node js 应
我在 couchbase 存储桶中有具有这种结构的文件: "name": { "grandfather": { "parent1": { "ch
我有一个依赖于另一个的文件。第一的: { "doctype": "closed_auctions", "seller": { "person": "person11304" },
我以前使用过 couchdb 并且非常喜欢它的 UI,因为我可以直接在 UI 中创建 View 并测试它们并查看文档。 因为,我需要扩展,所以我开始使用 couchbase。但是,在安装 couchb
我的环境中有一个二级索引(没有复制),我想知道如何在不删除索引的情况下创建复制? 我不想删除索引并用副本重新创建它,因为我没有使用主索引,因此有约束。 谢谢 最佳答案 即将发布的 6.50 版本您可以
我正在考虑将 couchbase 用于我的下一个 Web 应用程序,我想知道我的数据应该如何构建,特别是存储桶的使用。例如,假设每个用户将拥有大量唯一数据,是否应该为每个用户创建一个单独的存储桶(甚至
我正在开发一个小型 express 应用程序,目前允许用户登录(通过护照)并查看有关他们 friend 的信息,即购买历史记录、喜欢等。理想情况下,我希望每个用户都有一个随附的个人资料照片和他们购买的
对于 Cassandra,假设复制因子为 1(即数据集的两个副本),至少需要三个节点才能启用具有强一致性的写入。 Couchbase 似乎没有这个要求,至少我没有在任何地方找到它。尽管如此,Couch
我正在使用 Couchbase 存储桶,其中所有文档都使用 DocType 保存。标识包含什么类型的数据的属性。我想执行一个查询,从每个 DocType 给我一个结果, 用作所有文档类型的示例。 我可
无法更改 Couchbase 控制台的端口号。默认为 8091。我试图在已知的 static_config 文件中附加一行。这条线就像- {rest_port, 9000}. 这是我缺少文件的屏幕。
我想使用 Couchbase,但我想在一些类似于 RethinkDB 的方式实现更改跟踪。 似乎有很多方法可以将更改从 Couchbase 服务器推送给我。 DCP 点击 XDCR 哪一个是正确的选择
我有一个 couchbase 文档,id 为 x x 没有子文档,因为在一些子文档操作中都被删除了,它是这样的 {} 我想删除所有没有子文档的空文档。是否可以在 couchbase 中使用 N1QL
我是一名优秀的程序员,十分优秀!