Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
谢捷峰
discovery
Commits
0cacd820
Commit
0cacd820
authored
Jun 23, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复缺省未配置的Bug
parent
cb986c12
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
5 deletions
+32
-5
discovery-plugin-configuration/src/main/java/com/nepxion/discovery/plugin/configuration/ConfigurationParser.java
+4
-2
discovery-plugin-core/src/main/java/com/nepxion/discovery/plugin/core/strategy/DiscoveryStrategy.java
+23
-2
discovery-plugin-core/src/main/java/com/nepxion/discovery/plugin/core/strategy/RegisterStrategy.java
+5
-1
No files found.
discovery-plugin-configuration/src/main/java/com/nepxion/discovery/plugin/configuration/ConfigurationParser.java
View file @
0cacd820
...
@@ -55,16 +55,18 @@ public class ConfigurationParser extends Dom4JParser {
...
@@ -55,16 +55,18 @@ public class ConfigurationParser extends Dom4JParser {
throw
new
PluginException
(
"The count of element["
+
ConfigurationConstant
.
DISCOVERY_ELEMENT_NAME
+
"] can't be more than 1"
);
throw
new
PluginException
(
"The count of element["
+
ConfigurationConstant
.
DISCOVERY_ELEMENT_NAME
+
"] can't be more than 1"
);
}
}
RegisterEntity
registerEntity
=
n
ew
RegisterEntity
()
;
RegisterEntity
registerEntity
=
n
ull
;
DiscoveryEntity
discoveryEntity
=
n
ew
DiscoveryEntity
()
;
DiscoveryEntity
discoveryEntity
=
n
ull
;
for
(
Iterator
elementIterator
=
element
.
elementIterator
();
elementIterator
.
hasNext
();)
{
for
(
Iterator
elementIterator
=
element
.
elementIterator
();
elementIterator
.
hasNext
();)
{
Object
childElementObject
=
elementIterator
.
next
();
Object
childElementObject
=
elementIterator
.
next
();
if
(
childElementObject
instanceof
Element
)
{
if
(
childElementObject
instanceof
Element
)
{
Element
childElement
=
(
Element
)
childElementObject
;
Element
childElement
=
(
Element
)
childElementObject
;
if
(
StringUtils
.
equals
(
childElement
.
getName
(),
ConfigurationConstant
.
REGISTER_ELEMENT_NAME
))
{
if
(
StringUtils
.
equals
(
childElement
.
getName
(),
ConfigurationConstant
.
REGISTER_ELEMENT_NAME
))
{
registerEntity
=
new
RegisterEntity
();
parseRegister
(
childElement
,
registerEntity
);
parseRegister
(
childElement
,
registerEntity
);
}
else
if
(
StringUtils
.
equals
(
childElement
.
getName
(),
ConfigurationConstant
.
DISCOVERY_ELEMENT_NAME
))
{
}
else
if
(
StringUtils
.
equals
(
childElement
.
getName
(),
ConfigurationConstant
.
DISCOVERY_ELEMENT_NAME
))
{
discoveryEntity
=
new
DiscoveryEntity
();
parseDiscovery
(
childElement
,
discoveryEntity
);
parseDiscovery
(
childElement
,
discoveryEntity
);
}
}
}
}
...
...
discovery-plugin-core/src/main/java/com/nepxion/discovery/plugin/core/strategy/DiscoveryStrategy.java
View file @
0cacd820
...
@@ -42,21 +42,42 @@ public class DiscoveryStrategy {
...
@@ -42,21 +42,42 @@ public class DiscoveryStrategy {
try
{
try
{
reentrantReadWriteLock
.
readLock
().
lock
();
reentrantReadWriteLock
.
readLock
().
lock
();
applyIpAddressFilter
(
providerServiceId
,
instances
);
applyVersionFilter
(
consumerServiceId
,
consumerServiceVersion
,
providerServiceId
,
instances
);
applyVersionFilter
(
consumerServiceId
,
consumerServiceVersion
,
providerServiceId
,
instances
);
}
finally
{
}
finally
{
reentrantReadWriteLock
.
readLock
().
unlock
();
reentrantReadWriteLock
.
readLock
().
unlock
();
}
}
}
}
private
void
applyIpAddressFilter
(
String
providerServiceId
,
List
<
ServiceInstance
>
instances
)
{
String
ipAddress
=
pluginCache
.
get
(
providerServiceId
);
if
(
StringUtils
.
isNotEmpty
(
ipAddress
))
{
String
[]
filterArray
=
StringUtils
.
split
(
ipAddress
,
PluginConstant
.
SEPARATE
);
List
<
String
>
filterList
=
Arrays
.
asList
(
filterArray
);
Iterator
<
ServiceInstance
>
iterator
=
instances
.
iterator
();
while
(
iterator
.
hasNext
())
{
ServiceInstance
serviceInstance
=
iterator
.
next
();
String
host
=
serviceInstance
.
getHost
();
if
(
filterList
.
contains
(
host
))
{
iterator
.
remove
();
}
}
}
}
private
void
applyVersionFilter
(
String
consumerServiceId
,
String
consumerServiceVersion
,
String
providerServiceId
,
List
<
ServiceInstance
>
instances
)
{
private
void
applyVersionFilter
(
String
consumerServiceId
,
String
consumerServiceVersion
,
String
providerServiceId
,
List
<
ServiceInstance
>
instances
)
{
DiscoveryEntity
discoveryEntity
=
pluginEntity
.
getDiscoveryEntity
();
DiscoveryEntity
discoveryEntity
=
pluginEntity
.
getDiscoveryEntity
();
if
(
discoveryEntity
==
null
)
{
return
;
}
Map
<
String
,
List
<
DiscoveryServiceEntity
>>
serviceEntityMap
=
discoveryEntity
.
getServiceEntityMap
();
Map
<
String
,
List
<
DiscoveryServiceEntity
>>
serviceEntityMap
=
discoveryEntity
.
getServiceEntityMap
();
// 未找到相应的版本定义或者未定义
if
(
MapUtils
.
isEmpty
(
serviceEntityMap
))
{
if
(
MapUtils
.
isEmpty
(
serviceEntityMap
))
{
return
;
return
;
}
}
List
<
DiscoveryServiceEntity
>
serviceEntityList
=
serviceEntityMap
.
get
(
consumerServiceId
);
List
<
DiscoveryServiceEntity
>
serviceEntityList
=
serviceEntityMap
.
get
(
consumerServiceId
);
// 未找到相应的版本定义或者未定义
if
(
CollectionUtils
.
isEmpty
(
serviceEntityList
))
{
if
(
CollectionUtils
.
isEmpty
(
serviceEntityList
))
{
return
;
return
;
}
}
...
...
discovery-plugin-core/src/main/java/com/nepxion/discovery/plugin/core/strategy/RegisterStrategy.java
View file @
0cacd820
...
@@ -18,9 +18,9 @@ import org.slf4j.LoggerFactory;
...
@@ -18,9 +18,9 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
com.nepxion.discovery.plugin.core.constant.PluginConstant
;
import
com.nepxion.discovery.plugin.core.constant.PluginConstant
;
import
com.nepxion.discovery.plugin.core.entity.RegisterFilterType
;
import
com.nepxion.discovery.plugin.core.entity.PluginEntity
;
import
com.nepxion.discovery.plugin.core.entity.PluginEntity
;
import
com.nepxion.discovery.plugin.core.entity.RegisterEntity
;
import
com.nepxion.discovery.plugin.core.entity.RegisterEntity
;
import
com.nepxion.discovery.plugin.core.entity.RegisterFilterType
;
import
com.nepxion.discovery.plugin.core.exception.PluginException
;
import
com.nepxion.discovery.plugin.core.exception.PluginException
;
public
class
RegisterStrategy
{
public
class
RegisterStrategy
{
...
@@ -44,6 +44,10 @@ public class RegisterStrategy {
...
@@ -44,6 +44,10 @@ public class RegisterStrategy {
private
void
applyIpAddressFilter
(
String
serviceId
,
String
ipAddress
)
{
private
void
applyIpAddressFilter
(
String
serviceId
,
String
ipAddress
)
{
RegisterEntity
registerEntity
=
pluginEntity
.
getRegisterEntity
();
RegisterEntity
registerEntity
=
pluginEntity
.
getRegisterEntity
();
if
(
registerEntity
==
null
)
{
return
;
}
RegisterFilterType
filterType
=
registerEntity
.
getFilterType
();
RegisterFilterType
filterType
=
registerEntity
.
getFilterType
();
String
globalFilterValue
=
registerEntity
.
getFilterValue
();
String
globalFilterValue
=
registerEntity
.
getFilterValue
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment