2.1.5 千万级高性能长连接Go服务架构实践GO CN 千万级高性能长连接Go服务架构实践 彭宝江 百度公司 资深研发工程师 统一长连接服务背景 01 统一长连接服务介绍 02 统一长连接服务架构 03 统一长连接golang实践 04 总结和规划 05 01统一长连接服务背景 ’ alt=‘OCR图片’/> 什么是长连接 长连接 长连接 APP生命期常驻 支持全双工上下行 提升实时性、互动性 应用场景:消息&直播&PUSH ’ alt=‘OCR图片’/> 统一长连接服务背景 ’ alt=‘OCR图片’/> 02统一长连接服务介绍 ’ alt=‘OCR图片’/> 支持的业务场景 业务 支持能力 推送场景 推送预计UPS 消息 请求转发下行推送 单播/批量单播 万级 直播 请求转发下行推送 组播 千万级 云控 请求转发下行推送 批量单播 百万级 PUSH 请求转发下行推送 批量单播 百万级 统一长连接-功能目标 统一长连接-功能目标 功能目标 服务能力 服务特性 服务接入 ’ alt=‘OCR图片’/> 统一长连接-性能目标 性能项 性能支持 说明 并发连接数 千万级长连接 支持横向扩容 下行QPS 百万级批量单播推送千万级组播推送 支持横向扩容 服务延时 毫秒级 - ’ alt=‘OCR图片’/> 统一长连接设计目标 稳定性 少出问题 快速恢复 高性能 高并发 高实时0 码力 | 34 页 | 1.24 MB | 1 月前3
Golang在接入层长连接服务中的实践-黄欣## Golang 在接入层长连接服务中的实践 黄欣 基础平台—架构部 - 背景 - 架构 - 心得 ## 目录 - 背景 - 架构 - 心得 ## 目录 ## 背景—why 长连接? - 业务场景 - 大量实时计算 - 司机乘客撮合 - 实时计价 - 高频度的数据交互 - 坐标数据 - 计价数据 - (golang) - 接口设计分层 • 框架层:模块间通信协议(类似tcp/udp) • 业务层:bytes(类似应用层)留给业务自己定义就好了 ## 架构—性能 • conn svr |连接数|qps|内存|cpu(平均)|gc(STW)| |---|---|---|---|---| |30000|3w上行 3w下行|3~4G|300%左右|8~40ms| |60000|6w上行 4w svr storage (redis\mysql) push svr util launcher: 接收连接,接收请求,go出去,等待业务层返回结果,并write back business:业务代码,拿到请求自行处理,完事之后return到laucher backend:和长连接系统中的其他模块异步通信模块 storage:和存储交互模块,提供统一的封装 util:其他通用模块(时间轮、对象池、wait封装等)0 码力 | 31 页 | 1.67 MB | 2 年前3
使用JDBC连接数据库## ☐ ## 使用JDBC连接数据库 北京理工大学计算机学院金旭亮 ## Java数据库应用程序全局视图 Java应用程序 JDBC数据库驱动(*.jar) JDBC规定了一整套访问数据库的标准API,所有数据库都需要实现它,因此,使用JDBC访问数据库的Java应用程序,是很容易切换底层数据库的。 ## JDBC核心类型一览表 |核心类型 (java.sql)|说明| |---|---| 载驱动程序| |Connection|与数据库建立连接| |Statement|在一个给定的连接中执行SQL语句| |PreparedStatement|用于执行预编译的SQL命令| |CallableStatement|用于调用数据库中存储过程| |ResultSet|保存SQL命令的执行结果| 上述组件是独立于底层数据库的,也就是说,只要连接上了数据库,相同的代码,就可以顺利工作..... ## ## JDBC访问数据库的基本步骤 加载JDBC驱动程序 创建数据库连接 执行SQL语句 接收并处理SQL的返回结果 关闭创建的各个对象 对于有可视化界面的应用程序,或者是Server端应用程序,应该在独立的线程中完成这些步骤。 出于精简学习负担的目的,我们将以SQLite为例介绍JDBC的基本使用,在此基础之上,后面选择微软的SQL Server来介绍JDBC的高级特性…… ![Im0 码力 | 20 页 | 1.02 MB | 2 年前3
全连接神经网络实战. pytorch 版全连接神经网络实战 PYTORCH 版 DEZEMING FAMILY DEZEMING Copyright $ \copyright $ 2021-10-02 Dezeming Family ## Copying prohibited All rights reserved. No part of this publication may be reproduced or transmitted 。本书不可避免要参考 $ ^{[2]} $ 的讲解方式,但我们对讲解顺序和内容,以及程序代码都做了大量的改进。说了那么多,总之,我们的目标是写一个最好的最容易上手的 pytorch 入门教程——从全连接网络开始。 书中的示例代码在网站页面可以找到。每节末尾会提示“本节代码见 chapterX.py”。 20211006:完成本书第一版。 ### 1. 准备章节 1.1 导入 pytorch NeuralNetwork 内部定义函数: def weight_init(self): # 遍历网络的每一层 for m in self.modules(): # 如果该层是线性连接层 if isinstance(m, nn.Linear): print(m.weight.shape) print(m.bias.shape)0 码力 | 29 页 | 1.40 MB | 2 年前3
1-Noah-Chen-连接世界的Python社区0 码力 | 24 页 | 2.98 MB | 2 年前3
Tornado 4.5 Documentation
0 码力 | 222 页 | 833.04 KB | 2 年前3
APM 深水区:构建连接运维与业务之桥-赵宇辰## APM 深水区: 构建连接运维与业务之桥 ## 赵宇辰 @ 听云 ## 极客邦科技 会议推荐2019  QCon 北京 ## 全球软件开发大会 大会:5月6–8日 培训:5月9–10日 QCon 广州 ## 全球软件开发大会 不断应用,复杂多元的IT运行环境也对传统运维提出了巨大挑战。 用户感知 体验 快速交付 数据分析 面向业务和服务的主动运营 效率 可视化 最大价值化 效益 ## APM深水区:构建连接运维与业务之桥 技术运营成本 量化业务表现 用户体验提升 数据 风险防范、故障定位 持续迭代持续优(DevOps) 业务运营效率价值 ## 业务运维可以做什么? 完成了多少笔订单?2018-12-28 触发卡余额不足的交易有多少笔?交易失败,扣款返还的交易有多少笔?超限金额的交易有多少笔? ## APM深水区:构建连接运维与业务之桥 业务目标 决策推荐 根因分析 异常检测 效率提升 多维分析 的对象。 • abort 函数用于手动停止任务的执行。 即使增加了上述复杂度,整个处理过程仍然很容易理解,而且它已经远比之前灵活。 ## 参见 上下文管理器,环境变量完整列表 ## 建立连接 让我们回到 fabfile 的主旨:定义一个 deploy 任务,让它在一台或多台远程服务器上运行,并保证代码是最新的: def deploy(): code_dir = '/s [my_server] out: [my_server] run: touch app.wsgi Done. 我们并没有在 fabfile 中指定任何连接信息,所以 Fabric 依旧不知道该在哪里运行这些远程命令。遇到这种情况时,Fabric 会在运行时提示我们。连接的定义使用 SSH 风格的“主机串”(例如:user@host:port),默认使用你的本地用户名——所以在这个例子中,我们只需要指定主机名0 码力 | 145 页 | 161.53 KB | 2 年前3
Tornado 6.4 Documentation
0 码力 | 268 页 | 1.09 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













