Toggle navigation
Toggle navigation
This project
Loading...
Sign in
yangyoupeng
/
microservice
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
yangyoupeng
2016-10-27 17:31:16 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
38c8a60e4a71ef7966346de0206de6bef43c674b
38c8a60e
1 parent
2e8c0607
添加ContexttransFilter,将threadContext里面的内容作为RPC的attachment
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
45 additions
and
1 deletions
src/microservice-parent/microservice-framework-core/src/main/java/com/zhaoonline/microservice/framework/support/ContexttransFilter.java
src/microservice-parent/microservice-framework-core/src/main/java/com/zhaoonline/microservice/framework/support/ThreadContext.java
src/microservice-parent/microservice-framework-core/src/main/resources/META-INF/dubbo/com.alibaba.dubbo.rpc.Filter
src/microservice-parent/microservice-framework-core/src/main/java/com/zhaoonline/microservice/framework/support/ContexttransFilter.java
0 → 100644
View file @
38c8a60
package
com
.
zhaoonline
.
microservice
.
framework
.
support
;
import
java.util.Iterator
;
import
java.util.Map.Entry
;
import
com.alibaba.dubbo.common.Constants
;
import
com.alibaba.dubbo.common.extension.Activate
;
import
com.alibaba.dubbo.rpc.Filter
;
import
com.alibaba.dubbo.rpc.Invocation
;
import
com.alibaba.dubbo.rpc.Invoker
;
import
com.alibaba.dubbo.rpc.Result
;
import
com.alibaba.dubbo.rpc.RpcException
;
import
com.alibaba.dubbo.rpc.RpcInvocation
;
/**
* class name:ContexttransFilter <BR>
* class description:将ThreadContext中所有key-value作为rpc的attachment传递给dubbo provider <BR>
* Remark: <BR>
* @version 1.00 2016年10月27日
* @author zhaoonline)yangyoupeng
*/
@Activate
(
group
=
{
Constants
.
CONSUMER
})
public
class
ContexttransFilter
implements
Filter
{
@Override
public
Result
invoke
(
Invoker
<?>
invoker
,
Invocation
invocation
)
throws
RpcException
{
ThreadContext
threadContext
=
ThreadContext
.
getContext
();
RpcInvocation
invocation1
=
(
RpcInvocation
)
invocation
;
setAttachment
(
threadContext
,
invocation1
);
//设置需要向下游传递的参数
Result
result
=
invoker
.
invoke
(
invocation
);
return
result
;
}
private
void
setAttachment
(
ThreadContext
threadContext
,
RpcInvocation
invocation
)
{
Iterator
<
Entry
<
String
,
Object
>>
contextIter
=
threadContext
.
entrySet
().
iterator
();
while
(
contextIter
.
hasNext
()){
Entry
<
String
,
Object
>
entry
=
contextIter
.
next
();
invocation
.
setAttachment
(
entry
.
getKey
(),
String
.
valueOf
(
entry
.
getValue
())
);
}
invocation
.
setAttachment
(
ThreadContext
.
KEY_REQUESTID
,
threadContext
.
getRequestID
());
}
}
src/microservice-parent/microservice-framework-core/src/main/java/com/zhaoonline/microservice/framework/support/ThreadContext.java
View file @
38c8a60
...
...
@@ -25,7 +25,7 @@ public class ThreadContext extends ConcurrentHashMap<String, Object>{
*/
private
static
final
long
serialVersionUID
=
-
7551338871443500983L
;
public
static
final
String
KEY_REQUESTID
=
"requestID"
;
public
static
final
ThreadLocal
<
ThreadContext
>
local
=
new
ThreadLocal
<
ThreadContext
>(){
@Override
...
...
src/microservice-parent/microservice-framework-core/src/main/resources/META-INF/dubbo/com.alibaba.dubbo.rpc.Filter
0 → 100644
View file @
38c8a60
contexttrans=com.zhaoonline.microservice.framework.support.ContexttransFilter
Please
register
or
login
to post a comment