if (minioClient == null) { minioClient = new MinioClient(endpoint, port, accessKey, secretKey, false); }
1
uselessVisitor 2021-06-21 15:43:34 +08:00
注册个 bean 托管好一些吧,没用过,猜测滴。。
https://blog.csdn.net/qq_33842795/article/details/115912970 |
2
anonydmer 2021-06-21 16:07:08 +08:00
能不能复用取决于它本身是不是线程安全。 不过通常来讲这种 XXClient 一般都是
|
3
Oktfolio 2021-06-21 16:11:39 +08:00
bean
|
4
HDMItoDP OP @anonydmer 看了下 MinioClient 内部代码,每次 new 一下,都 new 一个 OKHttpClient
|
5
Vegetable 2021-06-21 16:18:07 +08:00
|
6
HDMItoDP OP @beichenhpy 我看网上的都是注册个 bean 的这种
|
7
X0ray 2021-06-21 16:44:40 +08:00
不用,可以做一个单例全局使用。上面提到的 bean 不就是默认 singleton 的嘛
|
8
jingslunt 2021-06-21 16:48:07 +08:00
终于有人开始讨论 minio 了
PS:minio 最近被集成进 harbor operator |
9
qwerthhusn 2021-06-21 16:56:17 +08:00
不需要,而且不推荐。
这个 SDK 跟很多类似 AWS,阿里云的 SDK 一样,其实就是 HttpClient 套一层。(就是说你可以完全用原生的 HttpClient 做出完整的 Minio 请求,只不过会非常复杂。。尤其是阿里云系的,不用 SDK 很难自己能构造出正确的请求,老是签名错误,而且文档上的说的含糊不清) HttpClient 是带连接复用的,针对 HTTP1.1 还带连接池的。你每次 new 一个 Client 去操作效率非常低,每次都要重建一个新的连接。 |
10
anonydmer 2021-06-21 17:10:48 +08:00
@HDMItoDP OKHttpClient 内部已经复用连接池了,哪怕是多个 OKHttpClient 实例;所以即使 new 了多个 MinioClient 仍然会享受 OKHttpClient 连接池的福利。 不过正如 @qwerthhusn 兄弟说的不需要也不推荐
|
11
liian2019 2021-06-21 18:09:20 +08:00
复用,java 里面都是交给 spring 托管
|
12
HDMItoDP OP @qwerthhusn 好的
|