我有一个Kafka Streams应用程序。在将代码部署到我们的质量检查服务器之前,我对rocksdb或Kafka Streams没有任何问题。应用程序流状态设置为错误,这是错误消息:
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运行共享对象。有什么方法可以控制代码的写位置吗?
我发现可以通过设置java.io.tmpdir系统属性来更改它,但这似乎很繁重,并且可能与其他软件包产生副作用。是否有特定于Rocksdb或Kafka流的系统属性来确定将其写入何处?