使用 Redisson 的命名锁

该模块使用 Redisson 实现命名锁。它提供了两种实现,一种是分布式的,一种是依赖于 Redisson 的分布式对象特性。

开箱即用的“redisson”(分布式)命名锁实现如下:

  • rwlock-redissonorg.eclipse.aether.named.redisson.RedissonReadWriteLockNamedLockFactory中实现,它使用 Redisson 支持的 org.redisson.api.RReadWriteLock
  • semaphore-redisson在使用 Redisson 支持的org.redisson.api.RSemaphore的org.eclipse.aether.named.redisson.RedissonSemaphoreNamedLockFactory中实现。

未解决的问题/注释

  • 插件的使用尚未经过测试。
  • 因为它使用ServiceLocator而不是依赖注入,所以熔炉-maven-plugin无法使用此实现。

Maven 解析器集成商的未决问题/注释

要在您的项目中使用此实现,取决于您的集成方式,您有以下选项: - 如果您使用 Sisu DI,那么您只需要在类路径上提供此模块(及其依赖项)即可完成。- 如果您使用 Guice,则需要预先添加此模块(及其依赖项),并显式绑定它们。- 如果您使用 ServiceLocator,请注意它已被弃用,您应该远离它。在这种情况下,最简单的方法是滚动您自己的“引导”类,该类与 ServiceLocator 所做的事情几乎相同,并将其扩展为也实例化这些组件。

安装/测试

  • 创建目录${maven.home}/lib/ext/redisson/
  • 通过在${maven.conf}/logging行之后添加load ${maven.home}/lib/ext/redisson/*.jar来修改${maven.home}/bin/m2.conf 。
  • 将以下依赖项从 Maven Central 复制到${maven.home}/lib/ext/redisson/
  ├── maven-resolver-named-locks-redisson-1.7.3.jar
  ├── jackson-annotations-2.12.1.jar
  ├── jackson-core-2.12.1.jar
  ├── jackson-databind-2.12.1.jar
  ├── jackson-dataformat-yaml-2.12.1.jar
  ├── jboss-marshalling-2.0.11.Final.jar
  ├── jboss-marshalling-river-2.0.11.Final.jar
  ├── netty-buffer-4.1.65.Final.jar
  ├── netty-codec-4.1.65.Final.jar
  ├── netty-codec-dns-4.1.65.Final.jar
  ├── netty-common-4.1.65.Final.jar
  ├── netty-handler-4.1.65.Final.jar
  ├── netty-resolver-4.1.65.Final.jar
  ├── netty-resolver-dns-4.1.65.Final.jar
  ├── netty-transport-4.1.65.Final.jar
  ├── redisson-3.15.6.jar
  └── snakeyaml-1.27.jar
  • 在localhost上启动您的 Redis 实例或使用${maven.conf}/maven-resolver-redisson.yaml配置远程实例。
  • 现在在您的项目上启动多线程 Maven 构建。