cep java_交易系统中的CEP框架
最近在搭建交易系统的过程中,学习了一下CEP框架的相关知识。
CEP全称是复杂事务处理框架(Complex Event Processing),他的特点简单概括如下:
1、他的输入是一些简单的事件流
2、接受到输入的事件流后,他通过内部核心的判别逻辑,根据事件特点,路由到相应的处理分支进行处理。
举个实例,这个很像是有一种带收纳桶的积木玩具:
可以把每一个积木粒当做一个个简单的事件,而cep框架就是收纳桶的盖子,我们可以根据每个事件的特点,把事件路由到相应的处理分支。https://www.zhihu.com/video/1179493509442195456
这样每个事件就会触发响应的处理分支:不同的事件将触发不同的交易策略。
下面进一步说一些有意思的事儿:
1、可以看到,其实CEP框架的本质,就是一个消息分发系统。每个消息就是上文中的一个事件,Cep框架根据自身逻辑,把每个消息路由到相应的处理分支。咱们极端一点,想象一下,如果所有的消息都采用相同的逻辑来处理,那么cep框架就真的转变为一个消息分发系统了。
2、如果你认真看了上文,可能隐约会感觉到,一个交易策略的执行,有两个逻辑控制点:一是cep框架中的事件分类逻辑,二是实际的策略处理逻辑。
那么这两个逻辑是什么关系呢?理论上你可以把Cep框架中的“逻辑”写的很复杂,达到策略逻辑目的,而且一般cep框架一般是c或者java写的,运行效率也比交易策略要好(为了降低量化交易员的门槛,交易策略甚至可能是python写的)。但这样做也会有一些问题,比如不利于框架逻辑解耦,万一策略有问题要修改都是牵一发动全身;而且cep框架逻辑粒度会变成策略级别,非常细,容易出问题。因此,哪些写在Cep框架的逻辑中?哪些写在策略逻辑中?是需要权衡的。
cep java_交易系统中的CEP框架相关推荐
- 什么是cep算子_Flink中的CEP复杂事件处理 (源码分析)
其实CEP复杂事件处理,简单来说你可以用通过类似正则表达式的方式去表示你的逻辑,表现能力非常的强,用过的人都知道 开篇先偷一张图,整体了解FlinkCEP中的 一种重要的图 NFA FlinkCE ...
- Flink中的CEP(一)
目录 十二:Flink CEP 12.1 基本概念 12.1.1 CEP 是什么 12.1.2 模式(Pattern) 12.1.3 应用场景 12.2 快速上手 12.2.1 需要引入的依赖 12. ...
- Flink中的CEP(二)
目录 12.4 模式的检测处理 12.4.1 将模式应用到流上 12.4.2 处理匹配事件 12.4.3 处理超时事件 12.4.4 处理迟到数据 12.5 CEP 的状态机实现 12.6 本章总结 ...
- 状态机在马蜂窝机票订单交易系统中的应用与优化实践
点击上方"马蜂窝技术",关注订阅更多优质内容 在设计交易系统时,稳定性.可扩展性.可维护性都是我们需要关注的重点.本文将对如何通过状态机在交易系统中的应用解决上述问题做出一些探讨. ...
- 如何在自己工程项目中使用TouchJSON框架
前提:配置到某具体的工程项目中 复制TouchJSON框架源代码到自己的工程项目中,即将TouchJSON/Source目录及文件拷贝到项目中,在添加到工程项目中时确认选中"Copy ite ...
- java 中的 viewUtils框架
IoC的概念介绍 控制反转(IOC)模式(又称DI:Dependency Injection)就是Inversion of Control,控制反转.在Java开发中,IoC意 味着将你设计好的类交给 ...
- 在Spring Boot项目中使用Spock框架
转载:https://www.jianshu.com/p/f1e354d382cd Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring B ...
- 3 weekend110的hadoop中的RPC框架实现机制 + hadoop中的RPC应用实例demo
hadoop中的RPC框架实现机制 RPC是Remotr Process Call, 进程间的远程过程调用,不是在一个jvm里. 即,Controller拿不到Service的实例对象. hadoop ...
- 使用外部同步的 Boost.Test 调用在 MT 环境中测试单元测试框架的可用性
使用外部同步的 Boost.Test 调用在 MT 环境中测试单元测试框架的可用性 实现功能 C++实现代码 实现功能 使用外部同步的 Boost.Test 调用在 MT 环境中测试单元测试框架的可用 ...
最新文章
- 某程序员吐槽自己追求某字节HR,暧昧半年,见面后却被告知是普通朋友!心态已崩!网友:别追HR!道行太深!...
- android 实现自定义监听接口,Android在自定义类中实现自定义监听器方式
- 【mysql】已经创建表后,修改某列的默认值
- document 文挡对象 - JavaScript脚本语言描述
- 解决xtraFinder在EI下不能使用问题
- supervisor 守护多个进程_supervisor管理守护进程
- 周五怎么表示 mysql_完美起航-MySQL找每个月最后一个星期五--函数定义与使用
- 取代Cookie失败,Google上线FLoC反遭“围攻”!
- 多线程TCP客户端的设计
- android rtorrent 编译,rtorrent交叉编译
- 《Dotnet9》系列-开源C# WPF控件库3《HandyControl》强力推荐
- 阿里云域名实名认证操作图文详情 新人必看教程
- Python视频处理(3)——提取视频字幕
- 爬虫爬取二次元网站美女图片
- Keil用ST-LINK下载STM32程序后不自动运行
- 对接斑马打印机 usb模式+打印机共享模式
- CF1383C 题解
- Delphi 2010的好消息
- 2g网络显示无服务器,显示2g网络什么意思
- 商城、门户、微信服务平台、CMS、易企秀、红包、分销商城、游戏源代码