servidor de chat independiente
Desventajas :
Debido a los recursos de hardware limitados, los usuarios simultáneos que puede soportar el servidor no son lo suficientemente grandes;
Cualquier modificación del módulo hará que todo el código del proyecto se vuelva a compilar y desplegar ;
En el sistema, algunos módulos hacen un uso intensivo de la CPU y otros hacen un uso intensivo de las E/S , lo que da como resultado diferentes requisitos para los recursos de hardware de cada módulo.
servidor de chat de clúster
Ventajas : mayor concurrencia de usuarios y fácil implementación
Desventajas : la modificación del código del proyecto del módulo aún requiere una recompilación y se requieren múltiples compilaciones
Por ejemplo, la administración en segundo plano no requiere una alta concurrencia, por lo que no es necesario implementarla en todas las máquinas.
repartido
Un proyecto se divide en muchos módulos . Cada módulo se implementa de forma independiente y se ejecuta en un host de servidor. Todos los servidores trabajan juntos para proporcionar servicios. Cada servidor se denomina nodo distribuido . De acuerdo con los requisitos de concurrencia de los nodos, un nodo puede hacer lo siguiente . Implementación de clústeres de módulos, por ejemplo, el nodo distribuido 1 en la figura a continuación puede implementar nodos distribuidos 1-1, nodos distribuidos 1-2, ...
pregunta
¿Cómo dividir los módulos de software de un sistema grande? Los módulos pueden implementar una gran cantidad de código repetitivo
Cada módulo se ejecuta en un proceso diferente (como docker
en un entorno virtualizado), ¿cómo acceder a cada módulo?
¿Cómo llama el módulo de la máquina 1 a un método comercial del módulo de la máquina 2?
¿Cómo llama un proceso de módulo 1 en la máquina 1 a un método comercial en el proceso de módulo 2 en la máquina 1?