Comments (3)
首先,没有这方面的计划,因为你这是比较高级的需求,有这类需求的公司,需求一定各不相同,我怎么做都不能全满足的。比如机房是不是同城,是不是分成两级(多个地域,每个地域下又有多个机房),地域之间ping延迟多少。光是不同的机房拓扑都能导致方案不一样的,何况各厂还有各厂”国情“。
其次,这种需求,在jetcache这里解决是最下策。应该在更底层有通用的解决方案,比如由中间件团队提供,或者由应用架构的团队统一提供(我猜不是所有的系统都使用jetcache)。
最后,也许你的职责做不到创建公司级别的统一方案,如果一定要自己做,也不建议去jetcache里面改,我不是说不建议改jetcache,而是你这个需求,发送缓存失效的消息到MQ,然后由MQ消费者来处理更好(如果公司有跨机房部署的mq,或者mq的消费者可以跨机房消费)。topic只有一个,有两个机房就创建两个消费组,每个机房运行一个消费组,负责给自己机房的redis做失效操作,程序都是一样的。
from jetcache.
最后,我还想提一下,我在2.7里面实现了缓存更新时,使用redis的PUB/SUB,让local cache失效的能力。
并不是说我认为缓存的更新就应该这么干,而是因为有这种需求的人很多,而jetcache只是一个偏业务层面的缓存框架,它不是一个解决方案,所以我只好在不增加依赖的情况下,提供了一个勉强堪用的实现。
缓存的跨机房复制和更新是偏底层的统一需求,在某个公司具体的场景下,好的架构师通常能提供更贴切公司情况的方案。
from jetcache.
多谢大佬指点,受益匪浅。
还是决定redis 的 pub/sub 来实现这个需求,原因如下:
1、目前这个需求对于延时(老板说几十秒都可以)和一致性要求都不高。
2、公司原本有跨机房同步MQ,现在因为将本增效砍掉了。这次是打算做一个SDK,所以也不想额外引入相对Redis更重量级的MQ。
3、老板只给了10天时间从方案到项目改造完成,没时间做更多方案。
所以使用pub/sub是比较轻量级的方案
from jetcache.
Related Issues (20)
- spring项目引入jetcache启动报错 HOT 2
- 如何通过redis.lettuce连接带证书的redis?(redis非集群,HA模式的) HOT 1
- 反序列化异常 HOT 1
- redisson缓存通知,是否有规划增加redis stream方式 HOT 1
- 缓存一致性问题 HOT 1
- JedisCluster Pipeline 的支持? HOT 13
- @Cached、@CacheUpdate中的key、value是否像postCondition 、condition可以使用SpEL访问到#result对象? HOT 4
- Cached是否可以一次设置多个key? HOT 2
- AbstractCacheTest.penetrationProtectTest flaky
- api模式下 key过期时间配置
- @Cached注解使用key SpEL表达式,注解作用在接口上时失效。 HOT 9
- 请求一下,使用LinkedHashMap的方法存储本地缓存不失效,并且在使用清除本地缓存方法中,写锁没有释放 HOT 8
- 如何自定义 RedisCache ? HOT 1
- 高并发下,出现OOM以及其他异常 HOT 2
- 高并发下,出现OOM以及其他异常 HOT 1
- 关于本地缓存数据容量统计
- com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID:
- jetcache(RedisLettuceCache) GET error HOT 3
- 如何防止一级缓存穿透到二级缓存的呢? HOT 2
- jetcache(RedisLettuceCache) GET error HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jetcache.