Java Cluster Combat: Actualización de arquitectura única a arquitectura de clúster (1) Uso de NGINX para construir un clúster

Java Cluster Combat: actualización de arquitectura única a arquitectura de clúster (2) Realización de sesiones compartidas

Combate de clúster de Java: actualización de arquitectura única a arquitectura de clúster (3) uso compartido de archivos cargados

Java Cluster Combat: actualización de arquitectura única a arquitectura de clúster (4) mediante bloqueos distribuidos de REDIS

Java Cluster Combat: Actualización de arquitectura única a arquitectura de clúster (5) Tareas programadas

Java Cluster Combat: Actualización de arquitectura única a arquitectura de clúster (6) Caché distribuida REDIS

Para los técnicos de TI de las grandes fábricas, la arquitectura de microservicios se usa todos los días y están familiarizados con ella. Para los programadores novatos en pequeñas fábricas, lo que hacemos todos los días es CRUD Para nosotros, la agrupación en clústeres, la distribución y los microservicios son solo un concepto vago en nuestras mentes. La mayoría de los sistemas que escribimos son sistemas de arquitectura única que se ejecutan en un servidor. Si aumenta la cantidad de usuarios y el servidor no puede admitirlo, agregaremos configuración. De todos modos, Alibaba Cloud y Tencent Cloud ahora son fáciles de agregar configuración. Pero si un día (espero que todos los novatos tengan ese día), nuestra cantidad de usuarios aumenta demasiado rápido y demasiado, y el servidor con la configuración más alta aún no puede soportarlo, ¿es esto un problema feliz para nosotros? ——Es el jefe el que está feliz, pero nosotros somos los que estamos preocupados.

En este caso, pensamos en usar microservicios y comenzamos a aprender spring cloud alibaba, pero no sabíamos cuántas veces se bloquearía nuestro servidor antes de aprenderlo, y teníamos miedo de que el jefe nos matara cuando llegara. enojado. Por lo tanto, no es suficiente estudiar durante un tiempo, ¡y debes aprender lo antes posible! Entonces, en este momento, ¿cuál es la solución más rápida? Creo que puede ser usar una arquitectura de clúster. La arquitectura del clúster es relativamente fácil de aprender y la cantidad de modificación del código será menor.

Hoy construiremos primero un clúster simple, como se muestra en la siguiente figura:

Un total de tres computadoras, una NGINX instalada, dos TOMCAT instaladas. Estos dos TOMCAT ejecutan nuestra única aplicación, y NGINX acepta solicitudes del navegador y luego reenvía las solicitudes a uno de los TOMCAT para su procesamiento. Si no entiende este pasaje, está bien, empecemos, y cuando terminemos, lo entenderá. Los estudiantes que no tienen tres computadoras pueden usar máquinas virtuales. O simplemente opere en una computadora, luego ambas IP deben cambiarse a 127.0.0.1

GitHub:  GitHub:  todo el código fuente de Dengxd/JavaCluster está aquí, GitHub a menudo no se puede conectar, por lo que debe actualizarse varias veces

Instalar NGINX

Debido a que todos los programadores usarán WINDOWS, y algunos programadores no usarán LINUX, elegí WINDOWS7 para instalar.

Dirección de descarga de NGINX: nginx: descargar

La versión estable es una versión estable, seleccione esta versión. La descarga es un archivo nginx-1.22.1.zip, después de la descompresión, como se muestra en la siguiente figura:

Abra el archivo nginx.conf en la carpeta conf y busque estas líneas:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

Cámbialo por esto:

upstream mytomcat {
		server 192.168.1.200:8000;
		server 192.168.1.201:8001;
    }
    server {
        listen       80;
		server_name  localhost;
		
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://mytomcat;
        }

Guárdelo y NGINX estará configurado.

En estas pocas líneas de código

servidor 192.168.1.200:8000;

servidor 192.168.1.201:8001;

Estas dos líneas son la IP y los puertos de nuestros dos TOMCAT. Si desea agregar algunos TOMCAT más, solo agregue algunas líneas más. Si no tiene tres computadoras y solo opera en una computadora, cambie ambas direcciones IP a 127.0.0.1

Nota: En el entorno de producción, server_name localhost; esta línea debe cambiar localhost a su nombre de dominio

Mytomcat es en realidad un nombre para el clúster, que puede nombrarse de acuerdo con sus propios hábitos. Este nombre se utilizará en esta línea: proxy_pass http://mytomcat;

Después de la modificación, es necesario probar si el archivo de configuración nginx.conf es correcto

Use el comando nginx -t para probar:

Como se muestra en la figura anterior, si aparecen "syntax is ok" y "test is success", la prueba es exitosa. Si estas dos líneas no aparecen, significa que hay un error en nginx.conf, y el error debe ser corregido hasta que la prueba sea exitosa.

Escribir un programa monolítico simple

Este programa utiliza el marco de arranque Spring, que viene con TOMCAT, lo que ahorra muchos problemas. La función del programa es mostrar el número de puerto en la página web, ya sea mostrando 8000 o mostrando 8001

El código principal es el siguiente:

static String port;
public static void main(String[] args) throws Exception{
    SpringApplication app = new SpringApplication(MainApplication.class);
    Environment env = app.run(args).getEnvironment();
    port=env.getProperty("server.port");//获取端口号
    System.out.println(port);
}

@RequestMapping("/")
@ResponseBody
public String test(HttpServletRequest request, HttpServletResponse response){
    return port;//返回端口号
}

El método principal obtiene el número de puerto al iniciar el programa, y ​​el método de prueba devuelve el número de puerto cuando el usuario accede

Ejecute el programa en dos servidores comerciales

Empaquetamos el programa y lo copiamos en dos servidores empresariales Tomcat.

El servidor con IP 182.168.1.200 usa el comando: java -jar ShowPort-1.0-SNAPSHOT.jar --server.port=8000 para iniciar el programa. Luego use un navegador para acceder: http://localhost:8000/ en el   servidor.Si la página web muestra 8000, significa que el programa es normal:

El servidor cuya IP es 182.168.1.201 usa el comando: java -jar ShowPort-1.0-SNAPSHOT.jar --server.port=8001 para iniciar el programa. Luego use un navegador para acceder a: http://localhost:8001/ en el servidor.Si   la página web muestra 8001, significa que el programa es normal.

Inicie NGINX en el servidor NGINX

Inicie el servicio con el comando nginx:

Nota: si desea detener NGINX, no puede cerrar esta ventana CMD directamente. Debe abrir otra ventana de CMD y luego usar el comando nginx -s stop para cerrar NGINX:

Clúster de prueba en el servidor NGINX

Ahora iniciamos el navegador en el servidor NGINX, ingresamos la URL: http://localhost/    ,

Puede ver que la página web muestra 8001:

Abrimos algunas pestañas más en el navegador y veremos que algunas muestran 8000 y otras muestran 8001

De esta forma, nuestro clúster se configura con éxito. La próxima vez implementaremos el uso compartido de sesiones.

Supongo que te gusta

Origin blog.csdn.net/dengxiaodai/article/details/129707243
Recomendado
Clasificación