- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在同一台计算机上有两个节点的本地(测试)设置中(使用端口范围 47500..47501 的静态 IP 配置),“第二个”节点将不会加入集群;它发出 TcpDiscoveryJoinRequestMessage
这似乎是由“第一个”节点回答的,但在网络超时发生(20秒)后,它显示“节点尚未连接到拓扑”消息,并继续发送发现加入消息,该消息随后被第一个节点忽略(“忽略加入请求消息,因为节点已经在拓扑中”)。
这同样适用于(裸机和虚拟机)docker 机器上的(“真实”)集群设置。
这是一个已知问题吗?关于去哪里/寻找什么有什么建议吗? Ignite 发出大量日志( TcpDiscoverySpi
),但我看不到任何可能解释该行为的错误或警告。静态IP配置和自定义网络超时生效。
配置以 yml 形式给出,用于构建配置 bean(Spring Boot 应用程序),该配置 bean 又构建实际的 Ignite 配置。
grid:
discovery:
network-timeout: 20000
join-timeout: 20000
static:
enabled: true
addresses: 127.0.0.1:47500..47501
TcpDiscoveryVmIpFinder
已生效(如日志中所示)。
另请参阅 node logs 中的相关部分(TcpDiscoverySpi
)。
最佳答案
据我所知,您使用 Ignite messaging ,并且您的一些 remoteListener
包含 IgniteSemaphore作为它的字段,或者作为它的闭包的一部分。当所有节点连接时,有关此监听器的信息将通过发现消息发送到所有节点。
当remoteListener
被反序列化时,从DataStructuresProcessor
请求一个信号量。但它尚未初始化,因为节点加入尚未完成。这是一个死锁,因为在 DataStructuresProcessor 初始化之前节点无法加入,反之亦然。
您可以通过延迟初始化信号量来避免此问题:
public static class ListenerHandler implements IgniteBiPredicate<UUID, Object> {
@IgniteInstanceResource
private Ignite ignite;
private transient IgniteSemaphore sem;
private IgniteSemaphore semaphore() {
if (sem != null)
return sem;
sem = ignite.semaphore("sem", 1, true, true);
return sem;
}
@Override public boolean apply(UUID uuid, Object o) {
// ...
}
}
错误跟踪器上的相关问题:IGNITE-3089
关于java - Apache 点燃: Node has not been connected to topology,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51986688/
每次我尝试交替使用 Ignite Spring API 和 Ignite SQL API 时,我都会收到类转换异常或“找不到 xxxx 的 sql 表” 发生这种情况是因为我使用 ignite spr
是否可以在 apache ignite 中的 SQL 行上设置 TTL? 我知道有关 TTL 的文档: https://apacheignite.readme.io/docs/expiry-polic
通过阅读 Apache Ignite 的文档,我的印象是,我在 Eclipse 中使用的类(例如)会自动(我敢说,神奇吗?)发送到 Ignite 服务器的分布式实例。 我有 3 个普通服务器,没有加载
我有两个点燃缓存: public interface Entity1{ Entity2 e2(); } public interface Entity2{ } IgniteCache e1s;
使用 ignite C++ API,我试图找到一种方法来执行 SqlFieldsQuery 以选择特定字段,但我想对一组键执行此操作。 一种方法是像这样执行 SqlFieldsQuery, SqlFi
Apache Ignite 的索引是如何工作的?我还没有在文档中找到那些技术细节。 是否使用 B 树? 索引存储在哪里? 它是如何存储的? 索引在使用后提供什么性能(以 Big-O 表示法)? 它的构
我正在尝试使用 Hadoop 作为辅助存储来设置 IGFS。我的配置如图所示 here但我不断收到NoClassDefFoundError s。我已经下载了 Ignite 的两个二进制发行版,并尝试从
不知道如何正确表述标题,但这就是问题所在。 假设我有一个类 Person 和一个类 Organization ,它们的关联类型是多对一。在Java代码中,Person对象具有对Organization
我想向服务器节点发送消息。缓存 ClusterGroup 是否正确,即建议使用什么选项: ignite.message(ignite.cluster().forServers()).send(...)
我希望公开 Apache Ignite 缓存,并且客户端应用程序可以访问它。我可以在 Apache Ignite 版本 1.9 中看到连续查询支持 - https://github.com/apach
我正在尝试使用 ApacheIgnite 进行 SQL 查询。 基本上我无法连接到我的端口,该端口正在docker IP:172.17.0.1和我的SQL端口:3606中执行 POM配置如下: Ign
我正在尝试使用 Ignite 使用 C++ 将表存储在缓存中。我们正在使用 REST API 来请求数据。我已经像这样配置了 xml 并使用 curl 发送请求 curl -X POST
我在我的 kubernetes VM 中构建了 ignite 集群。我想将我的 ignite pod 配置为在没有证书验证的情况下使用 tls。 我在每个 pod 中手动创建了一个 keystore
我是 Apache Ignite 的新手。在我的 Windows 盒子上,我通过双击 ignite.bat 文件启动了 Apache Ignite,并尝试运行以下代码 - 缓存填充客户端代码 pack
Apache Ignite 是否提供任何测试实用程序,可以用来在单元测试和集成测试的测试中轻松启动多节点集群? 最佳答案 据我所知,没有这样的事情。在同一个 JVM 中启动多个 Ignite 节点非常
在同一台计算机上有两个节点的本地(测试)设置中(使用端口范围 47500..47501 的静态 IP 配置),“第二个”节点将不会加入集群;它发出 TcpDiscoveryJoinRequestMes
有没有办法列出特定缓存中存在的所有表并列出 Apache Ignite 服务器上存在的所有缓存? --------------------------------更新------------ ----
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我在 Apache Ignite 序列化/反序列化方面遇到了与字段反序列化顺序相关的问题。我需要将“B”的实例放入 Ignite 缓存中,如下所示: public class A { priv
我正在尝试从我命名的 PARTITIONED 缓存中获取所有项目。目前我正在使用 List> found = stmCache.query(new ScanQuery(
我是一名优秀的程序员,十分优秀!