信息:使用5.7款Hybris序列化的元素插入定制款Hybris CacheRegion
我正在努力才能使用Redis的用于此目的(而不是提供了这样的内存解决方案,地图或的EHCache)编写自定义CacheRegion 。
继提供here的说明似乎并没有被足够多。
我卡住的一点是序列化元素对象的时刻,它没有实现可序列化,所以我不能将它序列化成json或字节数组或其他任何东西(用Jackson,Kryo,FST和java默认序列化程序)。
下面代码如下(跳过其他部分):
...
@Override
public Object getWithLoader(CacheKey cacheKey, CacheValueLoader cacheValueLoader) throws CacheValueLoadException {
return Optional.ofNullable(get(cacheKey))
.orElseGet(() -> {
Object element = cacheValueLoader.load(cacheKey);
//Can't get to serialize *element* to store it
return element;
});
}
...
调试,我发现,目标元素是actualy的GenericBMPBean $实例GenericItemEntityStateCacheUnit,它似乎包含了很多东西(除了我奇怪地找不到的实际数据)。
,我还不明白另一件事是CacheKey.CacheUnitValueType至极的使用似乎是由执行的EHCache被忽略。即使当它是NON_SERIALIZABLE它被存储到EhCache中。
所以我的问题是:我应如何管理序列化此类型的数据?
Plus问题:标志的期望用法是什么CacheUnitValueType?
这背后的主要目标是从应用程序JVM分离缓存,提高HA和可扩展性。
谢谢。