La carga de información de Netty se utiliza para implementar un sistema de comunicación en tiempo real de conexión larga. El cliente se puede utilizar en cualquier escenario y admite comunicación http en tiempo real, comunicación webSocket, comunicación de protocolo tcp, comunicación de protocolo udp, protocolo de transmisión, etc. Protocolo http y protocolo rpc. Utilice una estructura de paquetes de red personalizada para implementar una pila de red personalizada.
1: Admite zookeeper distribuido para la configuración del nodo de servicio.
2: Implementar la pila de protocolos de mensajes privados netty en forma de anotaciones personalizadas.
3: Admite llamadas RPC remotas.
4: Admite redistribución.
5: admite separación de bases de datos.
6: Admite procesamiento de mensajes sincrónico y asincrónico
7: Admite el modelo de suministro / consumo de cola de mensajes de Kafka para implementar la cola de mensajes distribuida
8: Admite la transmisión cifrada de datos para garantizar la seguridad de los datos.
9: Admite el envío de transacciones distribuidas de 3 piezas y la reversión de excepciones.
1: servidor de juegos
2: sistema de comunicación en tiempo real
3: Sistema de procesamiento de datos financieros
4: Sistemas con altos requisitos de rendimiento de la red en tiempo real
5: Sistemas comunes de Internet
Módulo de base de datos de datos independiente, módulo de transacciones independiente, módulo de programación de subprocesos independiente. Proporcionar servicios de red en forma de microservicios.
Comunicación TCP, use netty para realizar la comunicación TCP, puede usar comtwjitmcorestartGameService en el proyecto, cambie el modo de inicio al modo de inicio del servidor tcp, puede usar testjavacomtwjitmClientServiceTest en prueba para simular clientes Para conectarse, debe cambiar el puerto y la dirección al servidor tcp para conectarse. El procesamiento de mensajes TCP utiliza colas de mensajes para colocar todos los mensajes entrantes en la cola y procesar los mensajes a través de la tecnología de agrupación de subprocesos.
El formato de la pila de protocolos de red personalizados UDP es similar al de la pila de protocolos de red personalizados TCP. La diferencia es que UDP no necesita establecer una conexión, que es un modo de comunicación sin estado. En el módulo de procesamiento de mensajes, la sesión se guarda cuando se usa. La conexión TCP se utiliza para determinar qué cliente es. El protocolo UDP puede procesar correctamente los mensajes enviados por el cliente a través de dos modos de procesamiento de mensajes diferentes, que incluyen: modo de cola sincrónica;
El protocolo HTTP también se implementa mediante una pila de protocolos de red personalizada, que es similar a los protocolos TCP y UDP, excepto que los paquetes de datos son diferentes. HTTP es un protocolo creado en la capa de aplicación de TCP. Utilice el procesamiento sincrónico para procesar los mensajes de manera oportuna cuando lleguen.
El módulo RPC se divide en llamadas sincrónicas y asincrónicas, llamadas a servidores remotos, uso de netty para implementar un marco de servidor rpc liviano y personalización de estrategias de concesión de subprocesos. Combinado con conocimientos básicos de Java, como el proxy dinámico, se implementa el módulo de comunicación del servidor rpc. Utilice documentos xml para configurar la información básica del servidor rpc para lograr una expansión horizontal dinámica del servidor. Realizar preparativos básicos para servidores distribuidos.
Al integrar zookeeper, se realizan servicios de registro dinámico, servicios de descubrimiento y la integración de la lógica rpc, se logra el descubrimiento y registro de servicios distribuidos.
Integrando servicios de Kafka. Implemente colas de mensajes de servidor distribuido y desacople la lógica en el sistema.
Aún optimizando, optimizando la complejidad del espacio, la complejidad del tiempo, el tiempo de respuesta, las capacidades de prueba de estrés y otros desempeños en el proyecto.
Este proyecto utiliza Spring para administrar de manera uniforme algunos beans. Cuando se inicia el servidor, la inicialización del contenedor se envía de manera uniforme a Spring. Usando las anotaciones proporcionadas por Spring, es fácil obtener los objetos Bean inyectados en el contenedor de Spring y mejorar la legibilidad. el código.
A través de la administración de subprocesos, las actualizaciones de eventos del servidor utilizan el modo independiente para actualizar los eventos del servidor y el modo de cola para permitir la ejecución en serie de eventos.
Autor: No elijas un buen apodo casualmente twjitm qq: 1089718215
Dirección del blog https://blog.csdn.net/baidu_23086307
Dirección del sitio web personal; https://twjitm.com