Spring XD分布式模式redis配置

时间:2016-05-06 19:35:07

标签: redis spring-xd redis-sentinel

我正在尝试在分布式模式下配置spring XD,但遗憾的是我无法这样做。 我正在尝试使用redis支持模块间通道,并且我运行了3节点redis 3.0集群。

我对配置的更改如下所示,如果我遗漏了任何内容,请告诉我,或者我需要做任何其他事情才能使我的spring实例以分布式模式运行:

xd-container的servers.yml文件配置为

            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-container,我会得到错误堆栈跟踪,如图所示here

如果我删除了sentinel,sentinel:master,sentinel:nodes,容器启动正常,但在部署某个流时失败,错误日志如图所示here

但尝试使用JedisCluster从java连接时,我的redis群集完全没问题。

我在这个配置中遗漏了什么? 有什么想法或意见吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

增加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为这个过程分叉,但它仍然会减慢一切。

对于分布式模式 - 例如,需要使用kafka。

希望这会对你有所帮助。