当前位置: 首页 > news >正文

腾讯云网站建设教程视觉营销网站

腾讯云网站建设教程,视觉营销网站,小说网站wordpress,如东建设局网站文章目录 前言一、集成 JMS 与 IBMMQ1、pom 依赖2、yml 配置3、Properties 配置类4、Factory 连接工厂类5、配置连接认证6、配置缓存连接工厂7、配置事务管理器8、配置JMS模板9、消息发送与接收 总结 前言 SpringBoot 集成 IBMMQ,实现两个服务间的消息通信。 一、集…

文章目录

  • 前言
  • 一、集成 JMS 与 IBMMQ
    • 1、pom 依赖
    • 2、yml 配置
    • 3、Properties 配置类
    • 4、Factory 连接工厂类
    • 5、配置连接认证
    • 6、配置缓存连接工厂
    • 7、配置事务管理器
    • 8、配置JMS模板
    • 9、消息发送与接收
  • 总结


前言

SpringBoot 集成 IBMMQ,实现两个服务间的消息通信。


一、集成 JMS 与 IBMMQ

1、pom 依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-activemq</artifactId>
</dependency><dependency><groupId>javax.jms</groupId><artifactId>javax.jms-api</artifactId><version>2.0.1</version>
</dependency><dependency><groupId>com.ibm.mq</groupId><artifactId>com.ibm.mq.allclient</artifactId><version>9.1.1.0</version>
</dependency>

2、yml 配置

project:  mq:host: 192.168.1.180				# 服务地址port: 1416						# 服务端口queue-manager: queueManager		# 队列管理器username: username				# 用户名password: password				# 密码channel: channel     			# 连接通道receive-timeout: 2000     		# 连接超时

3、Properties 配置类

@Data
@Configuration
@ConfigurationProperties(prefix = "project.mq")
public class JmsConfig {/*** 服务地址*/private String host;/*** 服务端口*/private Integer port;/*** 队列管理器*/private String queueManager;/*** 用户名*/private String username;/*** 密码*/private String password;/*** 连接通道*/private String channel;/*** 连接超时*/private long receiveTimeout;
}

4、Factory 连接工厂类

@Bean
public MQQueueConnectionFactory mqQueueConnectionFactory() {MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();mqQueueConnectionFactory.setHostName(host);try {mqQueueConnectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);mqQueueConnectionFactory.setCCSID(1208);mqQueueConnectionFactory.setChannel(channel);mqQueueConnectionFactory.setPort(port);mqQueueConnectionFactory.setQueueManager(queueManager);} catch (Exception e) {e.printStackTrace();}return mqQueueConnectionFactory;
}

CCSID要与连接到的队列管理器一致,Windows下默认为1381,Linux下默认为1208。1208表示UTF-8字符集,建议把队列管理器的CCSID改为1208。

5、配置连接认证

@Bean
UserCredentialsConnectionFactoryAdapter userCredentialsConnectionFactoryAdapter(MQQueueConnectionFactory mqQueueConnectionFactory) {UserCredentialsConnectionFactoryAdapter userCredentialsConnectionFactoryAdapter = new UserCredentialsConnectionFactoryAdapter();userCredentialsConnectionFactoryAdapter.setUsername(username);userCredentialsConnectionFactoryAdapter.setPassword(password);userCredentialsConnectionFactoryAdapter.setTargetConnectionFactory(mqQueueConnectionFactory);return userCredentialsConnectionFactoryAdapter;
}

如不需要账户密码链接可以跳过此步,直接将mqQueueConnectionFactory注入下一步的缓存连接工厂。

6、配置缓存连接工厂

@Bean
@Primary
public CachingConnectionFactory cachingConnectionFactory(UserCredentialsConnectionFactoryAdapter userCredentialsConnectionFactoryAdapter) {CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();cachingConnectionFactory.setTargetConnectionFactory(userCredentialsConnectionFactoryAdapter);cachingConnectionFactory.setSessionCacheSize(500);cachingConnectionFactory.setReconnectOnException(true);return cachingConnectionFactory;
}

不配置该类则每次与MQ交互都需要重新创建连接,大幅降低速度。

7、配置事务管理器

@Bean
public PlatformTransactionManager jmsTransactionManager(CachingConnectionFactory cachingConnectionFactory) {JmsTransactionManager jmsTransactionManager = new JmsTransactionManager();jmsTransactionManager.setConnectionFactory(cachingConnectionFactory);return jmsTransactionManager;
}

8、配置JMS模板

@Bean
public JmsOperations jmsOperations(CachingConnectionFactory cachingConnectionFactory) {JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);jmsTemplate.setReceiveTimeout(receiveTimeout);return jmsTemplate;
}

JmsOperations为JmsTemplate的实现接口。

重要:不设置setReceiveTimeout时,当队列为空,从队列中取出消息的方法将会一直挂起直到队列内有消息

9、消息发送与接收

  1. 发送消息

可直接使用jmsOperations的convertAndSend(String, Object)方法,第一个参数为队列名称,第二个参数为需发送的对象。

重要:发送的对象需实现序列化接口

@Autowired
JmsOperations jmsOperations;public void send(User user){jmsOperations.convertAndSend("QUEUE.USER", user);
}
  1. 接收消息

可直接使用jmsOperations的receiveAndConvert(String)方法,第一个参数为队列名称。

@Autowired
JmsOperations jmsOperations;public void receive(User user){jmsOperations.receiveAndConvert("QUEUE.USER");
}
  1. 开启事务

如需使用事务,只需在方法添加注解@Transactional(value = “jmsTransactionManager”)即可。


总结

使用 SpringBoot JMS 集成 IBMMQ 十分的方便。

http://www.yayakq.cn/news/23783/

相关文章:

  • 江门网站如何制作wordpress免签插件
  • 科技公司网站开发淘客插件wordpress
  • 北京网站建设哪个好网站网站程序架设
  • 如何做产品众筹网站做网站要学c语言
  • 门户网站规划北京十大活动策划公司
  • 建设网站的网站首页自己做的网站如何实现下载文件
  • 电影点播网站开发费用做网站需要什么证明嘛
  • 凡科建站怎么删除网站建设网站定制开发特点
  • 软件网站是怎么做的陕西住房和城乡建设网站
  • html网站开发实战教程政务公开网站建设工作情况汇报
  • 网站换行代码百度网站推广咨询
  • 人工智能公司网站建设用dw做音乐网站系统的代码
  • 网站建设 实施计划百度seo优化价格
  • 蓝色网站欣赏个人做网站猛赚钱
  • 动易网站安装子目录中永康住房和城乡建设局网站
  • 如何使用好单库选品库做网站奇迹网站架设视频
  • 有没有专业做挂的网站花店网站建设毕设介绍
  • 游戏落地页网站建设怎么使用wordpress
  • 用html做网站搜索框公众号开发合同
  • html做网站需要服务器吗做H5哪个网站字体漂亮一些
  • 淘宝客推广怎样做网站书法网站模板下载
  • 中国风网站配色方案有哪些企业可以做招聘的网站有哪些
  • 做瞹瞹爱视频网站营销师资格证报名官网
  • 南开做网站网站开发都需要什么
  • 怎样为网站做外链页面设计是最后一步吗
  • 做家装的网站有哪些内容网站建设 鸿
  • vs做的网站如何使用app制作平台神医嫡女漫画
  • 免费空间 网站代码重构网站
  • 宜兴淘宝网站建设推荐手机网站建设
  • 男女做爰视频网站在线湖北省建设厅网站证件