无法在现有Apache Ignite单节点集群中创建缓存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在现有Apache Ignite单节点集群中创建缓存相关的知识,希望对你有一定的参考价值。
我在我的单个主机pc中运行了两个Apache Ignite实例(版本2.2.0),他们发现彼此没有任何问题。我现在要做的是简单地在这个现有的“伪集群”中创建一个IgniteCache,最好不要启动新实例。这是我现在的代码:
public class Create_Ignite_Cache {
public static void main(String[] args){
TcpDiscoverySpi spi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder=new TcpDiscoveryMulticastIpFinder();
List<String> adresses=new ArrayList<String>();
adresses.add("127.0.0.1");
ipFinder.setAddresses(adresses);
spi.setIpFinder(ipFinder);
IgniteConfiguration cfg=new IgniteConfiguration()
.setDiscoverySpi(spi).setClientMode(true);
CacheConfiguration cache_conf=new CacheConfiguration<String,String>().setCacheMode(CacheMode.PARTITIONED).setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL).setBackups(1).
setGroupName("Test_group").setIndexedTypes(String.class,String.class).setName("Test_Cache");
Ignite ignite=Ignition.getOrStart(cfg);
ignite.getOrCreateCache(cache_conf);
System.out.print("[INFO] CACHE CREATED");
ignite.close();
}
}
运行此代码时,将创建Ignite客户端实例,尝试创建缓存,然后关闭客户端实例。如果我从Ignite服务器实例检查日志,它会在创建客户端实例时检测到它:
[10:36:57] Topology snapshot [ver=1, servers=1, clients=0, CPUs=12, heap=1.0GB]
[10:41:07] Topology snapshot [ver=2, servers=1, clients=1, CPUs=12, heap=4.6GB]
[10:41:07] Topology snapshot [ver=3, servers=1, clients=0, CPUs=12, heap=1.0GB]
但是,当我运行ignitevisor来检查缓存列表时,它没有任何缓存:
visor> cache
(wrn) <visor>: No caches found.
我的问题是:使用这种方法我做错了什么?有没有办法在现有集群中创建缓存而无需创建客户端实例?以JDBC连接为例?
非常感谢你。
我尝试了你的代码,Visor显示了创建的缓存。
拓扑快照表示,您只有一个服务器节点。是否可能,服务器节点没有发现彼此并形成两个不同的集群?您可以在其中一个中创建缓存,并通过Visor连接到另一个缓存。尝试node
Visor命令并检查是否看到所有服务器节点。
要避免为缓存创建启动其他节点,可以在节点XML配置中配置缓存。看看这个例子:https://apacheignite.readme.io/docs/cache-modes#section-configuration
如果要使用JDBC连接创建缓存,可以使用CREATE TABLE
DDL命令。文档:https://apacheignite-sql.readme.io/docs/create-table
我尝试了下面的代码片段,并成功创建了缓存。
------------------------------------------------- + ---------- + ------------- + ------- + ----------------- ---------- ----------- + + ----------- ----------- + + --- -------- + | Test_Cache(@ c19)|分手| 2 | min:0(0/0)| min:0 | min:0 | min:0 | min:0 | | | | |平均值:0.00(0.00 / 0.00)|平均:0.00 |平均:0.00 |平均:0.00 |平均:0.00 | | | | | max:0(0/0)|最大值:0 |最大值:0 |最大值:0 |最大值:0 |
你能在visor中使用“node”命令看到两个节点吗?我使用选项13打开遮阳板 - examples config example-ignite.xml希望这会有所帮助。
以上是关于无法在现有Apache Ignite单节点集群中创建缓存的主要内容,如果未能解决你的问题,请参考以下文章