2015-08-27 3 views
2

Сериализатор Camel-Redis префикс дополнительных символов к ключу сообщения.Сериализация Redis с префиксом с добавочной строкой

Когда я проверил DB, ключевое сообщение показывает, что-то вроде ..

"\xac\xed\x00\x05t\x00\x11test150827171118" 

Как вы можете видеть, строка "\xac\xed\x00\x05t\x00\x11"

префиксом для ключа "test150827171118".

Я попробовал две модели,

Во-первых, я установил сериалайзер в реестре непосредственно.

Registry.put("serializer", new StringRedisSerializer()); 

Вторым образцом является установка вначале в RedisTemplate. Затем поместите шаблон redis в реестр.

RedisTemplate<?, ?> template = new RedisTemplate<>(); 
template.setKeySerializer(new StringRedisSerializer()); 
template.setValueSerializer(new StringRedisSerializer()); 
registry.put("redisTemplate", template); 

Оба не могут решить проблему serizlization. У меня отсутствует дополнительная конфигурация для верблюда.

ответ

1

Я, наконец, нашел ответ после пяти или шести часов поиска и внедрения на моей машине разработки.

Верблюд serializer Параметры URI предназначены только для CONSUMER. Чтобы повлиять на PRODUCER, мне также необходимо настроить пользовательский RedisTemplate с StringRedisSerializer в качестве сериализатора по умолчанию.

redisTemplate.setDefaultSerializer(new StringRedisSerializer()); 

Затем поместите экземпляр serializer и redis в реестр и ссылайтесь на него с URI верблюда.

registry.put("customTemplate", template); 
registry.put("stringSerializer", new StringRedisSerializer()); 

Camel URI, как ...

redis://<host>:<port>?redisTemplate=#customTemplate&serializer=#stringSerializer 
+0

Привет Yelo, У вас есть рабочий проект верблюд Redis? Не знаете, как настроить RedisTemplate, получив ошибку, связанную с PropertySet. –

Смежные вопросы