Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cash-loan-flow-boss
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
胡慧
cash-loan-flow-boss
Commits
3eb842e1
Commit
3eb842e1
authored
Dec 13, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mq配置(one click 只在测试环境生效 mq配置同步后 会自动创建)
parent
d26bdfbb
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
159 additions
and
0 deletions
+159
-0
pom.xml
pom.xml
+9
-0
OneClickMqConfig.java
...lowboss/core/configuration/rabbitmq/OneClickMqConfig.java
+126
-0
QueueService.java
...p/cashloanflowboss/spi/rabbitmq/service/QueueService.java
+10
-0
QueueServiceImpl.java
...shloanflowboss/spi/rabbitmq/service/QueueServiceImpl.java
+14
-0
No files found.
pom.xml
View file @
3eb842e1
...
...
@@ -43,6 +43,10 @@
<groupId>
org.springframework.session
</groupId>
<artifactId>
spring-session-data-redis
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.amqp
</groupId>
<artifactId>
spring-rabbit
</artifactId>
</dependency>
<dependency>
<groupId>
org.hibernate
</groupId>
<artifactId>
hibernate-validator
</artifactId>
...
...
@@ -101,6 +105,11 @@
</exclusions>
</dependency>
<dependency>
<groupId>
cn.quantgroup
</groupId>
<artifactId>
brave-spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
commons-collections
</groupId>
<artifactId>
commons-collections
</artifactId>
...
...
src/main/java/cn/quantgroup/cashloanflowboss/core/configuration/rabbitmq/OneClickMqConfig.java
0 → 100644
View file @
3eb842e1
package
cn
.
quantgroup
.
cashloanflowboss
.
core
.
configuration
.
rabbitmq
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.spi.rabbitmq.service.QueueService
;
import
cn.quantgroup.tech.brave.service.ITechRabbitBuilder
;
import
org.springframework.amqp.core.*
;
import
org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory
;
import
org.springframework.amqp.rabbit.config.SimpleRabbitListenerEndpoint
;
import
org.springframework.amqp.rabbit.connection.CachingConnectionFactory
;
import
org.springframework.amqp.rabbit.connection.ConnectionFactory
;
import
org.springframework.amqp.rabbit.core.RabbitAdmin
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
;
import
org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.stereotype.Component
;
@Component
public
class
OneClickMqConfig
{
@Value
(
"${xyqb.loan.rabbitmq.connection.host}"
)
private
String
host
;
@Value
(
"${xyqb.loan.rabbitmq.connection.port}"
)
private
int
port
;
@Value
(
"${xyqb.loan.rabbitmq.connection.virtual-host}"
)
private
String
vhost
;
@Value
(
"${xyqb.loan.rabbitmq.connection.user}"
)
private
String
username
;
@Value
(
"${xyqb.loan.rabbitmq.connection.password}"
)
private
String
password
;
@Value
(
"${xyqb.loan.rabbitmq.exchange}"
)
private
String
orderExchange
;
@Value
(
"${quota_notice.one.click:one_click_quota_notice}"
)
private
String
oneClickQuotaNotice
;
@Autowired
@Qualifier
(
"techRabbitBuilder"
)
private
ITechRabbitBuilder
techRabbitBuilder
;
@Bean
(
"oneClickConnectionFactory"
)
public
ConnectionFactory
connectionFactory
()
{
if
(
Application
.
isDebug
())
{
CachingConnectionFactory
connectionFactory
=
new
CachingConnectionFactory
(
host
,
port
);
connectionFactory
.
setCacheMode
(
CachingConnectionFactory
.
CacheMode
.
CHANNEL
);
connectionFactory
.
setChannelCacheSize
(
180
*
1000
);
//connectionFactory.setConnectionCacheSize(1024);
connectionFactory
.
setUsername
(
username
);
connectionFactory
.
setPassword
(
password
);
connectionFactory
.
setVirtualHost
(
vhost
);
connectionFactory
.
setPublisherReturns
(
false
);
connectionFactory
.
setPublisherConfirms
(
false
);
return
connectionFactory
;
}
return
null
;
}
@Bean
(
name
=
"loanOrderAmqpAdmin"
)
public
AmqpAdmin
amqpAdmin
(
ConnectionFactory
connectionFactory
)
{
return
new
RabbitAdmin
(
connectionFactory
);
}
@Bean
(
name
=
"loanOrderExchange"
)
public
FanoutExchange
fanoutExchange
()
{
return
new
FanoutExchange
(
orderExchange
);
}
@Bean
(
name
=
"oneClickQuotaNotice"
)
public
Queue
loanOrderQueue
()
{
return
new
Queue
(
oneClickQuotaNotice
);
}
@Bean
(
name
=
"loanOrderBinding"
)
public
Binding
bindingWaitGen
(
@Qualifier
(
"loanOrderAmqpAdmin"
)
AmqpAdmin
amqpAdmin
,
@Qualifier
(
"oneClickQuotaNotice"
)
Queue
oneClickQuotaNotice
,
@Qualifier
(
"loanOrderExchange"
)
FanoutExchange
fanoutExchange
)
{
Binding
binding
=
BindingBuilder
.
bind
(
oneClickQuotaNotice
).
to
(
fanoutExchange
);
amqpAdmin
.
declareBinding
(
binding
);
return
binding
;
}
@Bean
(
name
=
"loanOrderRabbitTemplate"
)
public
RabbitTemplate
contractTemplate
(
@Qualifier
(
"oneClickConnectionFactory"
)
ConnectionFactory
connectionFactory
)
{
if
(
Application
.
isDebug
())
{
RabbitTemplate
template
=
techRabbitBuilder
.
createRabbitTemplate
(
connectionFactory
);
template
.
setExchange
(
orderExchange
);
return
template
;
}
return
null
;
}
/**
* 订单状态消息处理监听
* @param queueService
* @param cachingConnectionFactory
* @param oneClickQuotaNotice
* @return
*/
@Bean
(
"oneClickLoanXyqbSimpleMessageListenerContainer"
)
public
SimpleMessageListenerContainer
loanXyqbSimpleMessageListenerContainer
(
@Autowired
QueueService
queueService
,
@Qualifier
(
"oneClickConnectionFactory"
)
CachingConnectionFactory
cachingConnectionFactory
,
@Qualifier
(
"oneClickQuotaNotice"
)
Queue
oneClickQuotaNotice
)
{
SimpleRabbitListenerContainerFactory
simpleRabbitListenerContainerFactory
=
techRabbitBuilder
.
createSimpleRabbitListenerContainerFactory
(
cachingConnectionFactory
);
SimpleRabbitListenerEndpoint
simpleRabbitListenerEndpoint
=
new
SimpleRabbitListenerEndpoint
();
simpleRabbitListenerEndpoint
.
setQueues
(
oneClickQuotaNotice
);
simpleRabbitListenerEndpoint
.
setMessageListener
(
new
MessageListenerAdapter
(
queueService
,
"oneClickHandleMessage"
));
SimpleMessageListenerContainer
container
=
simpleRabbitListenerContainerFactory
.
createListenerContainer
(
simpleRabbitListenerEndpoint
);
container
.
setAcknowledgeMode
(
AcknowledgeMode
.
AUTO
);
container
.
setConcurrentConsumers
(
10
);
container
.
start
();
return
container
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/rabbitmq/service/QueueService.java
0 → 100644
View file @
3eb842e1
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
rabbitmq
.
service
;
public
interface
QueueService
{
/**
* 一键生成数据接收mq消息
* @param message
*/
void
oneClickHandleMessage
(
String
message
);
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/rabbitmq/service/QueueServiceImpl.java
0 → 100644
View file @
3eb842e1
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
rabbitmq
.
service
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
QueueServiceImpl
implements
QueueService
{
@Override
public
void
oneClickHandleMessage
(
String
message
)
{
log
.
info
(
"[oneClickHandleMessage]message="
+
message
);
}
}
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