基于gRPC go实现消息发布订阅使用gRPC go实现 基于Topic的高效消息订阅发布模型 姓名 张凯 中国电子云 目 录 gRPC go 介绍 01 gRPC四种通信模式及落地场景 02 根据proto生成go桩代码 03 订阅者动态注册 04 发布者消息推送 05 现场案例演示 06 gRPC go介绍 gRPC是什么? 01. 副标题 开篇思考几个问题 01. 副标题 gRPC介绍 gRPC介绍 01. 副标题 gRPC介绍 01. 副标题 gRPC是框架,七层协议 gRPC go是实现,每个语言都有自己的实现 protobuf介绍 01. 副标题 protobuf示例 01. 副标题 gRPC四种通信模式 gRPC四种通信模式 01. 副标题 gRPC四种通信模式 01. 副标题 gRPC的落地场景 基于通信模式如何落地? 01. 副标题0 码力 | 31 页 | 2.42 MB | 1 年前3
基于amqp实现的golang消息队列MaxQ7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 1/22 基于amqp实现的golang消息队列 MaxQ 2017-07-01 张培培 饿了么-基础框架组 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 MaxQ架构模型 5. MaxQ相关特性 6. 使用场景和案例 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 3/22 1. 队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 堆积能力 消息可靠性 生产消费关系 Pull/Push 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 5/22 2. IPC消息队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq0 码力 | 22 页 | 1.45 MB | 1 年前3
用Go语言实现推送服务器用Go语言实现推送服务器 陈叶皓 chen.yh@ctrip.com 议程 • 推送服务器介绍 • Golang特点 • 推送服务架构 • 部分代码 • 上线效果 议程 • 推送服务器介绍 • 推送服务架构 • 部分代码 • 上线效果 什么是推送服务器 • 推送业务信息到手机端 • 始终保持连接 推送服务器要求 • 高并发 • 可靠性 • 高性能 • 支持水平扩展 • 无单点故障 • 高并发 – goroutine • 可靠性 – 使用Redis暂存消息 • 高性能 – 静态编译语言 • 支持水平扩展 – 使用RPC组成集群 • 无单点故障 – 使用Redis实现数据共享 Go语言的并发模型 • 事件驱动,共享线程池 runtime.GOMAXPROCS(runtime.NumCPU()) • 使用“go”命令创建goroutine go sockstore 个获取返回值的channel 议程 • 推送服务器介绍 • 推送服务架构 • 部分代码 • 上线效果 逻辑架构 去中心化设计 • 客户端随机连接 • Redis集中存储地址表 • 信息发送2跳到达 消息缓存设计 • 消息预存(Redis) • 尝试发送 • 发送成功后删除 客户端注册时序图 议程 • 推送服务器介绍 • 推送服务架构 • 部分代码 • 上线效果 串行场景-Socket Server0 码力 | 25 页 | 260.04 KB | 1 年前3
基于Rust-vmm实现Kubernetes运行时0 码力 | 27 页 | 34.17 MB | 1 年前3
数字货币交易系统架构 Python实现 黄毅数字货币交易系统架构 Python实现 黄毅 目录 CONTENTS 交易系统功能介绍 交易系统架构设计 钱包实现介绍 1 交易系统功能介绍 交易系统功能-基本概念 class Side(Enum): ‘下单方向’ BUY = 0 SELL = 1 class Order(NamedTuple): ‘订单’ id: int side: Side amount: K线:实时的分组聚合操作 • 高效利用关系数据库 交易系统架构设计-架构图 撮合 资金清算 行情推送 K线计算 历史成交 订单状态 PG Redis 下单 交易系统架构设计-撮合服务 • C++实现的Redis Module • 复用Redis本身的aof持久化和replication • 撮合结果直接输出到本地的redis stream(无需主动发送消息给其他服务) • 下游任务订阅redis stream $ redis-cli > ob.limit b{btc_usdt} * 10000 buy 1 10000 88181047656742912 交易系统架构设计-计算K线 • 实现为Redis Module的流式聚合组件(https://github.com/cryptorelay/redis-aggregation) $ redis-cli > agg.new agg{btc_usdt}0 码力 | 24 页 | 799.65 KB | 1 年前3
敏捷开发/侯馨然:Teambition 敏捷协作助力实现业务战略技术⾰革命,让⾏行行业快速变⾰革 • 供 给 推 动 v s 需 求 拉 动 • 外 部 竞 争 v s 客 户 中 ⼼心 • 既 有 资 源 v s 组 织 能 ⼒力力 敏敏捷协作,实现增⻓长 • 业务需求驱动创新 • 打破部⻔门墙,塑造⽆无边界组织 • 提升项⽬目管理理能⼒力力,贯彻业务战略略 业 务 需 求 驱 动 的 创 新 ⾃自我增强的业务增⻓长 • 线 性0 码力 | 24 页 | 5.29 MB | 1 年前3
在Solana合约链实现IBC协议跨链互操作 - 苏胤榕@DaviRain 在Solana合约链 实现IBC协议跨链互操作 简单介绍下IBC协议是什么,及其生态 简介 > 介绍IBC协议和其在跨链互操作中的作用 IBC协议中的角色和参与者 1. 客户端 2. 连接 3. 通道 4. 包 4. 中继器 解释为什么选择在Rust合约链中实现IBC协议 - IBC协议的核心已经被协议核心团队用Rust语言实现。 - 对于本身就是使用Rust语言作为智能合约开发的区块链 对于本身就是使用Rust语言作为智能合约开发的区块链 平台来说,支持集成支持IBC协议会很方便。 - 这里优先构想了在Solana链上实现IBC协议,因为 Solana平台本身极 低的gas消耗,很适合我现在构思 的这套实现方案。(后面会做解释) 引入Solana作为示例平台 - Solana极低的Gas花销。 - Anchor合约开发框架,大大降低了Rust合 约开发者在Solana上开发智能合约的难度。 Connection创建OpenTry Connection创建OpenAck Connection创建OpenConfirm 轻客户端核心 使用Rust在Rust合约链实现IBC协议 Rust合约链概述> 解释为什么选择Rust作为实现IBC协议的语言 1. Rust语言的安全性和性能优势 2. Rust生态系统的丰富性 3.Solana平台的支持:Solana是一个基于Rust开发 的0 码力 | 29 页 | 3.05 MB | 1 年前3
2.Go语言实现中的几个研究课题_毛康力Go语⾔言实现中的⼏几个研究课题 ⽑毛康⼒力 @舜⻜飞科技 关于我 • Go发布1.0时开始关注 • 最早接触是在2012年 • 喜欢研究底层实现 • http://www.zenlife.tk/ 有同事称我⼤大神或⼤大师(湿?) 其实,我只是⼀一个研究僧 ⼤大纲 • 并发 • 接⼝口 • 垃圾回收 • 调度 • 死锁检测 并发 • goroutine提供轻量的并发机制 在这个channel的结构上⾯面,以便唤醒。 select • select如何实现? • select其实是⼀一个整体 • c1 c2并不能独⽴立对待 • 要么全部成功,要么失败,否则可能死锁 • 单纯对select结构加锁⾏行不通!!! • 共享⼀一个全局锁? select • 研究课题:能否实现lock-free channels? • 使⽤用前获取select中的所有channel的锁 • 接⼝口 • 垃圾回收 • 调度 • 死锁检测 接⼝口 • 接⼝口定义了⼀一系列⽅方法 • 如果类型实现了这些⽅方法,它就实现了这个接⼝口 • 接⼝口不依赖实现 • 避免了过度设计,⽐比如OO⾥里⾯面基于继承的⽅方式 接⼝口 • 如何⾼高效实现⽅方法派发⽅方法? 泛型 • func Sort(data []T, less func(x, y *T) bool)0 码力 | 37 页 | 566.26 KB | 1 年前3
4 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarmPython JIT thautwarm The “Restrain” 目录 CONTENTS Preview 和其他JIT的比较 实现原理 如何参与开发 1 Preview 并行计算: SIMD并行, true threading 避开解释器开销: for-loop 避免嵌套函数开销: native function pointer, inline “All Add 2” A Regular 3-rd Party Module 不需要使用特殊的Python executable, 仅仅作为一个普通的第三方库使用。 反例: Graal Python, PyPy 3 实现原理 Abstract Machine, Virtual Machine, Abstract Interpretation, The Machine Monad, Backend Independent JIT需要代码生成, 但运行时检查代码生成与否, 有一定的开销。 而Julia的“生成函数”能够在生成之后, 重新触发编译, 消除所有检查自身是否生成的代码。 4 参与开发 1. Instrinsics 后端实现: py_add, py_not, etc… 2. 对虚拟指令集的优化passes 3. issues… Intrinsics: restrain_jit/abs_compiler/py_apis0 码力 | 30 页 | 8.04 MB | 1 年前3
1 藤井美娜 Python的NLP实战分享 如何实现合同风险预测模型Python的NLP实战分享 如何实现合同风险预测模型? GVA TECH Co., Ltd 藤井美娜 自我介绍 2% |# | self-introduction • Machine Learning Engineer / Data Scientist • GVA TECH的人工智能法律服务AI-CON的多语言系统 开发负责人 inazo18 藤井美娜 目录 CONTENTS 售后服务情况、产销策略、招投 标中的标底及标书内容。 秘密信息 0.0 0.0 0.0 0.088 乙方承认在为甲方工作期间可能直接或间接地通过书面、口头、图表、音像资料等获 得或通过观察全部或部分设备、产品等获得这些秘密信息。 秘密信息 0.133 0.0 0.309 0.304 甲乙双方同意,上述“秘密信息”不包含那些非因乙方过错而进入公众领域的公开信 息。 秘密信息 0.076 0 售后服务情况、产销策略、招投 标中的标底及标书内容。 秘密信息 0.0 0.0 0.0 0.088 乙方承认在为甲方工作期间可能直接或间接地通过书面、口头、图表、音像资料等获 得或通过观察全部或部分设备、产品等获得这些秘密信息。 秘密信息 0.133 0.0 0.309 0.304 甲乙双方同意,上述“秘密信息”不包含那些非因乙方过错而进入公众领域的公开信 息。 秘密信息 0.076 00 码力 | 36 页 | 3.95 MB | 1 年前3
共 606 条
- 1
- 2
- 3
- 4
- 5
- 6
- 61













