如何在Netty中使用外部服务?

如何在Netty中使用外部服务?,netty,Netty,我刚刚开始使用Netty和两个外部服务实现TCP服务器:MongoDB和Redis。 由于这是我第一次接触Netty,我需要一些建议 我的疑问是,我是否应该在传入的客户端之间共享外部服务的唯一类实例 例如: 关于Redis,我通常使用线程之间共享的类 //示例 //主类 公开课演示{ 公共类(){ JedisPool JedisPool=新的JedisPool(); 对于(int i=0;i

我刚刚开始使用Netty和两个外部服务实现TCP服务器:MongoDB和Redis。 由于这是我第一次接触Netty,我需要一些建议

我的疑问是,我是否应该在传入的客户端之间共享外部服务的唯一类实例

例如: 关于Redis,我通常使用线程之间共享的类

//示例
//主类
公开课演示{
公共类(){
JedisPool JedisPool=新的JedisPool();
对于(int i=0;i<999;i++){
demohread thread=新的demohread(i);
thread.run();
}
}
}
//螺纹类
公共类降级线程{
私人绝地武士;
私人互联网i;
公共降级线程(绝地武士,int i){
这个。绝地=绝地;
这个。i=i;
}
公开募捐{
Jedis redisClient=jedisPool.getResource();
//...
}
}
遵循几乎相同的示例,关于MongoDB,我通常使用一个MongoDatabase类,它在线程之间共享

//示例
//主类
公开课演示{
公共类(){
MongoClient MongoClient=新的MongoClient();
MongoDatabase MongoDatabase=mongoClient.getDatabase(“示例”);
对于(int i=0;i<999;i++){
DemoThread线程=新的DemoThread(mongoDatabase,i);
thread.run();
}
}
}
//螺纹类
公共类降级线程{
私有蒙哥达巴酶蒙哥达巴酶;
私人互联网i;
公共降级线程(MongoDatabase MongoDatabase,inti){
this.mongoDatabase=mongoDatabase;
这个。i=i;
}
公开募捐{
MongoCollection collection=mongoDatabase.getCollection(“示例”);
//...
}
}
在Netty中这样做正确吗?或者,在服务器上连接的每个新客户机上,我必须创建到服务的新连接

如果它是正确的,那么我应该在何时何地实例化这些类? 如果没有,那么我必须为每个客户端创建一个新连接


非常感谢。

通过创建实例并将其注入ChannelHandler,您可以全局使用任何类