Spring XD распределенный режим перерисовывает конфигурацию
Я пытаюсь настроить Spring XD в распределенном режиме, и я, к сожалению, не смог этого сделать. Я пытаюсь поддержать межмодульные каналы с помощью Redis, и у меня работает кластер Redis 3.0 с 3 узлами.
Мои изменения в конфигурации показаны ниже, пожалуйста, дайте мне знать, если я что-то упустил или мне нужно сделать что-то еще, чтобы мой экземпляр Spring работал в распределенном режиме:
Серверы файл xd-контейнера настроен так
spring:
profiles: container
xd:
transport: redis
embeddedHsql: false
.
.
.
.
spring:
datasource:
url: jdbc:mysql://mysql-instance01:3306/springxd
username: springxd
password: springxd
driverClassName: com.mysql.jdbc.Driver
validationQuery: select 1
.
.
.
spring:
redis:
port: 6379
host: redis-instance01
pool:
maxIdle: 8
minIdle: 0
maxActive: -1
maxWait: 30000
sentinel:
master: mymaster
nodes: redis-instance02:6379,redis-instance03:6379
Если я запускаю xd-контейнер с этой конфигурацией, я получаю трассировку стека ошибок, как показано здесь
И если я удаляю ноты sentinel, sentinel: master, sentinel:, контейнер запускается нормально, но при развертывании некоторого потока происходит сбой, журнал ошибок выглядит так, как показано здесь
Но нет абсолютно никаких проблем с моим кластером Redis при попытке подключиться из Java с помощью JedisCluster.
Я что-то упустил в этой конфигурации? Есть мысли или комментарии?
Заранее спасибо.
1 ответ
Увеличить Redis Maxclients
Мое тестовое приложение работает (распределенный режим с 3 контейнерами) с настройкой (одна машина):
spring:
profiles: container
xd:
transport: redis
---
# Redis properties
spring:
redis:
port: 6379
host: 127.0.0.1
pool:
maxIdle: 8
minIdle: 0
maxActive: -1
maxWait: 30000
Redis - это в основном однопоточное приложение.
Redis попытается сохранить данные на диск. В то время как Redis разветвляется для этого процесса, он все еще замедляет все.
Для распределенного режима - нужно использовать кафку, например.
Надеюсь, это поможет вам.