Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
08f513e1
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 搜索 >>
提交
08f513e1
编写于
10月 23, 2017
作者:
H
haocao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add circuit breaker support 6th.
上级
72bc4d38
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
99 addition
and
48 deletion
+99
-48
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationMasterSlaveConfiguration.java
...hestration/api/OrchestrationMasterSlaveConfiguration.java
+29
-0
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationMasterSlaveDataSourceFactory.java
...ration/api/OrchestrationMasterSlaveDataSourceFactory.java
+18
-19
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationShardingConfiguration.java
...orchestration/api/OrchestrationShardingConfiguration.java
+29
-0
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationShardingDataSourceFactory.java
...estration/api/OrchestrationShardingDataSourceFactory.java
+23
-29
未找到文件。
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationMasterSlaveConfiguration.java
0 → 100644
浏览文件 @
08f513e1
package
io.shardingjdbc.orchestration.api
;
import
io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration
;
import
io.shardingjdbc.orchestration.reg.base.CoordinatorRegistryCenter
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
javax.sql.DataSource
;
import
java.util.Map
;
/**
* Orchestration master slave configuration.
*
* @author caohao
*/
@RequiredArgsConstructor
@Getter
public
class
OrchestrationMasterSlaveConfiguration
{
private
final
String
name
;
private
final
boolean
overwrite
;
private
final
CoordinatorRegistryCenter
registryCenter
;
private
final
Map
<
String
,
DataSource
>
dataSourceMap
;
private
final
MasterSlaveRuleConfiguration
masterSlaveRuleConfiguration
;
}
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationMasterSlaveDataSourceFactory.java
浏览文件 @
08f513e1
...
...
@@ -42,42 +42,41 @@ import java.util.Map;
* Orchestration master slave data source factory.
*
* @author zhangliang
* @author caohao
*/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
final
class
OrchestrationMasterSlaveDataSourceFactory
{
/**
* Create sharding data source.
*
* @param name name of sharding data source
* @param registryCenter registry center
* @param dataSourceMap data source map
* @param masterSlaveRuleConfig rule configuration for databases and tables sharding
*
* @param config orchestration master slave configuration
* @return sharding data source
* @throws SQLException SQL exception
*/
public
static
DataSource
createDataSource
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
MasterSlaveRuleConfiguration
masterSlaveRuleConfig
)
throws
SQLException
{
initRegistryCenter
(
name
,
registryCenter
,
dataSourceMap
,
masterSlaveRuleConfig
);
MasterSlaveDataSource
result
=
(
MasterSlaveDataSource
)
MasterSlaveDataSourceFactory
.
createDataSource
(
dataSourceMap
,
masterSlaveRuleConfig
);
addConfigurationChangeListener
(
name
,
registryCenter
,
result
);
addInstancesStateChangeListener
(
name
,
registryCenter
,
result
);
public
static
DataSource
createDataSource
(
final
OrchestrationMasterSlaveConfiguration
config
)
throws
SQLException
{
initRegistryCenter
(
config
);
MasterSlaveDataSource
result
=
(
MasterSlaveDataSource
)
MasterSlaveDataSourceFactory
.
createDataSource
(
config
.
getDataSourceMap
(),
config
.
getMasterSlaveRuleConfiguration
());
addConfigurationChangeListener
(
config
.
getName
(),
config
.
getRegistryCenter
(),
result
);
addInstancesStateChangeListener
(
config
.
getName
(),
config
.
getRegistryCenter
(),
result
);
return
result
;
}
private
static
void
initRegistryCenter
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
MasterSlaveRuleConfiguration
masterSlaveRuleConfig
)
{
private
static
void
initRegistryCenter
(
final
OrchestrationMasterSlaveConfiguration
config
)
throws
SQLException
{
String
name
=
config
.
getName
();
CoordinatorRegistryCenter
registryCenter
=
config
.
getRegistryCenter
();
registryCenter
.
init
();
persist
(
name
,
registryCenter
,
dataSourceMap
,
masterSlaveRuleC
onfig
);
persist
(
c
onfig
);
registryCenter
.
persistEphemeral
(
"/"
+
name
+
"/state/instances/"
+
new
InstanceNode
().
getInstanceId
(),
""
);
registryCenter
.
addCacheData
(
"/"
+
name
+
"/config"
);
}
private
static
void
persist
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
MasterSlaveRuleConfiguration
masterSlaveRuleConfig
)
{
if
(
"overwrite"
.
equals
(
registryCenter
.
get
(
"/"
+
name
+
"/config"
))
||
registryCenter
.
getChildrenKeys
(
"/"
+
name
+
"/config"
).
isEmpty
())
{
registryCenter
.
persist
(
"/"
+
name
+
"/config/datasource"
,
DataSourceJsonConverter
.
toJson
(
dataSourceMap
));
registryCenter
.
persist
(
"/"
+
name
+
"/config/masterslave"
,
GsonFactory
.
getGson
().
toJson
(
masterSlaveRuleConfig
));
private
static
void
persist
(
final
OrchestrationMasterSlaveConfiguration
config
)
throws
SQLException
{
String
name
=
config
.
getName
();
CoordinatorRegistryCenter
registryCenter
=
config
.
getRegistryCenter
();
if
(
config
.
isOverwrite
()
||
registryCenter
.
getChildrenKeys
(
"/"
+
name
+
"/config"
).
isEmpty
())
{
registryCenter
.
persist
(
"/"
+
name
+
"/config/datasource"
,
DataSourceJsonConverter
.
toJson
(
config
.
getDataSourceMap
()));
registryCenter
.
persist
(
"/"
+
name
+
"/config/masterslave"
,
GsonFactory
.
getGson
().
toJson
(
config
.
getMasterSlaveRuleConfiguration
()));
}
}
...
...
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationShardingConfiguration.java
0 → 100644
浏览文件 @
08f513e1
package
io.shardingjdbc.orchestration.api
;
import
io.shardingjdbc.core.api.config.ShardingRuleConfiguration
;
import
io.shardingjdbc.orchestration.reg.base.CoordinatorRegistryCenter
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
javax.sql.DataSource
;
import
java.util.Map
;
/**
* Orchestration sharding configuration.
*
* @author caohao
*/
@RequiredArgsConstructor
@Getter
public
class
OrchestrationShardingConfiguration
{
private
final
String
name
;
private
final
boolean
overwrite
;
private
final
CoordinatorRegistryCenter
registryCenter
;
private
final
Map
<
String
,
DataSource
>
dataSourceMap
;
private
final
ShardingRuleConfiguration
shardingRuleConfig
;
}
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationShardingDataSourceFactory.java
浏览文件 @
08f513e1
...
...
@@ -43,64 +43,58 @@ import java.util.Properties;
* Orchestration sharding data source factory.
*
* @author zhangliang
* @author caohao
*/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
final
class
OrchestrationShardingDataSourceFactory
{
/**
* Create sharding data source.
*
* @param name name of sharding data source
* @param registryCenter registry center
* @param dataSourceMap data source map
* @param shardingRuleConfig rule configuration for databases and tables sharding
*
* @param config orchestration sharding configuration
* @return sharding data source
* @throws SQLException SQL exception
*/
public
static
DataSource
createDataSource
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
ShardingRuleConfiguration
shardingRuleConfig
)
throws
SQLException
{
initRegistryCenter
(
name
,
registryCenter
,
dataSourceMap
,
shardingRuleConfig
);
ShardingDataSource
result
=
(
ShardingDataSource
)
ShardingDataSourceFactory
.
createDataSource
(
dataSourceMap
,
shardingRuleConfig
);
addConfigurationChangeListener
(
name
,
registryCenter
,
result
);
addInstancesStateChangeListener
(
name
,
registryCenter
,
result
);
public
static
DataSource
createDataSource
(
final
OrchestrationShardingConfiguration
config
)
throws
SQLException
{
initRegistryCenter
(
config
);
ShardingDataSource
result
=
(
ShardingDataSource
)
ShardingDataSourceFactory
.
createDataSource
(
config
.
getDataSourceMap
(),
config
.
getShardingRuleConfig
());
addConfigurationChangeListener
(
config
.
getName
(),
config
.
getRegistryCenter
(),
result
);
addInstancesStateChangeListener
(
config
.
getName
(),
config
.
getRegistryCenter
(),
result
);
return
result
;
}
/**
* Create sharding data source.
*
* @param name name of sharding data source
* @param registryCenter registry center
* @param dataSourceMap data source map
* @param shardingRuleConfig rule configuration for databases and tables sharding
* @param config orchestration sharding configuration
* @param props properties for data source
* @return sharding data source
* @throws SQLException SQL exception
*/
public
static
DataSource
createDataSource
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
ShardingRuleConfiguration
shardingRuleConfig
,
final
Properties
props
)
throws
SQLException
{
initRegistryCenter
(
name
,
registryCenter
,
dataSourceMap
,
shardingRuleConfig
);
public
static
DataSource
createDataSource
(
final
OrchestrationShardingConfiguration
config
,
final
Properties
props
)
throws
SQLException
{
initRegistryCenter
(
config
);
// TODO props
ShardingDataSource
result
=
(
ShardingDataSource
)
ShardingDataSourceFactory
.
createDataSource
(
dataSourceMap
,
shardingRuleConfig
,
props
);
addConfigurationChangeListener
(
name
,
registryCenter
,
result
);
ShardingDataSource
result
=
(
ShardingDataSource
)
ShardingDataSourceFactory
.
createDataSource
(
config
.
getDataSourceMap
(),
config
.
getShardingRuleConfig
()
,
props
);
addConfigurationChangeListener
(
config
.
getName
(),
config
.
getRegistryCenter
()
,
result
);
return
result
;
}
private
static
void
initRegistryCenter
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
ShardingRuleConfiguration
shardingRuleConfig
)
{
private
static
void
initRegistryCenter
(
final
OrchestrationShardingConfiguration
config
)
throws
SQLException
{
String
name
=
config
.
getName
();
CoordinatorRegistryCenter
registryCenter
=
config
.
getRegistryCenter
();
registryCenter
.
init
();
persist
(
name
,
registryCenter
,
dataSourceMap
,
shardingRuleC
onfig
);
persist
(
c
onfig
);
registryCenter
.
persistEphemeral
(
"/"
+
name
+
"/state/instances/"
+
new
InstanceNode
().
getInstanceId
(),
""
);
registryCenter
.
addCacheData
(
"/"
+
name
+
"/config"
);
registryCenter
.
addCacheData
(
"/"
+
name
+
"/state/instances"
);
}
private
static
void
persist
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
ShardingRuleConfiguration
shardingRuleConfig
)
{
if
(
"overwrite"
.
equals
(
registryCenter
.
get
(
"/"
+
name
+
"/config"
))
||
registryCenter
.
getChildrenKeys
(
"/"
+
name
+
"/config"
).
isEmpty
())
{
registryCenter
.
persist
(
"/"
+
name
+
"/config/datasource"
,
DataSourceJsonConverter
.
toJson
(
dataSourceMap
));
registryCenter
.
persist
(
"/"
+
name
+
"/config/sharding"
,
ShardingRuleConfigurationConverter
.
toJson
(
shardingRuleConfig
));
private
static
void
persist
(
final
OrchestrationShardingConfiguration
config
)
throws
SQLException
{
String
name
=
config
.
getName
();
CoordinatorRegistryCenter
registryCenter
=
config
.
getRegistryCenter
();
if
(
config
.
isOverwrite
()
||
registryCenter
.
getChildrenKeys
(
"/"
+
name
+
"/config"
).
isEmpty
())
{
registryCenter
.
persist
(
"/"
+
name
+
"/config/datasource"
,
DataSourceJsonConverter
.
toJson
(
config
.
getDataSourceMap
()));
registryCenter
.
persist
(
"/"
+
name
+
"/config/sharding"
,
ShardingRuleConfigurationConverter
.
toJson
(
config
.
getShardingRuleConfig
()));
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录