Nepxion / Aquarius

🔱 Nepxion Aquarius is a list of distribution components based on Redis + Zookeeper with Nepxion Matrix AOP framework, including distribution lock, cache, id generator, limitation 分布式锁、缓存、全局唯一主键、限流
http://www.nepxion.com
Apache License 2.0
405 stars 149 forks source link

关于更多定制化的建议 #3

Closed zhuangjiaju closed 6 years ago

zhuangjiaju commented 6 years ago

非常感谢分享出来的分布式锁。但是在使用过程中,遇到了部分不便,有如下建议。(本公司采用configserver ,所以配置统一管理的,没有不能自己创建propties文件) 1.CuratorHandler 创建的时候 希望能多创建一个写默认值,确保小白 无需任何配置 直接能用 2.CuratorHandler 能自己构造,类似于connectString 可以自己写入,而不是一定要配置到config-curator.properties

总之,类似于redisson,可以自由redissonclient 而不是需要写在配置写死,这样不会被spring绑定的太死。不然我现在的情况就是要改 aquarius-lock-zookeeper里面的很多东西才能用

Nepxion commented 6 years ago

感谢来信,我回答一下几个问题:

  1. 关于Redission,我提供的配置其实就是类似默认的配置(除了IP和端口之外),这个配置采用官方提供的样例,我没有做丝毫改动,保持原汁原味。请阅读: https://github.com/redisson/redisson/wiki/2.-%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95
  2. 关于ZK的Curator,其实是为了跟Redission风格保持一致,它的配置文件就是默认配置文件,你直接拷过去就可以用,不需要一丁点的修改
  3. 支持你们的configserver,这个我不清楚改怎么做,也有朋友来信,要支持Spring Cloud的配置中心,也要支持百度一个叫Disconf的远程配置中心,虽然需求合理,但会显示的碎片化了。那么如何支持不同类型的远程配置中心,是一个话题,你可以研究一下,结合我的框架和你们公司的框架,告诉我一种通用化的扩展方式。
  4. 不希望被spring绑定的太死,目前框架采用Spring AutoProxy机制而做的,已经绑死在Spring上了。
Nepxion commented 6 years ago

已经提供解决方案

  1. 引用最新版本1.0.10
  2. 相关Config对Handler的创建代码拷贝到你自己的代码里面 例如把下面的代码拷贝到aquarius-spring-boot-example..\LockAopApplication.java中 @Bean(name = "redissonHandler") @Conditional(RedisLockCondition.class) public RedissonHandler redissonHandler() { return new RedissonHandlerImpl(); } 那么框架里的这部分代码失效,会被你这块代码代替
  3. 把RedissonHandlerImpl换成你自己的实现,因为你更改的是远程读取配置文件,那么只需要在构造方法里覆盖掉读取本地配置文件的代码即可,从远程获取配置文件的字符串内容后,通过Config createYamlConfig(String yamlConfigContent)来构建即可