我有 02 个节点,一个在 127.0.0.1 上运行,另一个在 127.0.0.2 上运行
我添加到集群的数据会同时出现在两个节点上吗?目前,当我停止节点1时,第二个节点中没有类似的数据,当我使用list命令时也会抛出一些异常:
Using default limit of 100
Using default column limit of 100
null
UnavailableException()
at org.apache.cassandra.thrift.Cassandra$get_range_slices_result.read(Cassandra.java:12346)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
at org.apache.cassandra.thrift.Cassandra$Client.recv_get_range_slices(Cassandra.java:692)
at org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:676)
at org.apache.cassandra.cli.CliClient.executeList(CliClient.java:1425)
at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:273)
at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:219)
at org.apache.cassandra.cli.CliMain.main(CliMain.java:346)
还有一件事是我在我的 java 应用程序中使用 kundera 连接到 cassandra db(在 Play FW 2.0.4 上构建),我的持久性文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="cassandra_pu">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<properties>
<property name="kundera.nodes" value="localhost"/>
<property name="kundera.port" value="9160"/>
<property name="kundera.keyspace" value="LSYCS"/>
<property name="kundera.dialect" value="cassandra"/>
<property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.pelops.PelopsClientFactory" />
<property name="kundera.cache.provider.class" value="com.impetus.kundera.cache.ehcache.EhCacheProvider"/>
<property name="kundera.cache.config.resource" value="/ehcache-test.xml"/>
</properties>
</persistence-unit>
</persistence>
我假设当节点 1 关闭时,应用程序仍然能够连接到第二个节点,但它无法做到这一点。这里真的有问题吗?我期望的是当 127.0.0.1 离线时,127.0.0.2 将能够处理这些作业,还是他们需要一个顶级应用程序来管理它们?
P/S:我在我的电脑上设置,因此 127.0.0.1 和 127.0.0.2 都指向 localhost