基于gRPC go实现消息发布订阅
使用gRPC go实现 基于Topic的高效消息订阅发布模型 姓名 张凯 中国电子云 目 录 gRPC go 介绍 01 gRPC四种通信模式及落地场景 02 根据proto生成go桩代码 03 订阅者动态注册 04 发布者消息推送 05 现场案例演示 06 gRPC go介绍 gRPC是什么? 01. 副标题 开篇思考几个问题 01. 副标题 gRPC介绍 Web开发 基于通信模式如何落地? 01. 副标题 流式传输 基于通信模式如何落地? 01. 副标题 以及,本次分享的 “ ” 基于Topic消息发布订阅 基于Topic的消息发布模型简介 01. 副标题 基于Topic的消息发布模型简介 01. 副标题 BRIAN KERNGHAN service PubSubService { rpc Publish(PublishRequest) 服务器和客户端的接口代码。 --go_out=.: 类似地,这个选项指定了非 gRPC 相关的 Protocol Buffers 消息结构体等 Go 语言代码的输出目录, 同样为当前目录。protoc-gen-go 插件会处理 .proto 文 件中的消息定义并生成对应的 Go 结构体。 订阅者动态注册 01. 副标题 type subscriber chan interface{}0 码力 | 31 页 | 2.42 MB | 1 年前3电商消息系统架构演进&mdash
0 码力 | 22 页 | 12.22 MB | 1 年前3基于amqp实现的golang消息队列MaxQ
7/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 2. IPC消息队列 3. AMQP协议 4. 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 生产者消费者 通信方式 存储方式 堆积能力 消息可靠性 生产消费关系 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.1680 码力 | 22 页 | 1.45 MB | 1 年前3Python 标准库参考指南 3.7.13
. . . . . 494 15 加密服务 497 15.1 hashlib --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . join(sequence)。要以扩展精度对浮点值求和,请参阅math.fsum()。要拼接一系列可迭代对 象,请考虑使用itertools.chain()。 super([type[, object-or-type]]) 返回一个代理对象,它会将方法调用委托给 type 指定的父类或兄弟类。这对于访问已在类中被重载的 继承方法很有用。搜索顺序与getattr() 所使用的相同,只是 type 指定的类型本身会被跳过。 type 种类型(或其他一些回滚 操作,取决于运算符)的反射操作。如果所有尝试都返回 “NotImplemented“,则解释器将引发适当的异常。 错误返回的 “NotImplemented“将导致误导性错误消息或返回到 Python 代码中的 “NotImplemented“值。 参见实现算术运算 为例。 注解: NotImplementedError 和 NotImplemented 不可互换,即使它们有相似的名称和用途。有0 码力 | 1961 页 | 9.14 MB | 9 月前3FISCO BCOS 1.3 中文文档
系统合约 系统合约是FISCO BCOS区块链内置的智能合约。一条链对应唯一的系统合 约。系统合约实现了对链的控制和管理。如节点注册,机构准入等等。 系统合约是一组合约的集合,包括: 系统代理合约 节点管理合约 注销证书合约 权限管理合约 全网配置合约 节点相关 系统合约在创世节点生成时,脚本已自动将其部署到链上,并设置了节点 config.json文件中的systemproxyad 能生效。 操作相关 配置:在操作前,需用脚本set_proxy_address.sh配置需要操作的链。 操作目录:FISCO-BCOS/tools/systemcontract 系统代理合约 系统代理合约是系统合约的统一入口。 它提供了路由名称到合约地址的映射关系。 源码路径:systemcontract/SystemProxy.sol 接口说明 接口名 输入 输出 备注 获取路由信息 log.conf |-- myeasylog.log |-- start.sh `-- stop.sh 生成普通节点 脚本:generate_node.sh 说明:用创世节点的nodeid、系统代理合约地址、创世节点的p2p地址,生成 普通节点。其中会调用generate_node_basic.sh、generate_node_cert.sh和 generate_genesis.sh,生成节点0 码力 | 491 页 | 5.72 MB | 1 年前3Python 标准库参考指南 3.8.20
. . . . . 532 15 加密服务 535 15.1 hashlib --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . fsum()。要拼接一系列可迭代对 象,请考虑使用itertools.chain()。 在 3.8 版更改: start 形参可用关键字参数形式来指定。 super([type[, object-or-type]]) 返回一个代理对象,它会将方法调用委托给 type 的父类或兄弟类。这对于访问已在类中被重写的继承 方法很有用。 object-or-type 确定用于搜索的method resolution order。搜索会从 种类型(或其他一些回滚 操作,取决于运算符)的反射操作。如果所有尝试都返回 “NotImplemented“,则解释器将引发适当的异常。 错误返回的 “NotImplemented“将导致误导性错误消息或返回到 Python 代码中的 “NotImplemented“值。 参见实现算术运算 为例。 注解: NotImplementedError 和 NotImplemented 不可互换,即使它们有相似的名称和用途。有0 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.7.13
. . . . . . 466 15 加密服务 469 15.1 hashlib --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . join(sequence)。要以扩展精度对浮点值求和,请参阅math.fsum()。要拼接一系列可迭 代对象,请考虑使用itertools.chain()。 super([type[, object-or-type]]) 返回一个代理对象,它会将方法调用委托给 type 指定的父类或兄弟类。这对于访问已在类中被重载 的继承方法很有用。搜索顺序与getattr() 所使用的相同,只是 type 指定的类型本身会被跳过。 type 种类型(或其他 一些回滚操作,取决于运算符)的反射操作。如果所有尝试都返回 “NotImplemented“,则解释器将 引发适当的异常。错误返回的 “NotImplemented“将导致误导性错误消息或返回到 Python 代码中的 “NotImplemented“值。 参见实现算术运算 为例。 注解: NotImplementedError 和 NotImplemented 不可互换,即使它们有相似的名称和用途。0 码力 | 1846 页 | 9.09 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . 496 15 加密服务 499 15.1 hashlib --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . 代对象,请考虑使用itertools.chain()。 在 3.8 版更改: start 形参可用关键字参数形式来指定。 super([type[, object-or-type]]) 返回一个代理对象,它会将方法调用委托给 type 的父类或兄弟类。这对于访问已在类中被重写的继 承方法很有用。 object-or-type 确定用于搜索的method resolution order。搜索会从 种类型(或其他 一些回滚操作,取决于运算符)的反射操作。如果所有尝试都返回 “NotImplemented“,则解释器将 引发适当的异常。错误返回的 “NotImplemented“将导致误导性错误消息或返回到 Python 代码中的 “NotImplemented“值。 参见实现算术运算 为例。 注解: NotImplementedError 和 NotImplemented 不可互换,即使它们有相似的名称和用途。0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . 496 15 加密服务 499 15.1 hashlib --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . 代对象,请考虑使用itertools.chain()。 在 3.8 版更改: start 形参可用关键字参数形式来指定。 super([type[, object-or-type]]) 返回一个代理对象,它会将方法调用委托给 type 的父类或兄弟类。这对于访问已在类中被重写的继 承方法很有用。 object-or-type 确定用于搜索的method resolution order。搜索会从 种类型(或其他 一些回滚操作,取决于运算符)的反射操作。如果所有尝试都返回 “NotImplemented“,则解释器将 引发适当的异常。错误返回的 “NotImplemented“将导致误导性错误消息或返回到 Python 代码中的 “NotImplemented“值。 参见实现算术运算 为例。 注解: NotImplementedError 和 NotImplemented 不可互换,即使它们有相似的名称和用途。0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.6.15
. . . . . . . 484 15 加密服务 487 15.1 hashlib —安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 15.2 hmac —基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . join(sequence)。要以扩展精度对浮点值求和,请参阅math.fsum()。要拼接一系列可迭代对 象,请考虑使用itertools.chain()。 super([type[, object-or-type]]) 返回一个代理对象,它会将方法调用委托给 type 指定的父类或兄弟类。这对于访问已在类中被重载的 继承方法很有用。搜索顺序与getattr() 所使用的相同,只是 type 指定的类型本身会被跳过。 type 种类型(或其他一些回滚 操作,取决于运算符)的反射操作。如果所有尝试都返回 “NotImplemented“,则解释器将引发适当的异常。 错误返回的 “NotImplemented“将导致误导性错误消息或返回到 Python 代码中的 “NotImplemented“值。 参见实现算术运算 为例。 注解: NotImplementedError 和 NotImplemented 不可互换,即使它们有相似的名称和用途。有0 码力 | 1886 页 | 8.95 MB | 9 月前3
共 363 条
- 1
- 2
- 3
- 4
- 5
- 6
- 37