El proceso detallado de implementación del clúster de Redis e implementación de proyectos de microservicios en Docker

Tabla de contenido
  • 1. Los beneficios de usar la implementación de Docker
  • 2. Comparación entre Docker y Kubernetes
  • Tres, combate real de despliegue de clúster de Redis
  • 4. Imagen de empaquetado del proyecto Spring Boot
  • ?resumen

1. Los beneficios de usar la implementación de Docker

El beneficio de Docker es: ejecutar el mismo contenedor en diferentes instancias

Cinco ventajas de Docker:  持续部署与测试, 多云服务平台支持, 环境标准化和版本控制, 隔离,安全

2. Comparación entre Docker y Kubernetes

Docker es adecuado para aplicaciones relativamente pequeñas, cuando la cantidad de concurrencia no es grande, hay más de 10 microservicios , se recomienda aplicar la implementación de Docker, que también ahorra recursos y reduce los costos de desarrollo.

K8S es adecuado para clústeres grandes, con alta concurrencia y más de 10 microservicios. Al mismo tiempo, el rendimiento también es muy bueno. Bajo la premisa de un buen rendimiento, ¡el costo de desarrollo también ha aumentado mucho !

Tres, combate real de despliegue de clúster de Redis

A continuación, se implementa un clúster de Redis con tres maestros y tres esclavos, como se muestra en la figura.

Detener todos los contenedores y eliminar todos los registros

?

1

docker rm $(docker ps -a -q)

Crear una redis de red personalizada

?

1

docker network create redis --subnet 172.38.0.0/16

Crear seis redis de información básica a través de scripts

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

for port in $(seq 1 6); \

do \

mkdir -p /mydata/redis/node-${port}/conf

touch /mydata/redis/node-${port}/conf/redis.conf

cat << EOF >/mydata/redis/node-${port}/conf/redis.conf

port 6379

bind 0.0.0.0

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

cluster-announce-ip 172.38.0.1${port}

cluster-announce-port 6379

cluster-announce-bus-port 16379

appendonly yes

EOF

done

Iniciar 6 contenedores redis y montar datos

?

1

2

3

4

5

6

7

8

# 通过脚本一次性启动

for port in $(seq 1 6); \

do

docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \

-v /mydata/redis/node-${port}/data:/data \

-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \

-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf; \

done

Ingrese la configuración en redis-1 para crear un clúster

?

1

2

3

4

5

# 进入redis-1

docker exec -it redis-1 /bin/sh

# 创建集群

redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13

:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

en el contenedor

?

1

2

3

4

redis-cli -c

# 查看详细信息

CLUSTER INFO

ver nodos

?

1

CLUSTER NODES

Ajustes

?

1

set k1 v1

Podemos ver que el valor se establece en el nodo 13, detenemos el nodo y obtenemos el valor nuevamente para ver

?

1

2

# 新开窗口停止redis-3容器

docker stop redis -3

Obtener k1 en la ventana original

?

1

2

# 需要重新进入再次获取

get k1

Se puede ver que el valor se ha sincronizado con otros nodos. Después de que el nodo maestro cuelgue, ¡todavía podemos obtener el valor!

4. Imagen de empaquetado del proyecto Spring Boot

Crear un proyecto SpringBoot

controlador de prueba

?

1

2

3

4

5

6

7

8

@RestController

public class TestController {

    @GetMapping("/hello")

    public String hello() {

        return "Hello World!!!";

    }

}

Se accede con éxito a la prueba local y luego el proyecto se compila como un paquete jar

?

1

2

// 进入项目目录

mvn clean package

Descarga la imagen de Docker

Escribir Dockerfile

?

1

2

3

4

5

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "/app.jar"]

Cargue el paquete jar y Dockerfile en el servidor

archivo del servidor

compilar Dockerfile

?

1

docker build -t xiaowang .

prueba de acceso

?

1

curl localhost:49153

¡La imagen se cargó con éxito!

?resumen

Lo anterior es [ Bug Terminator ]  una breve introducción al  combate real de Docker: implementar clústeres de Redis e implementar proyectos de microservicios . Usar Docker para implementar nuestras aplicaciones es muy conveniente y rápido , pero si la arquitectura es enorme, no se recomienda usar Docker. Puede utilizar nuestro despliegue de clúster k8s, ¡es la tecnología más popular en la actualidad!

Supongo que te gusta

Origin blog.csdn.net/qq_15509251/article/details/131608108
Recomendado
Clasificación