Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
b3971b6f
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,体验更适合开发者的 AI 搜索 >>
提交
b3971b6f
编写于
8月 06, 2018
作者:
T
tuohai666
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#1099, change FrontendExecutorContext to UserGroupContext
上级
788d3c3f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
17 deletion
+17
-17
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/ShardingProxy.java
.../java/io/shardingsphere/proxy/frontend/ShardingProxy.java
+5
-3
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/UserGroupContext.java
...va/io/shardingsphere/proxy/frontend/UserGroupContext.java
+10
-12
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/common/executor/ExecutorGroup.java
...gsphere/proxy/frontend/common/executor/ExecutorGroup.java
+2
-2
未找到文件。
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/ShardingProxy.java
浏览文件 @
b3971b6f
...
...
@@ -48,14 +48,14 @@ public final class ShardingProxy {
private
static
final
RuleRegistry
RULE_REGISTRY
=
RuleRegistry
.
getInstance
();
private
final
FrontendExecutorContext
frontendExecutorContext
=
FrontendExecutorContext
.
getInstance
();
private
final
BackendExecutorContext
backendExecutorContext
=
BackendExecutorContext
.
getInstance
();
private
EventLoopGroup
bossGroup
;
private
EventLoopGroup
workerGroup
;
private
final
UserGroupContext
userGroupContext
=
UserGroupContext
.
getInstance
();
public
ShardingProxy
()
{
RULE_REGISTRY
.
initShardingMetaData
(
backendExecutorContext
.
getExecutorService
());
}
...
...
@@ -84,7 +84,7 @@ public final class ShardingProxy {
}
finally
{
workerGroup
.
shutdownGracefully
();
bossGroup
.
shutdownGracefully
();
frontendExecutorContext
.
getExecutorService
().
shutdown
();
userGroupContext
.
getUserGroup
().
shutdownGracefully
();
backendExecutorContext
.
getExecutorService
().
shutdown
();
if
(
RULE_REGISTRY
.
getBackendNIOConfig
().
isUseNIO
())
{
ShardingProxyClient
.
getInstance
().
stop
();
...
...
@@ -102,6 +102,7 @@ public final class ShardingProxy {
private
void
groupsEpoll
(
final
ServerBootstrap
bootstrap
)
{
workerGroup
=
new
EpollEventLoopGroup
(
RULE_REGISTRY
.
getExecutorSize
());
userGroupContext
.
setUserGroup
(
new
EpollEventLoopGroup
(
RULE_REGISTRY
.
getExecutorSize
()));
bootstrap
.
group
(
bossGroup
,
workerGroup
)
.
channel
(
EpollServerSocketChannel
.
class
)
.
option
(
EpollChannelOption
.
SO_BACKLOG
,
128
)
...
...
@@ -114,6 +115,7 @@ public final class ShardingProxy {
private
void
groupsNio
(
final
ServerBootstrap
bootstrap
)
{
workerGroup
=
new
NioEventLoopGroup
(
RULE_REGISTRY
.
getExecutorSize
());
userGroupContext
.
setUserGroup
(
new
NioEventLoopGroup
(
RULE_REGISTRY
.
getExecutorSize
()));
bootstrap
.
group
(
bossGroup
,
workerGroup
)
.
channel
(
NioServerSocketChannel
.
class
)
.
option
(
ChannelOption
.
SO_BACKLOG
,
128
)
...
...
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/
FrontendExecutor
Context.java
→
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/
UserGroup
Context.java
浏览文件 @
b3971b6f
...
...
@@ -17,31 +17,29 @@
package
io.shardingsphere.proxy.frontend
;
import
com.google.common.util.concurrent.ListeningExecutorService
;
import
com.google.common.util.concurrent.MoreExecutors
;
import
io.shardingsphere.proxy.config.RuleRegistry
;
import
io.netty.channel.EventLoopGroup
;
import
lombok.Getter
;
import
java.util.concurrent.Executors
;
import
lombok.Setter
;
/**
*
Frontend executor
context.
*
User group
context.
*
* @author zhangyonglun
*/
public
final
class
FrontendExecutor
Context
{
public
final
class
UserGroup
Context
{
private
static
final
FrontendExecutorContext
INSTANCE
=
new
FrontendExecutor
Context
();
private
static
final
UserGroupContext
INSTANCE
=
new
UserGroup
Context
();
@Getter
private
final
ListeningExecutorService
executorService
=
MoreExecutors
.
listeningDecorator
(
Executors
.
newFixedThreadPool
(
RuleRegistry
.
getInstance
().
getExecutorSize
()));
@Setter
private
EventLoopGroup
userGroup
;
/**
* Get
frontend executor
context instance.
* Get
user group
context instance.
*
* @return instance of
frontend executor
context
* @return instance of
user group
context
*/
public
static
FrontendExecutor
Context
getInstance
()
{
public
static
UserGroup
Context
getInstance
()
{
return
INSTANCE
;
}
}
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/common/executor/ExecutorGroup.java
浏览文件 @
b3971b6f
...
...
@@ -20,7 +20,7 @@ package io.shardingsphere.proxy.frontend.common.executor;
import
io.netty.channel.ChannelId
;
import
io.shardingsphere.core.constant.TransactionType
;
import
io.shardingsphere.proxy.config.RuleRegistry
;
import
io.shardingsphere.proxy.frontend.
FrontendExecutor
Context
;
import
io.shardingsphere.proxy.frontend.
UserGroup
Context
;
import
lombok.RequiredArgsConstructor
;
import
java.util.concurrent.ExecutorService
;
...
...
@@ -44,6 +44,6 @@ public final class ExecutorGroup {
*/
public
ExecutorService
getExecutorService
()
{
return
TransactionType
.
XA
.
equals
(
RULE_REGISTRY
.
getTransactionType
())
?
ChannelThreadExecutorGroup
.
getInstance
().
get
(
channelId
)
:
FrontendExecutorContext
.
getInstance
().
getExecutorService
();
:
UserGroupContext
.
getInstance
().
getUserGroup
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录