durable-streams-java - Durable Streams'in Java uygulaması
(github.com/Clickin)Durable Streams projesini görüp iyi bir proje olduğunu düşündüm ve ana dilim olan Java için de bir uygulamasını geliştirdim.
Başlıca özellikler
- Belirli kütüphanelere bağımlılığı en aza indirme: Mümkün olduğunca belirli bir framework'e veya belirli bir kütüphaneye bağımlı olmayan bir yapı kurup, olabildiğince özelleştirilebilir olurken aynı zamanda temel bir uygulama da sunacak şekilde hazırladım.
- Virtual thread optimizasyonu: Java 17 ve üzeri sürümlerde kullanılabilir, ancak Java 21 ve üzeri sürümlerde Virtual thread ile birlikte kullanmanızı öneririm.
- Başlıca JVM framework entegrasyonları: Spring MVC, Spring WebFlux, Micronaut, Quarkus ve Ktor için adaptörler sunar. Her framework'e uygun istek/yanıt dönüşümü ve SSE işleme yerleşik olduğundan, yalnızca birkaç satırlık yapılandırmayla hemen kullanabilirsiniz.
- Protokol uyumluluk testlerini geçti:
durable-streamsdeposunda sunulan 131 uyumluluk testinin tamamını geçti.
Dikkat edilmesi gerekenler
Dosya sistemi tabanlı depolama, metadata saklamak için Rocksdb kullanır. Rocksdb, yakın zamanda tüm büyük işletim sistemlerinin ikili dosyalarını içeren fat jar sağlama yönteminden, classifier aracılığıyla her işletim sistemi için optimize edilmiş jar'ın doğrudan seçildiği yönteme geçti.
Bu nedenle dosya sistemi tabanlı depolamayı kullanacaksanız, rocksdb bağımlılığını kendiniz eklemeniz gerekir.
Örnek
gradle
dependencies {
implementation("io.durablestreams:durable-streams-server-core:<version>")
runtimeOnly("org.rocksdb:rocksdbjni:10.4.2:linux64") // or win64/osx
}
maven
<dependency>
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
<version>10.4.2</version>
<classifier>linux64</classifier>
<scope>runtime</scope>
</dependency>
Henüz yorum yok.