coinex06 // 前端数据

阅读: 评论:0

coinex06 // 前端数据

coinex06 // 前端数据

目录

0. 逻辑树

1 exchange-service 发送消息

1.1 exchange-service 添加依赖

1.2. yml配置文件

1.3. Source

1.4. 配置类

1.5. 发送消息到撮合引擎  service -> impl -> EntrustOrderServiceImpl

1.6. recket-server:8080 

2. match-server 接收数据

2.1 数据转换

2.2 监听接收数据 -> 发送到ringbuffer


0. 逻辑树

1 RingBuffer , Disraptor 构建完成 // 构建笔记=1001.2014.3001.55022 exchange-service 前端操作数据 -> RingBuffer , Disraptor 方法-> match-service3 match-service 接收订单 -> 撮合引擎

1 exchange-service 发送消息

1.1 exchange-service 添加依赖

 <!--        spring-cloud-stream-rocketmq--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-stream-binder-rocketmq</artifactId></dependency>

1.2. yml配置文件

    stream: # 交易微服务里的数据发送rocketmq:binder:name-server: rocket-server:9876  #/RocketMQ Message hasn't been sentbinders:order_out: {derly: true}bindings:order_out: {destination: order_in, content-type: application/plain}

1.3. Source

import org.springframework.cloud.stream.annotation.Output;
import ssaging.MessageChannel;public interface Source {@Output("order_out") // 要在 impl  EntrustOrderServiceImpl中 远程发送 到撮合引擎MessageChannel outputMessage() ; //导包 import ssaging.MessageChannel;}

1.4. 配置类

import org.springframework.cloud.stream.annotation.EnableBinding;
import t.annotation.Configuration;@Configuration
@EnableBinding(value = {Sink.class , Source.class})
public class RocketMQConfig { // 配置类
}

1.5. 发送消息到撮合引擎  service -> impl -> EntrustOrderServiceImpl

MessageBuilder<EntrustOrder> entrustOrderMessageBuilder = MessageBuilder.withPayload(entrustOrder).setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON);source.outputMessage().send(entrustOrderMessageBuilder.build()); // 点击买入 卖出按钮后 执行 发送到撮合交易系统

1.6. recket-server:8080 

2. match-server 接收数据

2.1 数据转换

ample.domain.EntrustOrder;
ums.OrderDirection;
del.Order;public class BeanUtils {/*** 将EntrustOrder 转化为我们的Order* @param entrustOrder* @return*/public static  Order entrustOrder2Order(EntrustOrder entrustOrder) {Order order = new Order();order.Id().toString());order.Price());order.Volume().Deal())); // 交易的数量= 总数量- 已经成交的数量order.Symbol());order.Type().intValue())); // 交易sideorder.Created().getTime());return order ;}
}

2.2 监听接收数据 -> 发送到ringbuffer

match-server -> rocket -> MessageConsumerListener

ample.disruptor.DisruptorTemplate;ample.domain.EntrustOrder;
del.Order;slf4j.Slf4j;
ample.util.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.stereotype.Service;@Service
@Slf4j
public class MessageConsumerListener { // 消息消费者@Autowiredprivate DisruptorTemplate disruptorTemplate;@StreamListener("order_in") // "order_in" 在 Sink中public void handleMessage(EntrustOrder entrustOrder) { // 消息监听Order order = null;if (Status() == 2) { // 该单需要取消order = new Order();order.Id().toString());order.setCancelOrder(true);} else {order = ustOrder2Order(entrustOrder);}log.info("接收到了委托单:{}", order);Data(order);// 将order 发送到ringbuf 队列}
}

本文发布于:2024-01-28 02:58:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063819134284.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23