我有一个Kafka流应用程序。在我们将代码部署到qa服务器之前,我对rocksdb或kafka流没有任何问题。应用程序流状态设置为错误,这是错误消息:
ERROR com.sial.notifications.kafka.streams.AuditStream - Thread: notification-messages-ecf5f120-5cfb-4a2a-91b5-b145e99c3014-StreamThread-1 Uncaught streams exception /tmp/librocksdbjni6472682265799189638.so: /tmp/librocksdbjni6472682265799189638.so: failed to map segment from shared object: Operation not permitted
当应用程序启动时,rocksdb共享对象被写到/tmp,但是为了安全起见,服务器装载了/tmp noexec,因此我们不能从/tmp运行共享对象。有没有办法控制so写在哪里?
我发现我可以通过设置java.io.tmpdir系统属性来更改它,但这看起来非常重,可能会对其他包产生副作用。是否有特定于rocksdb或kafka流的系统属性来确定so的写入位置?
1条答案
按热度按时间bvjveswy1#
我还尝试配置kafka消费者存储其内容的位置,我认为您可以设置一个属性:
因此,我认为在创建kafkastreams配置时,可以将以下属性注入其中:
这里也有描述
如果你想查看完整的财产清单,你可以到这里