Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
279d7702
M
milvus
项目概览
milvus
/
milvus
11 个月 前同步成功
通知
261
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
279d7702
编写于
5月 27, 2021
作者:
G
godchen
提交者:
GitHub
5月 27, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Change proxy grpc retry (#5431)
Change proxy grpc retry. Signed-off-by: godchen qingxiang.chen@zilliz.com
上级
7dbe7370
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
70 addition
and
11 deletion
+70
-11
internal/distributed/masterservice/server.go
internal/distributed/masterservice/server.go
+1
-1
internal/distributed/proxynode/client/client.go
internal/distributed/proxynode/client/client.go
+68
-9
internal/proxyservice/node_info.go
internal/proxyservice/node_info.go
+1
-1
未找到文件。
internal/distributed/masterservice/server.go
浏览文件 @
279d7702
...
...
@@ -177,7 +177,7 @@ func (s *Server) init() error {
s
.
masterService
.
SetNewProxyClient
(
func
(
s
*
sessionutil
.
Session
)
(
types
.
ProxyNode
,
error
)
{
cli
:=
pnc
.
NewClient
(
ctx
,
s
.
Address
)
cli
:=
pnc
.
NewClient
(
ctx
,
s
.
Address
,
10
)
if
err
:=
cli
.
Init
();
err
!=
nil
{
return
nil
,
err
}
...
...
internal/distributed/proxynode/client/client.go
浏览文件 @
279d7702
...
...
@@ -29,14 +29,22 @@ import (
type
Client
struct
{
grpcClient
proxypb
.
ProxyNodeServiceClient
address
string
conn
*
grpc
.
ClientConn
ctx
context
.
Context
address
string
timeout
time
.
Duration
reconnTry
int
recallTry
int
}
func
NewClient
(
ctx
context
.
Context
,
address
string
)
*
Client
{
func
NewClient
(
ctx
context
.
Context
,
address
string
,
timeout
time
.
Duration
)
*
Client
{
return
&
Client
{
address
:
address
,
ctx
:
ctx
,
address
:
address
,
ctx
:
ctx
,
timeout
:
timeout
,
recallTry
:
3
,
reconnTry
:
10
,
}
}
...
...
@@ -52,16 +60,58 @@ func (c *Client) Init() error {
if
err
!=
nil
{
return
err
}
c
.
grpcClient
=
proxypb
.
NewProxyNodeServiceClient
(
conn
)
c
.
conn
=
conn
return
nil
}
err
:=
retry
.
Retry
(
100000
,
time
.
Millisecond
*
200
,
connectGrpcFunc
)
err
:=
retry
.
Retry
(
c
.
reconnTry
,
time
.
Millisecond
*
200
,
connectGrpcFunc
)
if
err
!=
nil
{
return
err
}
c
.
grpcClient
=
proxypb
.
NewProxyNodeServiceClient
(
c
.
conn
)
return
nil
}
func
(
c
*
Client
)
reconnect
()
error
{
tracer
:=
opentracing
.
GlobalTracer
()
connectGrpcFunc
:=
func
()
error
{
log
.
Debug
(
"ProxyNode connect "
,
zap
.
String
(
"address"
,
c
.
address
))
conn
,
err
:=
grpc
.
DialContext
(
c
.
ctx
,
c
.
address
,
grpc
.
WithInsecure
(),
grpc
.
WithBlock
(),
grpc
.
WithUnaryInterceptor
(
otgrpc
.
OpenTracingClientInterceptor
(
tracer
)),
grpc
.
WithStreamInterceptor
(
otgrpc
.
OpenTracingStreamClientInterceptor
(
tracer
)))
if
err
!=
nil
{
return
err
}
c
.
conn
=
conn
return
nil
}
err
:=
retry
.
Retry
(
c
.
reconnTry
,
500
*
time
.
Millisecond
,
connectGrpcFunc
)
if
err
!=
nil
{
return
err
}
c
.
grpcClient
=
proxypb
.
NewProxyNodeServiceClient
(
c
.
conn
)
return
nil
}
func
(
c
*
Client
)
recall
(
caller
func
()
(
interface
{},
error
))
(
interface
{},
error
)
{
ret
,
err
:=
caller
()
if
err
==
nil
{
return
ret
,
nil
}
for
i
:=
0
;
i
<
c
.
recallTry
;
i
++
{
err
=
c
.
reconnect
()
if
err
==
nil
{
ret
,
err
=
caller
()
if
err
==
nil
{
return
ret
,
nil
}
}
}
return
ret
,
err
}
func
(
c
*
Client
)
Start
()
error
{
return
nil
}
...
...
@@ -76,13 +126,22 @@ func (c *Client) Register() error {
}
func
(
c
*
Client
)
GetComponentStates
(
ctx
context
.
Context
)
(
*
internalpb
.
ComponentStates
,
error
)
{
return
c
.
grpcClient
.
GetComponentStates
(
ctx
,
&
internalpb
.
GetComponentStatesRequest
{})
ret
,
err
:=
c
.
recall
(
func
()
(
interface
{},
error
)
{
return
c
.
grpcClient
.
GetComponentStates
(
ctx
,
&
internalpb
.
GetComponentStatesRequest
{})
})
return
ret
.
(
*
internalpb
.
ComponentStates
),
err
}
func
(
c
*
Client
)
GetStatisticsChannel
(
ctx
context
.
Context
)
(
*
milvuspb
.
StringResponse
,
error
)
{
return
c
.
grpcClient
.
GetStatisticsChannel
(
ctx
,
&
internalpb
.
GetStatisticsChannelRequest
{})
ret
,
err
:=
c
.
recall
(
func
()
(
interface
{},
error
)
{
return
c
.
grpcClient
.
GetStatisticsChannel
(
ctx
,
&
internalpb
.
GetStatisticsChannelRequest
{})
})
return
ret
.
(
*
milvuspb
.
StringResponse
),
err
}
func
(
c
*
Client
)
InvalidateCollectionMetaCache
(
ctx
context
.
Context
,
req
*
proxypb
.
InvalidateCollMetaCacheRequest
)
(
*
commonpb
.
Status
,
error
)
{
return
c
.
grpcClient
.
InvalidateCollectionMetaCache
(
ctx
,
req
)
ret
,
err
:=
c
.
recall
(
func
()
(
interface
{},
error
)
{
return
c
.
grpcClient
.
InvalidateCollectionMetaCache
(
ctx
,
req
)
})
return
ret
.
(
*
commonpb
.
Status
),
err
}
internal/proxyservice/node_info.go
浏览文件 @
279d7702
...
...
@@ -86,7 +86,7 @@ func (table *globalNodeInfoTable) createClients() error {
for
nodeID
,
info
:=
range
table
.
infos
{
_
,
ok
:=
table
.
ProxyNodes
[
nodeID
]
if
!
ok
{
table
.
ProxyNodes
[
nodeID
]
=
grpcproxynodeclient
.
NewClient
(
context
.
Background
(),
info
.
ip
+
":"
+
strconv
.
Itoa
(
int
(
info
.
port
)))
table
.
ProxyNodes
[
nodeID
]
=
grpcproxynodeclient
.
NewClient
(
context
.
Background
(),
info
.
ip
+
":"
+
strconv
.
Itoa
(
int
(
info
.
port
))
,
10
)
var
err
error
err
=
table
.
ProxyNodes
[
nodeID
]
.
Init
()
if
err
!=
nil
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录