数字货币交易系统架构 Python实现 黄毅
行情推送 K线计算 历史成交 订单状态 PG Redis 下单 交易系统架构设计-撮合服务 • C++实现的Redis Module • 复用Redis本身的aof持久化和replication • 撮合结果直接输出到本地的redis stream(无需主动发送消息给其他服务) • 下游任务订阅redis stream $ redis-cli > ob.limit b{btc_usdt} b{btc_usdt} * 10000 buy 1 10000 88181047656742912 交易系统架构设计-计算K线 • 实现为Redis Module的流式聚合组件(https://github.com/cryptorelay/redis-aggregation) $ redis-cli > agg.new agg{btc_usdt} time price amount OK > agg.view agg{btc_usdt} 1571408580000 “[9000,9000,9000,9000,1]” 交易系统架构设计-redis stream • Kafka-like • 一个订阅者的情况,消息有序 • Consumer group负载均衡(不保证消息顺序) • 可以批量处理消息 • 在同一个事务中存储处理结果和更新消费offset $ redis-cli > xread block 60 count 100000 streams0 码力 | 24 页 | 799.65 KB | 1 年前3QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+
[NoSql方案示例] 内存操作 单线程原子操作 高可用保障 兜底策略 限流、熔断: maxclients(redis) max_request+max_threads(middleware) hystrix..(service) Redis+java方案(瑕疵版): � stock=(incrby stock –X)� if (stock<0){incrby 高可用措施保障 兜底策略 Redis+(lua/module)方案: local stock = redis.call("GET","STOCK") if tonumber(stock)redis.call("INCRBY", "STOCK" "STOCK",-X) return stock end 限流、熔断: maxclients(redis) max_request+max_threads(middleware) hystrix..(service) 热点削峰 流量 系统容量水位线 不限流 限流 时间 削峰策略[知容量,明底线] 限流 降级 0 码力 | 42 页 | 19.96 MB | 1 年前3降级预案在同程艺龙的工程实践-王俊翔
⽇日志中⼼心 KAFKA 数据采集、计算、存储 指标(HBase) 指标明细(ES) 降级⽇日志(ES) ETL 指标计算(Flink) 脚本引擎 查 询 服 务 ⽇日志数据 指标(Redis) 业务异常数据快照(ES) 熔断降级通知 降级服务管理理 故障代码注⼊入 降级服务注册设计 serviceA serviceB serviceC etcd register service 降级 条件 计算 降级消息 数据 存储 实时告警 规则配置 开发 ⽇日志解析规则 控制中⼼心 ETCD 降级服务 降级处理理 流处理理集群(Flink) HBase ES Redis 落地存储 数据服务 数据平台 实时告警 告警策略略 指标查询 指标脚本开发 指标配置 产品化 开发 复合指标计算如何处理理 ServiceA ServiceB ServiceC Core Custom Code Model Burn CPU Servlet Module MySQL Module DSF Module MQ Module Redis Module Attach Method Event 故障演练 管理理后台 Agent 控制指令、参数下发、故障注⼊入 Jetty MGT API ASM / Instrumentation0 码力 | 26 页 | 18.67 MB | 1 年前3领域驱动设计&中台/DDD促进传统架构微服务转型
������ � � � � � � ���� ���� ���� ���� ��� �� APP ���� ���� �������� MySQL+Redis MySQL�� Hive+Redis ���� ���� ���� China Conference ���� ���� ���� ���� ���� ���� Entit y ��� �� Conference ��� ��� MySQL ��� �� �� �� �� �� �� ���� TiDB NewSQL ��� NoSQL ��� ���� �� �� �� �� Redis �� �� ��������� China Conference Jekins SVN SVN SVN ���� ���� ���� ���� ���� ��������0 码力 | 42 页 | 8.85 MB | 1 年前3领域驱动设计&中台/物联网平台的反应式设计
单体的逻辑架构 Devices IoT Applications Load Balance Nginx Web Console MySQL MongoDB Replica Redis Cluster EMQ Cluster IoT PaaS Service Cluster EMQ Node1 EMQ Node2 EMQ Node3 EMQ NodeN “state”: “ON” } }, “version”: 12 } 设备影⼦子处理理逻辑 Devices MongoDB Replica Redis Cluster EMQ Node NodeX IoT Applications FindShadow SetDesired SaveShadow CalcDelta UpdateDelta NodeX IoT Applications FindShadow SetDesired SaveShadow CalcDelta SendDeltaEvent SyncDelta Redis Cluster “${DeviceName}_delta”: { “delta”: { … } } 新的逻辑架构 Devices IoT Applications0 码力 | 18 页 | 1.81 MB | 1 年前3海量用户推送后台系统架构实践-曾振波
Data1-0 Data1-1 Data2-0 Data2-1 Mng0 Mng2 Mng3 缓存化 • 热点数据全部缓存 • 加快数据访问,减少请求处理时间 • 多级缓存 • 本地缓存 • Redis, Couchbase, LevelDB(PIKA), 定制化 极光推送后台系统架构 04 程序及系统优化 • 内存 • 静态分配 • 内存池 • 内存对齐 • CPU Affinity 业务方透明 • 统一管理 • 屏蔽后端变化 • AutoScale,Failover,AutoRecover • JMQ - RabbitMQ, RocketMQ • JCache - Redis, LevelDB(PIKA) 极光推送后台系统架构 06 链接管理 • 量级大,网络复杂,DDOS攻击 • 动态管理 • 就近接入 • 自动化管理接入网关 • 自动扩容,应对网络攻击0 码力 | 23 页 | 1.26 MB | 1 年前3付钱拉金融云系统架构演进和最佳实践
APP3 APP1 APP2 APP3 DB 快速响应故障 QUICK RESPONSE FAILURE DB 我们解决了以下系统自身问题 线程数 数据库连接 数- mysql,redis 内存 慢SQL 最后的问题是什么? Java系统常见问题 JAVA SYSTEM FAQ CPU DO NOT FORGET THE BEGINNING DO NOT FORGET 热数据隔离,避免业 务增加带来的性能问题 10.尽量避免使用全局变量防止并发出现线程安全问题,从而影响业务 11.定时器问题预防 定时器浪打浪情况下,任务重复处理会导致资金风险,建议使用redis避免 定时器浪打浪情况下,启动多个定时器即默认启动多个线程,影响系统性能 定时器浪打浪情况下,如果定时任务处理过慢会导致内存耗尽 12.避免系统中出现单点故障,包括中间件和应用程序等所有的节点0 码力 | 35 页 | 6.05 MB | 1 年前3领域驱动设计&中台/金融支付系统的改造之路
��������� ����������������������� • �����RESTful ����� • ������������ • �������������� • ������������Redis�DB�MQ��� • ����������������+�����tag • ������������������� • ����������������� ��Principles •0 码力 | 28 页 | 560.52 KB | 1 年前3高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁
Tests •A framework for distributed systems verification, with fault injection •Found bugs •Redis •etcd •Cassandra … Jepsen Jepsen: How does it work? N1 N2 N3 N4 N5 Control TiDB Cluster0 码力 | 45 页 | 4.63 MB | 1 年前3联想-贺钢架构工作在国际化项目中的应用实例
数据中心最终方案 用户访问量对应的web架构 用户访问量 服务器架构 百万以下 单台或多台的简单架构,可以简单通过升级服务器 配置支持更多用户 百万到千万 增加Nginx(反向代理)或DNS负载均衡,redis内存 cache,数据库(Mysql)多台(数据在一个数据中心) 千万到亿 增加Web服务器内存缓存,集群,IP负载均衡,基于内 容请求分发,Mysql优化(如减少写,2/8原则),数据在 一个数据中心0 码力 | 53 页 | 2.36 MB | 1 年前3
共 15 条
- 1
- 2