假设我们正在实现一个访问一些共享数据的服务,并且没有办法将这些数据划分为可以独立访问的部分。因此,在任何给定时间,不超过一个线程可以读取/写入这些数据。
解决此问题的正确但低效的方法是仅使用一些同步技术(信号量、监视器等),以便 Netty 工作线程不会通过同时访问共享数据(在服务请求时)来破坏共享数据。但是,整个锁定/解锁肯定会大大降低性能。
所以,第一个问题是:
如何将 Netty 配置为具有单个工作线程?
第二个是:
有什么好的设计可以解决共享数据在任何给定时间都不能由超过 1 个线程完成的问题?
1-worker 解决方案似乎解决了这个问题,但我想知道这会如何影响 Netty 的性能,因为可能有数以万计的客户端同时连接,发送请求并等待回复......