- 论坛徽章:
- 0
|
我阅读了一下fastdfs java client的代码,按照我的理解(如果没理解错误的话) , java客户端选取与哪一个tracker server连接是采用的轮询方式(如果存在多个tracker server 的话);
TrackerGroup类的getConnection()方法中有如下片段(该方法会返回一个TrackerServer实例):
- synchronized(this.lock)
- {
- this.tracker_server_index++;
- if (this.tracker_server_index >= this.tracker_servers.length)
- {
- this.tracker_server_index = 0;
- }
-
- current_index = this.tracker_server_index;
- }
-
复制代码 这里有同步块的存在,如果TrackerGroup是同一个实例,这样是不是导致访问getConnection()方法由于锁而使之降低运行效率。
是否可以采用别的方式选择TrackerServer?(随机?hash?), 不知道我理解的对不对,请有经验的大牛们帮我解答一下实际项目中应该怎样使用java client api。谢谢!
|
|