Quiero construir un sistema de chat que pueda servir a miles de personas en el mismo canal mientras que aloje varios canales que también puedan albergar la misma cantidad. Conozco los conceptos básicos de la programación del servidor en Java, pero no estoy seguro de qué técnica debo usar para permitir tantas conexiones.

La mayoría depende de los requisitos específicos del proyecto. La escalabilidad en términos de cantidad de nodos es uno si ellos y parece que desea realizar un sistema centralizado, por lo que la lógica del cliente solo presentará datos. En este escenario, sugeriré el protocolo AMQP, una de sus implementaciones es RabbitMQ. AMQP o JMS están destinados a ser utilizados en middleware empresarial y resuelven muchos problemas que puede enfrentar en este escenario, por lo que para una conversación simple, la dificultad y el enfoque inicial pueden generar una gran sobrecarga en términos de trabajo. Si el único enfoque es la escalabilidad de la red, el enfoque básico podría ser una biblioteca como Netty, está desarrollada por JBoss, está escrita en Java y permite a los desarrolladores implementar servidores escalables simples con API única utilizando muchos protocolos. El protocolo utilizado es aproximadamente transparente para el desarrollador. Por ejemplo, desarrollé con algunas líneas de código y con una arquitectura robusta y mantenible un servidor de chat multiprotocolo con protocolos de socket estándar Websocket y TCP, en este caso el cliente puede ser de cualquier tipo.

Recuerdo un componente del proyecto que utilizamos para transmitir resultados deportivos a cualquier número de clientes conectados. Utilizó la API del servicio de mensajería Java.

En general, esa transmisión de datos fue solo el uso creativo de un servidor de chat distribuido que utiliza JMS, por lo que también debería ser capaz de comunicarse de dos maneras con cualquier número de clientes específicos. Solo para notar que no escribí esta aplicación, sino que simplemente la usé como un componente para nuestros propios fines.

Multihilo y tomas de corriente.

Prueba esos.

Además, esto parece una quinteesencia del servidor web. Solo revise algún código fuente de JBoss o Resin.

Aprende Erlang

Prueba Erlang o Golang. Los dos idiomas son muy fáciles de manejar conceptos de tipo multiproceso.

More Interesting

Si quiero un fondo animado / de video para una página web, ¿debo usar Flash o HTML5? ¿Cuál tiene los menores problemas de compatibilidad?

Necesito crear una página web propia. ¿Cuál es la mejor manera de hacerlo?

Si creara una aplicación móvil o web que sirviera a más de 5 millones de personas, ¿cómo haría para diseñar una aplicación de este tipo?

Estoy muy perdido tratando de aprender mi primer framework (Spring MVC). ¿Debo intentar aprender un marco más básico como Play o Struts primero?

El desarrollo web está creciendo y evolucionando rápidamente. ¿Debo considerar profundizar mi conocimiento?

Quiero desarrollar un sitio web de compras en dotnet, pero no sé nada sobre dotnet. ¿Dónde debería comenzar a estudiar? ¿Cuáles son algunos libros electrónicos gratuitos que me pueden ayudar? (principalmente libros electrónicos para ASP.NET).

En MailChimp, ¿cómo centras el botón de enviar?

Tomé un curso sobre desarrollo web front-end y quería comenzar un negocio de diseño web. Todavía quiero pero tengo miedo, ¿cómo puedo superar esto?

¿Podría una sola persona hacer su propio navegador web si tuviera un título en Informática?

Quiero escribir mi propio sitio de Twitter (o Facebook), pero no quiero usar PHP como lenguaje del lado del servidor. ¿Cuáles son algunas alternativas?

Estoy trabajando de forma remota en un sitio web. ¿Cuál es la mejor manera de enviar código HTML / CSS a los desarrolladores? ¿Permitirles ver el código o copiarlo en un documento separado?

Estoy buscando configurar un blog con un diseño / diseño personalizable: ¿me recomendaría usar WordPress o un servicio similar como Wix?

Cuando selecciono un elemento en la lista desplegable de un curso, ¿se generará esa cantidad de tiempo en el cuadro de texto a continuación utilizando PGP y Ajax?

Quiero que mi blog sea profesional y limpio, ¿cuál es mi mejor opción en la creación de sitios web?

Estoy escribiendo un libro titulado desarrollo web en asp.net para principiantes. ¿Qué te gustaría que contuviera? Escribir en la última versión (asp.net 5)