Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
f51b1c8e
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 搜索 >>
提交
f51b1c8e
编写于
8月 06, 2018
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ShardingProxyClient => BackendNettyClient
上级
4cc45d3f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
32 addition
and
32 deletion
+32
-32
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/BackendNettyClient.java
...hardingsphere/proxy/backend/netty/BackendNettyClient.java
+24
-24
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/BackendNettyClientChannelInitializer.java
...y/backend/netty/BackendNettyClientChannelInitializer.java
+2
-2
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/NettyBackendHandler.java
...ardingsphere/proxy/backend/netty/NettyBackendHandler.java
+2
-2
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/NettyChannelPoolHandler.java
...ngsphere/proxy/backend/netty/NettyChannelPoolHandler.java
+1
-1
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/ShardingProxy.java
.../java/io/shardingsphere/proxy/frontend/ShardingProxy.java
+3
-3
未找到文件。
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/
ShardingProx
yClient.java
→
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/
BackendNett
yClient.java
浏览文件 @
f51b1c8e
...
@@ -34,26 +34,30 @@ import io.netty.channel.pool.SimpleChannelPool;
...
@@ -34,26 +34,30 @@ import io.netty.channel.pool.SimpleChannelPool;
import
io.netty.channel.socket.nio.NioSocketChannel
;
import
io.netty.channel.socket.nio.NioSocketChannel
;
import
io.shardingsphere.core.rule.DataSourceParameter
;
import
io.shardingsphere.core.rule.DataSourceParameter
;
import
io.shardingsphere.proxy.config.RuleRegistry
;
import
io.shardingsphere.proxy.config.RuleRegistry
;
import
lombok.AccessLevel
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
java.net.MalformedURLException
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeoutException
;
import
java.util.concurrent.TimeoutException
;
/**
/**
*
Sharding-Proxy Client
.
*
Backend connection client for netty
.
*
*
* @author wangkai
* @author wangkai
* @author linjiaqi
* @author linjiaqi
*/
*/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
@Slf4j
@Slf4j
public
final
class
ShardingProx
yClient
{
public
final
class
BackendNett
yClient
{
private
static
final
ShardingProxyClient
INSTANCE
=
new
ShardingProx
yClient
();
private
static
final
BackendNettyClient
INSTANCE
=
new
BackendNett
yClient
();
private
static
final
RuleRegistry
RULE_REGISTRY
=
RuleRegistry
.
getInstance
();
private
static
final
RuleRegistry
RULE_REGISTRY
=
RuleRegistry
.
getInstance
();
...
@@ -71,23 +75,28 @@ public final class ShardingProxyClient {
...
@@ -71,23 +75,28 @@ public final class ShardingProxyClient {
private
ChannelPoolMap
<
String
,
SimpleChannelPool
>
poolMap
;
private
ChannelPoolMap
<
String
,
SimpleChannelPool
>
poolMap
;
/**
/**
*
Start Sharding-Prox
y.
*
Get instance of backend connection client for nett
y.
*
*
* @throws MalformedURLException url is illegal.
* @return instance of backend connection client for netty
*/
public
static
BackendNettyClient
getInstance
()
{
return
INSTANCE
;
}
/**
* Start backend connection client for netty.
*
* @throws MalformedURLException URL is illegal
* @throws InterruptedException interrupted exception
* @throws InterruptedException interrupted exception
*/
*/
public
void
start
()
throws
MalformedURLException
,
InterruptedException
{
public
void
start
()
throws
MalformedURLException
,
InterruptedException
{
Map
<
String
,
DataSourceParameter
>
dataSourceConfigurationMap
=
RULE_REGISTRY
.
getDataSourceConfigurationMap
();
Map
<
String
,
DataSourceParameter
>
dataSourceConfigurationMap
=
RULE_REGISTRY
.
getDataSourceConfigurationMap
();
for
(
Map
.
Entry
<
String
,
DataSourceParameter
>
each
:
dataSourceConfigurationMap
.
entrySet
())
{
for
(
Entry
<
String
,
DataSourceParameter
>
each
:
dataSourceConfigurationMap
.
entrySet
())
{
URL
url
=
new
URL
(
each
.
getValue
().
getUrl
().
replaceAll
(
"jdbc:mysql:"
,
"http:"
));
URL
url
=
new
URL
(
each
.
getValue
().
getUrl
().
replaceAll
(
"jdbc:mysql:"
,
"http:"
));
final
String
ip
=
url
.
getHost
();
dataSourceConfigMap
.
put
(
each
.
getKey
(),
new
DataSourceConfig
(
url
.
getHost
(),
url
.
getPort
(),
url
.
getPath
().
substring
(
1
),
each
.
getValue
().
getUsername
(),
each
.
getValue
().
getPassword
()));
final
int
port
=
url
.
getPort
();
final
String
database
=
url
.
getPath
().
substring
(
1
);
final
String
username
=
(
each
.
getValue
()).
getUsername
();
final
String
password
=
(
each
.
getValue
()).
getPassword
();
dataSourceConfigMap
.
put
(
each
.
getKey
(),
new
DataSourceConfig
(
ip
,
port
,
database
,
username
,
password
));
}
}
final
Bootstrap
bootstrap
=
new
Bootstrap
();
Bootstrap
bootstrap
=
new
Bootstrap
();
// TODO :jiaqi where to init workerGroup?
if
(
workerGroup
instanceof
EpollEventLoopGroup
)
{
if
(
workerGroup
instanceof
EpollEventLoopGroup
)
{
groupsEpoll
(
bootstrap
);
groupsEpoll
(
bootstrap
);
}
else
{
}
else
{
...
@@ -97,10 +106,10 @@ public final class ShardingProxyClient {
...
@@ -97,10 +106,10 @@ public final class ShardingProxyClient {
}
}
/**
/**
* Stop
Sharding-Prox
y.
* Stop
backend connection client for nett
y.
*/
*/
public
void
stop
()
{
public
void
stop
()
{
if
(
workerGroup
!=
null
)
{
if
(
null
!=
workerGroup
)
{
workerGroup
.
shutdownGracefully
();
workerGroup
.
shutdownGracefully
();
}
}
}
}
...
@@ -149,13 +158,4 @@ public final class ShardingProxyClient {
...
@@ -149,13 +158,4 @@ public final class ShardingProxyClient {
}
}
}
}
}
}
/**
* Get instance of sharding-proxy client.
*
* @return instance of sharding-proxy client
*/
public
static
ShardingProxyClient
getInstance
()
{
return
INSTANCE
;
}
}
}
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/
ClientHandler
Initializer.java
→
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/
BackendNettyClientChannel
Initializer.java
浏览文件 @
f51b1c8e
...
@@ -25,13 +25,13 @@ import io.shardingsphere.proxy.transport.common.codec.PacketCodecFactory;
...
@@ -25,13 +25,13 @@ import io.shardingsphere.proxy.transport.common.codec.PacketCodecFactory;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
/**
/**
* Channel initializer.
* Channel initializer
for backend connection netty client
.
*
*
* @author wangkai
* @author wangkai
* @author linjiaqi
* @author linjiaqi
*/
*/
@RequiredArgsConstructor
@RequiredArgsConstructor
public
final
class
ClientHandler
Initializer
extends
ChannelInitializer
<
Channel
>
{
public
final
class
BackendNettyClientChannel
Initializer
extends
ChannelInitializer
<
Channel
>
{
private
final
DataSourceConfig
dataSourceConfig
;
private
final
DataSourceConfig
dataSourceConfig
;
...
...
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/NettyBackendHandler.java
浏览文件 @
f51b1c8e
...
@@ -148,7 +148,7 @@ public final class NettyBackendHandler extends AbstractBackendHandler {
...
@@ -148,7 +148,7 @@ public final class NettyBackendHandler extends AbstractBackendHandler {
if
(!
channelMap
.
containsKey
(
dataSourceName
))
{
if
(!
channelMap
.
containsKey
(
dataSourceName
))
{
channelMap
.
put
(
dataSourceName
,
new
ArrayList
<
Channel
>());
channelMap
.
put
(
dataSourceName
,
new
ArrayList
<
Channel
>());
}
}
SimpleChannelPool
pool
=
ShardingProx
yClient
.
getInstance
().
getPoolMap
().
get
(
dataSourceName
);
SimpleChannelPool
pool
=
BackendNett
yClient
.
getInstance
().
getPoolMap
().
get
(
dataSourceName
);
Channel
channel
=
pool
.
acquire
().
get
(
RULE_REGISTRY
.
getBackendNIOConfig
().
getConnectionTimeoutSeconds
(),
TimeUnit
.
SECONDS
);
Channel
channel
=
pool
.
acquire
().
get
(
RULE_REGISTRY
.
getBackendNIOConfig
().
getConnectionTimeoutSeconds
(),
TimeUnit
.
SECONDS
);
channelMap
.
get
(
dataSourceName
).
add
(
channel
);
channelMap
.
get
(
dataSourceName
).
add
(
channel
);
ChannelRegistry
.
getInstance
().
putConnectionId
(
channel
.
id
().
asShortText
(),
connectionId
);
ChannelRegistry
.
getInstance
().
putConnectionId
(
channel
.
id
().
asShortText
(),
connectionId
);
...
@@ -208,7 +208,7 @@ public final class NettyBackendHandler extends AbstractBackendHandler {
...
@@ -208,7 +208,7 @@ public final class NettyBackendHandler extends AbstractBackendHandler {
if
(
null
==
mergedResult
||
!
mergedResult
.
next
())
{
if
(
null
==
mergedResult
||
!
mergedResult
.
next
())
{
for
(
Entry
<
String
,
List
<
Channel
>>
entry
:
channelMap
.
entrySet
())
{
for
(
Entry
<
String
,
List
<
Channel
>>
entry
:
channelMap
.
entrySet
())
{
for
(
Channel
each
:
entry
.
getValue
())
{
for
(
Channel
each
:
entry
.
getValue
())
{
ShardingProx
yClient
.
getInstance
().
getPoolMap
().
get
(
entry
.
getKey
()).
release
(
each
);
BackendNett
yClient
.
getInstance
().
getPoolMap
().
get
(
entry
.
getKey
()).
release
(
each
);
}
}
}
}
return
false
;
return
false
;
...
...
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/netty/NettyChannelPoolHandler.java
浏览文件 @
f51b1c8e
...
@@ -46,6 +46,6 @@ public class NettyChannelPoolHandler implements ChannelPoolHandler {
...
@@ -46,6 +46,6 @@ public class NettyChannelPoolHandler implements ChannelPoolHandler {
@Override
@Override
public
void
channelCreated
(
final
Channel
channel
)
{
public
void
channelCreated
(
final
Channel
channel
)
{
log
.
info
(
"channelCreated. Channel ID: {}"
+
channel
.
id
().
asShortText
());
log
.
info
(
"channelCreated. Channel ID: {}"
+
channel
.
id
().
asShortText
());
channel
.
pipeline
().
addLast
(
new
ClientHandler
Initializer
(
dataSourceConfig
));
channel
.
pipeline
().
addLast
(
new
BackendNettyClientChannel
Initializer
(
dataSourceConfig
));
}
}
}
}
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/ShardingProxy.java
浏览文件 @
f51b1c8e
...
@@ -30,7 +30,7 @@ import io.netty.channel.nio.NioEventLoopGroup;
...
@@ -30,7 +30,7 @@ import io.netty.channel.nio.NioEventLoopGroup;
import
io.netty.channel.socket.nio.NioServerSocketChannel
;
import
io.netty.channel.socket.nio.NioServerSocketChannel
;
import
io.netty.handler.logging.LogLevel
;
import
io.netty.handler.logging.LogLevel
;
import
io.netty.handler.logging.LoggingHandler
;
import
io.netty.handler.logging.LoggingHandler
;
import
io.shardingsphere.proxy.backend.netty.
ShardingProx
yClient
;
import
io.shardingsphere.proxy.backend.netty.
BackendNett
yClient
;
import
io.shardingsphere.proxy.config.RuleRegistry
;
import
io.shardingsphere.proxy.config.RuleRegistry
;
import
io.shardingsphere.proxy.frontend.common.netty.ServerHandlerInitializer
;
import
io.shardingsphere.proxy.frontend.common.netty.ServerHandlerInitializer
;
import
io.shardingsphere.proxy.backend.BackendExecutorContext
;
import
io.shardingsphere.proxy.backend.BackendExecutorContext
;
...
@@ -70,7 +70,7 @@ public final class ShardingProxy {
...
@@ -70,7 +70,7 @@ public final class ShardingProxy {
public
void
start
(
final
int
port
)
throws
InterruptedException
,
MalformedURLException
{
public
void
start
(
final
int
port
)
throws
InterruptedException
,
MalformedURLException
{
try
{
try
{
if
(
RULE_REGISTRY
.
getBackendNIOConfig
().
isUseNIO
())
{
if
(
RULE_REGISTRY
.
getBackendNIOConfig
().
isUseNIO
())
{
ShardingProx
yClient
.
getInstance
().
start
();
BackendNett
yClient
.
getInstance
().
start
();
}
}
ServerBootstrap
bootstrap
=
new
ServerBootstrap
();
ServerBootstrap
bootstrap
=
new
ServerBootstrap
();
bossGroup
=
createEventLoopGroup
();
bossGroup
=
createEventLoopGroup
();
...
@@ -87,7 +87,7 @@ public final class ShardingProxy {
...
@@ -87,7 +87,7 @@ public final class ShardingProxy {
frontendExecutorContext
.
getExecutorService
().
shutdown
();
frontendExecutorContext
.
getExecutorService
().
shutdown
();
backendExecutorContext
.
getExecutorService
().
shutdown
();
backendExecutorContext
.
getExecutorService
().
shutdown
();
if
(
RULE_REGISTRY
.
getBackendNIOConfig
().
isUseNIO
())
{
if
(
RULE_REGISTRY
.
getBackendNIOConfig
().
isUseNIO
())
{
ShardingProx
yClient
.
getInstance
().
stop
();
BackendNett
yClient
.
getInstance
().
stop
();
}
}
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录