我有一个java服务器来处理来自多个客户端的登录.服务器为每个tcp/ip套接字侦听器创建一个线程.数据库访问由服务器创建的另一个线程处理.
目前,我连接到服务器的客户端数量非常少(<100),因此我没有真正的性能担忧,但我正在研究如何在未来处理更多客户端.我担心的是,对于很多客户端,我的服务器和数据库线程会因客户端线程对其方法的不断调用而陷入困境.
特别是与数据库有关:当前每个客户端线程访问其服务器父级上的公共数据库线程并执行数据访问方法.我认为我应该做的是拥有某种消息队列,客户端线程可以将其数据请求置于其上,并且数据库线程将在它到达它时执行它.如果有数据要从数据访问调用返回,那么它可以将其放在队列中以供客户端线程获取.所有这些都不会命中主服务器代码或任何其他客户端线程.
因此,我认为我想实现一个异步消息队列,客户端线程可以在其上发送消息,数据库线程将从中获取.这是正确的方法吗?任何想法和链接到我可以阅读有关实施的地方将不胜感激.