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
b048f155
Commit
b048f155
authored
Aug 11, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改测试用例
parent
094a34d1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
27 deletions
+31
-27
discovery-springcloud-example-gateway/src/main/java/com/nepxion/discovery/plugin/example/gateway/extension/MyDiscoveryEnabledAdapter.java
+1
-0
discovery-springcloud-example-service/src/main/java/com/nepxion/discovery/plugin/example/service/extension/MyDiscoveryEnabledAdapter.java
+29
-27
discovery-springcloud-example-zuul/src/main/java/com/nepxion/discovery/plugin/example/zuul/extension/MyDiscoveryEnabledAdapter.java
+1
-0
No files found.
discovery-springcloud-example-gateway/src/main/java/com/nepxion/discovery/plugin/example/gateway/extension/MyDiscoveryEnabledAdapter.java
View file @
b048f155
...
@@ -22,6 +22,7 @@ import com.netflix.loadbalancer.Server;
...
@@ -22,6 +22,7 @@ import com.netflix.loadbalancer.Server;
public
class
MyDiscoveryEnabledAdapter
implements
DiscoveryEnabledAdapter
{
public
class
MyDiscoveryEnabledAdapter
implements
DiscoveryEnabledAdapter
{
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
MyDiscoveryEnabledAdapter
.
class
);
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
MyDiscoveryEnabledAdapter
.
class
);
// 根据外部传来的Header参数(例如Token),选取执行调用请求的服务实例
@Override
@Override
public
boolean
apply
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
public
boolean
apply
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
GatewayStrategyContext
context
=
GatewayStrategyContext
.
getCurrentContext
();
GatewayStrategyContext
context
=
GatewayStrategyContext
.
getCurrentContext
();
...
...
discovery-springcloud-example-service/src/main/java/com/nepxion/discovery/plugin/example/service/extension/MyDiscoveryEnabledAdapter.java
View file @
b048f155
...
@@ -28,13 +28,39 @@ public class MyDiscoveryEnabledAdapter implements DiscoveryEnabledAdapter {
...
@@ -28,13 +28,39 @@ public class MyDiscoveryEnabledAdapter implements DiscoveryEnabledAdapter {
@Override
@Override
public
boolean
apply
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
public
boolean
apply
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
if
(
applyFrom
Methd
(
server
,
metadata
))
{
if
(
applyFrom
Header
(
server
,
metadata
))
{
return
applyFrom
Header
(
server
,
metadata
);
return
applyFrom
Methd
(
server
,
metadata
);
}
else
{
}
else
{
return
false
;
return
false
;
}
}
}
}
// 方式1,根据外部传来的Header参数(例如Token),选取执行调用请求的服务实例
private
boolean
applyFromHeader
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
if
(
attributes
==
null
)
{
return
true
;
}
String
token
=
attributes
.
getRequest
().
getHeader
(
"token"
);
// String value = attributes.getRequest().getParameter("value");
String
serviceId
=
server
.
getMetaInfo
().
getAppName
().
toLowerCase
();
LOG
.
info
(
"Serivice端负载均衡用户定制触发:serviceId={}, host={}, metadata={}, attributes={}"
,
serviceId
,
server
.
toString
(),
metadata
,
attributes
);
String
filterServiceId
=
"discovery-springcloud-example-c"
;
String
filterToken
=
"123"
;
if
(
StringUtils
.
equals
(
serviceId
,
filterServiceId
)
&&
StringUtils
.
isNotEmpty
(
token
)
&&
token
.
contains
(
filterToken
))
{
LOG
.
info
(
"过滤条件:当serviceId={} && Token含有'{}'的时候,不能被Ribbon负载均衡到"
,
filterToken
);
return
false
;
}
return
true
;
}
// 方式2,根据下游服务传来的方法参数(例如接口名、方法名、参数名或参数值等),选取执行调用请求的服务实例
@SuppressWarnings
(
"unchecked"
)
@SuppressWarnings
(
"unchecked"
)
private
boolean
applyFromMethd
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
private
boolean
applyFromMethd
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
ServiceStrategyContext
context
=
ServiceStrategyContext
.
getCurrentContext
();
ServiceStrategyContext
context
=
ServiceStrategyContext
.
getCurrentContext
();
...
@@ -45,7 +71,7 @@ public class MyDiscoveryEnabledAdapter implements DiscoveryEnabledAdapter {
...
@@ -45,7 +71,7 @@ public class MyDiscoveryEnabledAdapter implements DiscoveryEnabledAdapter {
LOG
.
info
(
"Serivice端负载均衡用户定制触发:serviceId={}, host={}, metadata={}, context={}"
,
serviceId
,
server
.
toString
(),
metadata
,
context
);
LOG
.
info
(
"Serivice端负载均衡用户定制触发:serviceId={}, host={}, metadata={}, context={}"
,
serviceId
,
server
.
toString
(),
metadata
,
context
);
String
filterServiceId
=
"discovery-springcloud-example-
c
"
;
String
filterServiceId
=
"discovery-springcloud-example-
b
"
;
String
filterVersion
=
"1.0"
;
String
filterVersion
=
"1.0"
;
String
filterBusinessValue
=
"abc"
;
String
filterBusinessValue
=
"abc"
;
if
(
StringUtils
.
equals
(
serviceId
,
filterServiceId
)
&&
StringUtils
.
equals
(
version
,
filterVersion
))
{
if
(
StringUtils
.
equals
(
serviceId
,
filterServiceId
)
&&
StringUtils
.
equals
(
version
,
filterVersion
))
{
...
@@ -62,27 +88,4 @@ public class MyDiscoveryEnabledAdapter implements DiscoveryEnabledAdapter {
...
@@ -62,27 +88,4 @@ public class MyDiscoveryEnabledAdapter implements DiscoveryEnabledAdapter {
return
true
;
return
true
;
}
}
private
boolean
applyFromHeader
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
if
(
attributes
==
null
)
{
return
true
;
}
String
token
=
attributes
.
getRequest
().
getHeader
(
"token"
);
// String value = attributes.getRequest().getParameter("value");
String
serviceId
=
server
.
getMetaInfo
().
getAppName
().
toLowerCase
();
LOG
.
info
(
"Serivice端负载均衡用户定制触发:serviceId={}, host={}, metadata={}, attributes={}"
,
serviceId
,
server
.
toString
(),
metadata
,
attributes
);
String
filterToken
=
"123"
;
if
(
StringUtils
.
isNotEmpty
(
token
)
&&
token
.
contains
(
filterToken
))
{
LOG
.
info
(
"过滤条件:当Token含有'{}'的时候,不能被Ribbon负载均衡到"
,
filterToken
);
return
false
;
}
return
true
;
}
}
}
\ No newline at end of file
discovery-springcloud-example-zuul/src/main/java/com/nepxion/discovery/plugin/example/zuul/extension/MyDiscoveryEnabledAdapter.java
View file @
b048f155
...
@@ -22,6 +22,7 @@ import com.netflix.zuul.context.RequestContext;
...
@@ -22,6 +22,7 @@ import com.netflix.zuul.context.RequestContext;
public
class
MyDiscoveryEnabledAdapter
implements
DiscoveryEnabledAdapter
{
public
class
MyDiscoveryEnabledAdapter
implements
DiscoveryEnabledAdapter
{
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
MyDiscoveryEnabledAdapter
.
class
);
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
MyDiscoveryEnabledAdapter
.
class
);
// 根据外部传来的Header参数(例如Token),选取执行调用请求的服务实例
@Override
@Override
public
boolean
apply
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
public
boolean
apply
(
Server
server
,
Map
<
String
,
String
>
metadata
)
{
RequestContext
context
=
RequestContext
.
getCurrentContext
();
RequestContext
context
=
RequestContext
.
getCurrentContext
();
...
...
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