모듈 테스트중에 kafka 프로듀싱은 되는데 컨슈밍은 안되는 이상한 현상이 발생했습니다.

 

22:12:12.475 [reactive-kafka-...-consumer-1] ERROR reactor.core.scheduler.Schedulers - KafkaScheduler worker in group main failed with an uncaught exception
org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Mac and os.arch=aarch64
	at org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:361)
	at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:195)
	at org.xerial.snappy.SnappyLoader.loadSnappyApi(SnappyLoader.java:167)

에러메시지를 읽어보면 snappy에서 Mac - aarch64의 native library를 찾을 수 없다고 나옵니다.

해당 라이브러리가 애플 실리콘 아키텍처로 빌드가 되어 있지 않아 그런 건데요, 당시 snappy-java는 1.1.8.1 버전을 사용중이었습니다.

(snappy는 압축 라이브러리이고, snappy-java는 JNI 기반 snappy 자바 구현체입니다.)

 

 

Release 1.1.8.2 · xerial/snappy-java

Support Apple Silicon (M1, Mac-aarch64) Fixed the pure-java Snappy fallback logic when no native library for your platform is found.

github.com

해결방법은 snappy-java 라이브러리를 1.1.8.2 이상 버전으로 올리는 겁니다.

1.1.8.2 버전에 픽스됐고, diff를 보면 Makefile에서 해당 내용이 추가된 것을 확인할 수 있습니다.

 

diff

1.1.8.1 ~ 1.1.8.2 diff입니다

반응형