spring amqp股票交易(一)
来源:互联网 发布:小志传奇翅膀进阶数据 编辑:程序博客网 时间:2024/04/28 18:21
参考资料:http://docs.spring.io/spring-amqp/docs/1.4.0.RC1/reference/html/sample-apps.html#d4e1655 的5.3 Stock Trading
Spring AMQP官方例子Stock Trading使用到了Topic Exchange.所以建议先了解Topic Exchange.RabbitMQ实现了AMQP 0.9.1规范(下载链接:http://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf).其中2.1.2 Message Flow图展示了message的流向,从图中看出Exchange扮演代理者的角色.再了解3.1.3.3 The Topic Exchange Type,Topic Exchange类型是如何工作的,还提到路由表达式的*和#的意义.
第一点:服务端(此处指的是rabbitmq客户端Publisher)推送投票报价信息到一个Topic Exchange,客户端(可以为是rabbitmq客户端Consumer)通过使用路由表达式绑定队列来订阅报价信息.
第二点:还演示了由客户端先初始化,服务端处理的请求-回复"股票交易"的交互.
由于篇幅关系,会在本文最后贴上上传的源码地址.(会将https://github.com/spring-projects/spring-amqp-samples部分用不到的代码先移除,以便查看理解).
此文先实现第一点
一.配置服务端和客户端连接RabbitMq服务器的基类AbstractStockAppRabbitConfiguration.此类定义服务端和客户端公共使用的东东.
其中定义了一个TopicExchange和这个TopicExchange使用的名字app.stock.marketdata,RabbitTemplate使用JsonMessageConverter而不是默认的SimpleMessageConverter.还使用到了模板方法设计模式.其它的与上一篇文章没有多大区别.
二.服务端(用来推送消息)
1.Rabbit配置:通过这种设计模式设置RabbitTemplate来指定Exchange的名字.
2.通过RabbitMarketDataGateway的sendMarketData方法实现.
a.Quote(股票报信息)就是Message的载体,generateFakeQuote方法:随机获得一支股票和随机生成一个价格构造Quote对象.
b.使用股票的StockExchange和Ticker来构造routingKey进行推送消息.此routingKey是以app.stock.quotes.开头的.订阅者(客户端)是根所此key来获取匹配信息的.
3.这个方法是通过定时任务模拟每隔5s进行触发.(其实这时可以启动spring容器进行推送消息了,但没有订阅者)
三.客户端(订阅并接收信息)
1.Rabbit配置:rabbitTemplate可不修改.指定了一个匿名队列,并将此队列使用指定的routingKey进行绑定,也就是订阅.还配置SimpleMessageListenerContainer来对消息如何进行处理.这里的处理就交给了ClientHandler.handleMessage方法.
2.ClientHandler.handleMessage方法只是使用log4j记录一下股票代码与价格,其它我都去掉了(包括jgoodies的swing界面显示).
四.模拟测试.
1.启动test里面的Server.main和Client方法来启动,两者启动的顺序不限.
由于收到"很遗憾,您上传的资源spring amqp股票交易 一因资源违规没有通过审核,如有疑问,请联系webmaster@csdn.net," 可能由于某人举报,但里面的代码整理过的,不应是违规,让那些小人先乐下吧,既然如此,就不上传了.
Spring AMQP官方例子Stock Trading使用到了Topic Exchange.所以建议先了解Topic Exchange.RabbitMQ实现了AMQP 0.9.1规范(下载链接:http://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf).其中2.1.2 Message Flow图展示了message的流向,从图中看出Exchange扮演代理者的角色.再了解3.1.3.3 The Topic Exchange Type,Topic Exchange类型是如何工作的,还提到路由表达式的*和#的意义.
第一点:服务端(此处指的是rabbitmq客户端Publisher)推送投票报价信息到一个Topic Exchange,客户端(可以为是rabbitmq客户端Consumer)通过使用路由表达式绑定队列来订阅报价信息.
第二点:还演示了由客户端先初始化,服务端处理的请求-回复"股票交易"的交互.
由于篇幅关系,会在本文最后贴上上传的源码地址.(会将https://github.com/spring-projects/spring-amqp-samples部分用不到的代码先移除,以便查看理解).
此文先实现第一点
一.配置服务端和客户端连接RabbitMq服务器的基类AbstractStockAppRabbitConfiguration.此类定义服务端和客户端公共使用的东东.
其中定义了一个TopicExchange和这个TopicExchange使用的名字app.stock.marketdata,RabbitTemplate使用JsonMessageConverter而不是默认的SimpleMessageConverter.还使用到了模板方法设计模式.其它的与上一篇文章没有多大区别.
二.服务端(用来推送消息)
1.Rabbit配置:通过这种设计模式设置RabbitTemplate来指定Exchange的名字.
2.通过RabbitMarketDataGateway的sendMarketData方法实现.
a.Quote(股票报信息)就是Message的载体,generateFakeQuote方法:随机获得一支股票和随机生成一个价格构造Quote对象.
b.使用股票的StockExchange和Ticker来构造routingKey进行推送消息.此routingKey是以app.stock.quotes.开头的.订阅者(客户端)是根所此key来获取匹配信息的.
3.这个方法是通过定时任务模拟每隔5s进行触发.(其实这时可以启动spring容器进行推送消息了,但没有订阅者)
三.客户端(订阅并接收信息)
1.Rabbit配置:rabbitTemplate可不修改.指定了一个匿名队列,并将此队列使用指定的routingKey进行绑定,也就是订阅.还配置SimpleMessageListenerContainer来对消息如何进行处理.这里的处理就交给了ClientHandler.handleMessage方法.
2.ClientHandler.handleMessage方法只是使用log4j记录一下股票代码与价格,其它我都去掉了(包括jgoodies的swing界面显示).
四.模拟测试.
1.启动test里面的Server.main和Client方法来启动,两者启动的顺序不限.
2.修改test下面的client.properties的stocks.quote.pattern为"app.stock.quotes.#",这样两种股票都可以订阅了,重新启动测试
源码:http://download.csdn.net/detail/xiejx618/8139945
由于收到"很遗憾,您上传的资源spring amqp股票交易 一因资源违规没有通过审核,如有疑问,请联系webmaster@csdn.net," 可能由于某人举报,但里面的代码整理过的,不应是违规,让那些小人先乐下吧,既然如此,就不上传了.
0 0
- spring amqp股票交易(一)
- spring amqp股票交易(二)
- spring amqp股票交易(三)
- spring amqp股票交易(四)
- spring amqp股票交易(五)
- spring amqp股票交易应用DeferredResult
- Spring AMQP
- Spring AMQP-快速入门
- Spring AMQP抽象层
- RabbitMQ > Spring AMQP
- RabbitMQ Spring AMQP
- spring amqp rabbitmq
- AMQP协议一
- 股票交易
- 【Spring系列】Spring AMQP初探
- Spring Boot 整合 Spring AMQP
- Spring-AMQP连接和资源管理
- Spring amqp rabbmit入门详解
- 创业之前 ——Paul Graham 最新博文
- 来了大学,学计算机,有点迷惘
- 大数据的资源
- RuntimeException
- 常见的几种RuntimeException
- spring amqp股票交易(一)
- hdu4641 K-string,后缀自动机,并查集
- android 屏幕适配--------解决方案
- hdu 2795
- Java反射机制功能
- python jieba实现关键词提取
- CodeJock
- 爱和不爱。谁知道。女友新欢
- 单身的程序猿伤不起,在神棍节感慨下