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 разветвляется для этого процесса, он все еще замедляет все.

Для распределенного режима - нужно использовать кафку, например.

Надеюсь, это поможет вам.

Другие вопросы по тегам