Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jeecg-boot
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
chenjunxiong
jeecg-boot
Commits
4b830b37
Commit
4b830b37
authored
Sep 14, 2021
by
zhangdaiscott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
消息队列中报微服务异常 issues/I4977W
parent
537cc056
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
93 additions
and
6 deletions
+93
-6
jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/TransmitUserTokenFilter.java
+44
-0
jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/UserTokenContext.java
+22
-0
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/client/RabbitMqClient.java
+7
-1
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/config/RabbitMqConfig.java
+11
-5
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/BaseRabbiMqHandler.java
+9
-0
No files found.
jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/TransmitUserTokenFilter.java
0 → 100644
View file @
4b830b37
package
org
.
jeecg
.
common
.
config
.
mqtoken
;
import
javax.servlet.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
/**
* 存放token到上下文供队列调用feign使用
* @author zyf
*/
public
class
TransmitUserTokenFilter
implements
Filter
{
private
static
String
X_ACCESS_TOKEN
=
"X-Access-Token"
;
public
TransmitUserTokenFilter
()
{
}
@Override
public
void
init
(
FilterConfig
filterConfig
)
throws
ServletException
{
}
@Override
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
this
.
initUserInfo
((
HttpServletRequest
)
request
);
chain
.
doFilter
(
request
,
response
);
}
private
void
initUserInfo
(
HttpServletRequest
request
)
{
String
token
=
request
.
getHeader
(
X_ACCESS_TOKEN
);
if
(
token
!=
null
)
{
try
{
//将token放入上下文中
UserTokenContext
.
setToken
(
token
);
}
catch
(
Exception
e
)
{
}
}
}
@Override
public
void
destroy
()
{
}
}
\ No newline at end of file
jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/UserTokenContext.java
0 → 100644
View file @
4b830b37
package
org
.
jeecg
.
common
.
config
.
mqtoken
;
/**
* 用户token上下文
* @author zyf
*/
public
class
UserTokenContext
{
private
static
ThreadLocal
<
String
>
userToken
=
new
ThreadLocal
<
String
>();
public
UserTokenContext
()
{
}
public
static
String
getToken
(){
return
userToken
.
get
();
}
public
static
void
setToken
(
String
token
){
userToken
.
set
(
token
);
}
}
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/client/RabbitMqClient.java
View file @
4b830b37
...
@@ -28,6 +28,7 @@ import java.text.SimpleDateFormat;
...
@@ -28,6 +28,7 @@ import java.text.SimpleDateFormat;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Properties
;
/**
/**
* 消息队列客户端
* 消息队列客户端
...
@@ -91,11 +92,16 @@ public class RabbitMqClient {
...
@@ -91,11 +92,16 @@ public class RabbitMqClient {
rabbitAdmin
.
declareExchange
(
directExchange
);
rabbitAdmin
.
declareExchange
(
directExchange
);
if
(
ObjectUtil
.
isNotEmpty
(
queues
))
{
if
(
ObjectUtil
.
isNotEmpty
(
queues
))
{
for
(
String
queueName
:
queues
)
{
for
(
String
queueName
:
queues
)
{
Properties
result
=
rabbitAdmin
.
getQueueProperties
(
queueName
);
if
(
ObjectUtil
.
isEmpty
(
result
))
{
Queue
queue
=
new
Queue
(
queueName
);
Queue
queue
=
new
Queue
(
queueName
);
addQueue
(
queue
);
addQueue
(
queue
);
Binding
binding
=
BindingBuilder
.
bind
(
queue
).
to
(
directExchange
).
with
(
queueName
);
Binding
binding
=
BindingBuilder
.
bind
(
queue
).
to
(
directExchange
).
with
(
queueName
);
rabbitAdmin
.
declareBinding
(
binding
);
rabbitAdmin
.
declareBinding
(
binding
);
log
.
info
(
"队列创建成功:"
+
queueName
);
log
.
info
(
"创建队列:"
+
queueName
);
}
else
{
log
.
info
(
"已有队列:"
+
queueName
);
}
}
}
}
}
}
}
...
...
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/config/RabbitMqConfig.java
View file @
4b830b37
package
org
.
jeecg
.
boot
.
starter
.
rabbitmq
.
config
;
package
org
.
jeecg
.
boot
.
starter
.
rabbitmq
.
config
;
import
java.util.UUID
;
import
org.jeecg.boot.starter.rabbitmq.event.JeecgRemoteApplicationEvent
;
import
org.jeecg.boot.starter.rabbitmq.event.JeecgRemoteApplicationEvent
;
import
org.jeecg.
boot.starter.rabbitmq.exchange.DelayExchangeBuild
er
;
import
org.jeecg.
common.config.mqtoken.TransmitUserTokenFilt
er
;
import
org.springframework.amqp.core.AcknowledgeMode
;
import
org.springframework.amqp.core.AcknowledgeMode
;
import
org.springframework.amqp.core.CustomExchange
;
import
org.springframework.amqp.rabbit.connection.ConnectionFactory
;
import
org.springframework.amqp.rabbit.connection.ConnectionFactory
;
import
org.springframework.amqp.rabbit.core.RabbitAdmin
;
import
org.springframework.amqp.rabbit.core.RabbitAdmin
;
import
org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
;
import
org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
;
...
@@ -13,8 +14,6 @@ import org.springframework.cloud.bus.jackson.RemoteApplicationEventScan;
...
@@ -13,8 +14,6 @@ import org.springframework.cloud.bus.jackson.RemoteApplicationEventScan;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.UUID
;
/**
/**
* 消息队列配置类
* 消息队列配置类
*
*
...
@@ -33,7 +32,14 @@ public class RabbitMqConfig {
...
@@ -33,7 +32,14 @@ public class RabbitMqConfig {
return
rabbitAdmin
;
return
rabbitAdmin
;
}
}
/**
* 注入获取token过滤器
* @return
*/
@Bean
public
TransmitUserTokenFilter
transmitUserInfoFromHttpHeader
(){
return
new
TransmitUserTokenFilter
();
}
@Bean
@Bean
public
SimpleMessageListenerContainer
messageListenerContainer
(
ConnectionFactory
connectionFactory
)
{
public
SimpleMessageListenerContainer
messageListenerContainer
(
ConnectionFactory
connectionFactory
)
{
...
...
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/BaseRabbiMqHandler.java
View file @
4b830b37
...
@@ -2,15 +2,24 @@ package org.jeecg.boot.starter.rabbitmq.core;
...
@@ -2,15 +2,24 @@ package org.jeecg.boot.starter.rabbitmq.core;
import
com.rabbitmq.client.Channel
;
import
com.rabbitmq.client.Channel
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.jeecg.boot.starter.rabbitmq.listenter.MqListener
;
import
org.jeecg.boot.starter.rabbitmq.listenter.MqListener
;
import
org.jeecg.common.config.mqtoken.UserTokenContext
;
import
java.io.IOException
;
import
java.io.IOException
;
/**
*
* @author zyf
*/
@Slf4j
@Slf4j
public
class
BaseRabbiMqHandler
<
T
>
{
public
class
BaseRabbiMqHandler
<
T
>
{
private
String
token
=
UserTokenContext
.
getToken
();
public
void
onMessage
(
T
t
,
Long
deliveryTag
,
Channel
channel
,
MqListener
mqListener
)
{
public
void
onMessage
(
T
t
,
Long
deliveryTag
,
Channel
channel
,
MqListener
mqListener
)
{
try
{
try
{
UserTokenContext
.
setToken
(
token
);
mqListener
.
handler
(
t
,
channel
);
mqListener
.
handler
(
t
,
channel
);
channel
.
basicAck
(
deliveryTag
,
false
);
channel
.
basicAck
(
deliveryTag
,
false
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
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