当前位置: 首页 > 知识库问答 >
问题:

Spring Boot Admin-持久化应用程序和事件

曾永新
2023-03-14

我对Spring Boot Admin有一个问题:重新启动服务器实例后,它会丢失所有应用程序和事件。

这是模式和步骤:监视应用程序A、B和C的服务器实例。

  1. 启动服务器实例

我如何处理这种情况?也许,我必须将这些信息保存在db上。但是,我找不到任何有用的东西。

谢谢

共有2个答案

海景曜
2023-03-14

据我所知,您已经停止了应用程序C,在重新启动服务器实例(Spring boot admin-SBA)时,您无法看到应用程序C。

但我想这是预期的行为,SBA不注册脱机应用程序。这是因为应用程序首先注册到SBA,而不是反过来注册。在本例中,应用程序C处于脱机状态。

但是,一旦应用程序注册到SBA并脱机,您仍然可以在列表中看到它的状态为脱机。但是SBA服务器重启将创建新的服务器实例,而不知道以前注册的应用程序。

如果我还没有清楚了解,能否请您提供更多信息。

傅奕
2023-03-14

您可以使用Hazelcast使应用程序和事件持久化。查看SBA文档(聚类段落)。

在pom中添加Hazelcast依赖项。xml:

<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>hazelcast</artifactId>
</dependency>

然后,在application.properties:

spring.boot.admin.hazelcast.enabled=true
spring.boot.admin.hazelcast.event-store=spring-boot-admin-event-store

实例化HazelcastConfig

    @Bean
public Config config() {
    MapConfig eventStoreMap = new MapConfig("spring-boot-admin-event-store")
            .setInMemoryFormat(InMemoryFormat.OBJECT)
            .setBackupCount(1)
            .setEvictionPolicy(EvictionPolicy.NONE)
            .setMergePolicyConfig(new MergePolicyConfig(PutIfAbsentMapMergePolicy.class.getName(), 100))
            .setMapStoreConfig(new MapStoreConfig().setImplementation(new HazelcastEventImplementation()));

    Config config = new Config();
    config.addMapConfig(eventStoreMap);
    config.setProperty("hazelcast.jmx", "true");

    return config;
}

最后,实现一个MapStore

 类似资料:
  • 消息应答 ack >[danger] noAck: false 手动接收消息模式 async consume() { const ch = await this.app.amqplib.createChannel(); await ch.assertQueue(queueName, { durable: false }); const msg = await new Pro

  • 我对Spring注释和persist有一个误解。我使用的是Spring3.1,带有JPA和Hibernate。我认为persist意味着将实体添加到持久性上下文中(但在提交或刷新之前不要执行任何查询),而注释意味着用事务包装方法。 然而,在这个简短的例子中,当执行指针到达持久性时,它会失败并出现异常,因为name不能为null(db约束)。 如果我交换和,一切正常。然而,我不明白为什么反过来没有,

  • 当我在“Windows Server 2016 Datacenter”机器上使用Tomcat 9运行springboot 2.3.8应用程序时,我遇到了时区问题。在本地使用Eclipse或Tomcat9运行它不会触发问题。 我将时区设置在乞讨处,使用: 并打印->中欧标准时间 但是,稍后当我调用其中一个endpoint并以与前面相同的方式检查时区时 我得到-->协调世界时 我假设不是在@PostC

  • 我有一个nodejs应用程序,它只不过是一个使用微软botbuilder框架构建的机器人。我创建了azure应用程序服务来托管此应用程序。我想找到一种方法,将所有应用程序日志和web服务器日志(如果可能的话)持久化到某个持久化存储中。就像本地web应用程序一样,我们可以在应用程序服务器上查找日志 在做了一些研究之后,我找到了微软关于这方面的官方文件,但看起来它有以下局限性。 我们不能使用应用程序服

  • Akka持久化使有状态的actor能留存其内部状态,以便在因JVM崩溃、监管者引起,或在集群中迁移导致的actor启动、重启时恢复它。Akka持久化背后的关键概念是持久化的只是一个actor的内部状态的的变化,而不是直接持久化其当前状态 (除了可选的快照)。这些更改永远只能被附加到存储,没什么是可变的,这使得高事务处理率和高效复制成为可能。有状态actor通过重放保存的变化来恢复,从而使它们可以重

  • 实际上,我使用野飞JEE服务器并考虑切换到Quarkus。关于quarkus,我有以下问题: 1.坚持。xml 我看到夸克斯使用自己的来建立数据库。我可以用来代替吗? 2.容器管理的持久性 quarkus是否提供了类似的功能,还是我必须自己管理持久性?