agent.jar时,java-envelope没有被路由到akka cluster sharded actor

f2uvfpb9  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(347)

我实际上是在发布一个经验。也许我可以节省别人的时间。

总结:

有时阿克卡集群碎片演员将不会收到任何路由消息,原因是旧的肉桂剂使用(我不知道如何,但我有证据)。

详情:

我有一个akka java项目。我们已经将cinguon-agent.jar(几个月前)推送到了代码库中,人们可以在使用标准jvm选项运行应用程序时指向它:

-javaagent:.local/cinnamon-agent.jar

几天前,我尝试使用上述选项激活lightbend遥测。突然我意识到akka集群分片的路由机制已经不起作用了。目标演员甚至 ShardRegion.MessageExtractor 实现没有被执行,即使在调试级别,如果没有任何日志,消息也会以某种方式丢失。
我花了两天时间才发现它和肉桂剂有关!但令人惊讶的是,通过使用新的jar文件(由构建插件获取)更改jar文件,问题得到了解决。

mrphzbgm

mrphzbgm1#

使用构建工具插件获取新的cinguon-agent.jar:

Maven:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>3.1.1</version>
  <executions>
    <execution>
      <id>copy</id>
      <phase>compile</phase>
      <goals>
        <goal>copy</goal>
      </goals>
      <configuration>
        <artifactItems>
          <artifactItem>
            <groupId>com.lightbend.cinnamon</groupId>
            <artifactId>cinnamon-agent</artifactId>
            <version>2.15.0</version>
            <overWrite>true</overWrite>
            <destFileName>cinnamon-agent.jar</destFileName>
          </artifactItem>
        </artifactItems>
      </configuration>
    </execution>
  </executions>
</plugin>

grad尔:

// Add the agent to a separate configuration so it doesn't add to the normal class path
configurations {
  agent
}

dependencies {
  agent group: 'com.lightbend.cinnamon', name: 'cinnamon-agent', version: '2.15.0'
}

更多信息:

lightbend遥测设置

将代理作为javaagent vm选项添加到您的运行中:

java -jar your-app.jar -javaagent:.local/cinnamon-agent.jar

相关问题