ambiente ventana acoplable construido Redis segundo racimo, aunque también SpringBoot en general!

SpringBoot centro proveedor real de electricidad elemento (30k + estrella) Dirección: github.com/macrozheng / ...

resumen

Con el fin de aumentar la capacidad de almacenamiento y velocidad de respuesta Redis, a veces tenemos que construir cúmulo Redis. Este documento describe los pasos para construir entorno de clúster Redis y la forma de integrar el uso de SpringBoot agrupación en Redis.

Configuración Redis Cluster

Aquí se utiliza la forma más conveniente de instalar, utilizar acoplable Componer para construir sobre los amigos del estibador de redacción no entienden puede hacer referencia a la "Uso de la aplicación del estibador Componer implementar SpringBoot" . Vamos a construir un 6-nodo de clúster Redis, incluyendo tres nodo maestro y tres nodos esclavos.

  • Antes del racimo del edificio Redis, tenemos que modificar el archivo de configuración, en Redis redis.conf, descargue el archivo: github.com/antirez/red ...

  • Necesidad de modificar las propiedades, modificado principalmente algunos configuración de clúster y el funcionamiento del puerto, el número de puerto necesita ser modificado para exigir 6.391 hasta 6396:

# 开启集群功能
cluster-enabled yes
# 设置运行端口
port 6391
# 设置节点超时时间,单位毫秒
cluster-node-timeout 15000
# 集群内部配置文件
cluster-config-file "nodes-6391.conf"
复制代码
  • A continuación, tenemos que escribir un archivo de diseño de ventana acoplable-compose.yml Redis seis contenedores, el papel de los atributos específicos se puede referir a la siguiente notación;
version: "3"
services:
  redis-master1:
    image: redis:5.0 # 基础镜像
    container_name: redis-master1 # 容器名称
    working_dir: /config # 切换工作目录
    environment: # 环境变量
      - PORT=6391 # 会使用config/nodes-${PORT}.conf这个配置文件
    ports: # 映射端口,对外提供服务
      - 6391:6391 # redis的服务端口
      - 16391:16391 # redis集群监控端口
    stdin_open: true # 标准输入打开
    tty: true # 后台运行不退出
    network_mode: host # 使用host模式
    privileged: true # 拥有容器内命令执行的权限
    volumes:
      - /mydata/redis-cluster/config:/config #配置文件目录映射到宿主机
    entrypoint: # 设置服务默认的启动程序
      - /bin/bash
      - redis.sh
  redis-master2:
    image: redis:5.0
    working_dir: /config
    container_name: redis-master2
    environment:
      - PORT=6392
    ports:
      - 6392:6392
      - 16392:16392
    stdin_open: true
    network_mode: host
    tty: true
    privileged: true
    volumes:
      - /mydata/redis-cluster/config:/config
    entrypoint:
      - /bin/bash
      - redis.sh
  redis-master3:
    image: redis:5.0
    container_name: redis-master3
    working_dir: /config
    environment:
      - PORT=6393
    ports:
      - 6393:6393
      - 16393:16393
    stdin_open: true
    network_mode: host
    tty: true
    privileged: true
    volumes:
      - /mydata/redis-cluster/config:/config
    entrypoint:
      - /bin/bash
      - redis.sh
  redis-slave1:
    image: redis:5.0
    container_name: redis-slave1
    working_dir: /config
    environment:
      - PORT=6394
    ports:
      - 6394:6394
      - 16394:16394
    stdin_open: true
    network_mode: host
    tty: true
    privileged: true
    volumes:
      - /mydata/redis-cluster/config:/config
    entrypoint:
      - /bin/bash
      - redis.sh
  redis-slave2:
    image: redis:5.0
    working_dir: /config
    container_name: redis-slave2
    environment:
      - PORT=6395
    ports:
      - 6395:6395
      - 16395:16395
    stdin_open: true
    network_mode: host
    tty: true
    privileged: true
    volumes:
      - /mydata/redis-cluster/config:/config
    entrypoint:
      - /bin/bash
      - redis.sh
  redis-slave3:
    image: redis:5.0
    container_name: redis-slave3
    working_dir: /config
    environment:
      - PORT=6396
    ports:
      - 6396:6396
      - 16396:16396
    stdin_open: true
    network_mode: host
    tty: true
    privileged: true
    volumes:
      - /mydata/redis-cluster/config:/config
    entrypoint:
      - /bin/bash
      - redis.sh
复制代码
  • Podemos ver en los archivos ventana acoplable-compose.yml, corremos en cada contenedor Redis 6391 ~ 6396 seis puertos en el recipiente /configse asigna al directorio de configuración de host del /mydata/redis-cluster/configdirectorio, y también a la redis.shescritura como el contenedor el script de inicio;

  • redis.shvariable de entorno entorno basado en la acción script PORTatributos para especificar el perfil de empezar contenedor Redis;

redis-server  /config/nodes-${PORT}.conf
复制代码
  • A continuación necesitamos fichero de configuración Redis y redis.shcargado en el servidor Linux /mydata/redis-cluster/configdirectorio;

  • A continuación, nuestros docker-compose.yml subir archivos al servidor de comandos de Linux y el uso de composición del cargador de muelle para iniciar todos los contenedores;
docker-compose up -d
复制代码
  • Durante el inicio salidas de la siguiente información;

  • En el que un momento de entrar en el recipiente Redis, Redis inicializa racimos;
# 进入Redis容器
docker exec -it redis-master1 /bin/bash
# 初始化Redis集群命令
redis-cli --cluster create \
192.168.6.139:6391 192.168.6.139:6392 192.168.6.139:6393 \
192.168.6.139:6394 192.168.6.139:6395 192.168.6.139:6396 \
--cluster-replicas 1
复制代码
  • Crear el proceso de configuración de clúster le permitirá confirmar, introduzca la yesconfirman;

  • Redis cúmulo emite la siguiente información se crea correctamente;

  • Una vez creado, podemos utilizar el redis-clicomando para conectarse a uno de los servicios Redis;
# 单机模式启动
redis-cli -h 127.0.0.1 -p 6391
# 集群模式启动
redis-cli -c -h 127.0.0.1 -p 6391
复制代码
  • Después de pasar a través de cluster nodesvista puede comando información del nodo, que se encuentra en línea con las expectativas de la original 3 principal 3.

SpringBoot uso del clúster Redis

Somos mejores prácticas "Primavera de datos Redis! " Se describe cómo utilizar Redis en SpringBoot, el uso de un único nodo de servicio Redis, la próxima vez que hablemos sobre cómo utilizar el servicio de Cluster Redis.

  • Transformamos sobre la base del código original, modificar application.yml archivo de configuración, añadimos configuración de clúster Redis;
spring:
  redis:
#    host: 192.168.6.139 # Redis服务器地址
#    database: 0 # Redis数据库索引(默认为0)
#    port: 6379 # Redis服务器连接端口
    password: # Redis服务器连接密码(默认为空)
    timeout: 3000ms # 连接超时时间
    lettuce:
      pool:
        max-active: 8 # 连接池最大连接数
        max-idle: 8 # 连接池最大空闲连接数
        min-idle: 0 # 连接池最小空闲连接数
        max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制
    cluster:
      nodes:
        - 192.168.6.139:6391
        - 192.168.6.139:6392
        - 192.168.6.139:6393
        - 192.168.6.139:6394
        - 192.168.6.139:6395
        - 192.168.6.139:6396
复制代码
  • En este punto llamamos para obtener detalles de la marca interfaz de nuevo, pondrá el mensaje de marca a la caché Redis en el clúster de ir;

  • Desde contenedor Redis redis-master1y redis-slave2mutua maestro-esclavo, por lo que hay cachés de los mismos datos de la información de marca.

dirección del perfil

github.com/macrozheng/...

Proyecto Dirección de origen

github.com/macrozheng/...

sin pública

centro proyectar un tutorial completo serializado en número de la preocupación del público por primera vez de obtener.

No hay imagen pública

Supongo que te gusta

Origin juejin.im/post/5e81fd1ff265da47e84e5e2c
Recomendado
Clasificación