Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
d6d598e6
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d6d598e6
编写于
8月 23, 2020
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add todo
上级
cea6cef1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
7 addition
and
3 deletion
+7
-3
shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/FrontendChannelInboundHandler.java
...e/proxy/frontend/netty/FrontendChannelInboundHandler.java
+7
-3
未找到文件。
shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/FrontendChannelInboundHandler.java
浏览文件 @
d6d598e6
...
...
@@ -34,6 +34,7 @@ import org.apache.shardingsphere.proxy.frontend.spi.DatabaseProtocolFrontendEngi
import
org.apache.shardingsphere.transaction.core.TransactionType
;
import
java.sql.SQLException
;
import
java.util.concurrent.ExecutorService
;
/**
* Frontend channel inbound handler.
...
...
@@ -58,7 +59,7 @@ public final class FrontendChannelInboundHandler extends ChannelInboundHandlerAd
public
void
channelActive
(
final
ChannelHandlerContext
context
)
{
ChannelThreadExecutorGroup
.
getInstance
().
register
(
context
.
channel
().
id
());
databaseProtocolFrontendEngine
.
getAuthEngine
().
handshake
(
context
,
backendConnection
);
// TODO
should be SPI for metrics build
// TODO
ref #7013
SingletonFacadeEngine
.
buildMetrics
().
ifPresent
(
metricsHandlerFacade
->
metricsHandlerFacade
.
gaugeIncrement
(
MetricsLabelEnum
.
CHANNEL_COUNT
.
getName
()));
}
...
...
@@ -69,8 +70,9 @@ public final class FrontendChannelInboundHandler extends ChannelInboundHandlerAd
return
;
}
SingletonFacadeEngine
.
buildMetrics
().
ifPresent
(
metricsHandlerFacade
->
metricsHandlerFacade
.
counterIncrement
(
MetricsLabelEnum
.
REQUEST_TOTAL
.
getName
()));
CommandExecutorSelector
.
getExecutor
(
databaseProtocolFrontendEngine
.
getFrontendContext
().
isOccupyThreadForPerConnection
(),
backendConnection
.
isSupportHint
(),
backendConnection
.
getTransactionType
(),
context
.
channel
().
id
()).
execute
(
new
CommandExecutorTask
(
databaseProtocolFrontendEngine
,
backendConnection
,
context
,
message
));
ExecutorService
executorService
=
CommandExecutorSelector
.
getExecutor
(
databaseProtocolFrontendEngine
.
getFrontendContext
().
isOccupyThreadForPerConnection
(),
backendConnection
.
isSupportHint
(),
backendConnection
.
getTransactionType
(),
context
.
channel
().
id
());
executorService
.
execute
(
new
CommandExecutorTask
(
databaseProtocolFrontendEngine
,
backendConnection
,
context
,
message
));
}
private
boolean
auth
(
final
ChannelHandlerContext
context
,
final
ByteBuf
message
)
{
...
...
@@ -79,6 +81,7 @@ public final class FrontendChannelInboundHandler extends ChannelInboundHandlerAd
// CHECKSTYLE:OFF
}
catch
(
final
Exception
ex
)
{
// CHECKSTYLE:ON
// TODO ref #7014
log
.
error
(
"Exception occur: "
,
ex
);
context
.
write
(
databaseProtocolFrontendEngine
.
getCommandExecuteEngine
().
getErrorPacket
(
ex
));
}
...
...
@@ -92,6 +95,7 @@ public final class FrontendChannelInboundHandler extends ChannelInboundHandlerAd
backendConnection
.
close
(
true
);
ChannelThreadExecutorGroup
.
getInstance
().
unregister
(
context
.
channel
().
id
());
SingletonFacadeEngine
.
buildMetrics
().
ifPresent
(
metricsHandlerFacade
->
metricsHandlerFacade
.
gaugeDecrement
(
MetricsLabelEnum
.
CHANNEL_COUNT
.
getName
()));
// TODO #7011
}
@Override
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录