1.5 Go 语言构建高并发分布式系统实践## go语言并发编程实践 以360消息推送系统为例 周洋 部门:360手机助手 Weibo: @johntech-o Date: 2015.04.25 ## 目录 go语言在基础服务开发领域的优势? 我遭遇了哪些挑战? 如何应对的? 具有go特色的运维 在高并发,通信交互复杂,重业务逻辑的分布式系统中,Go语言优势体现在:开发体验好、一定量级下服务稳定、性能满足需要 ## 以360消息推送系统为例 以360消息推送系统为例 ## 一 定量级下服务稳定: 50+内部产品,万款开发平台app 实时长连接数亿量级,日独数十亿量级 1分钟内亿量级广播,日下发峰值百亿量级 400台物理机,9个独立集群,国内外近10个IDC 运维管理的go语言编写的常驻service服务实例接近3000个。 ## 业务场景多样: 支持聊天场景业务,稳定支持多款聊天业务app 单通道多app复用 接受)  ## 消息系统规模架构:重业务逻辑 ## 消息系统简要架构 ## 接入层 0 码力 | 39 页 | 5.23 MB | 2 年前3
2.9 Go语言在证券期货行情系统中的实践Go语言在证券期货行情系统中的实践 金大师 张泽武 GopherChina 2017 ’ alt=‘OCR图片’/> 目录 CONTENTS 项目故事 行情系统 接入服务 ```markdown ## 项目故事 - 项目启动 - 团队组建 - 项目计划 ```markdown ## 启动 ## 开发一套行情系统 最短的时间交付? 满足大量并发请求? 低延时? 指标、计算服务? 3个月的开发时间 组建团队 ```markdown ## 团队 ## 组建一个团队 团队的主开发语言?证券、期货经验? 服务端开发经验?炒股吗? 有证券、期货从业经验 C++ 有服务器开发经验 自己炒过股的 有golang开发经验或喜欢golang的 团队 组建一个团队 团队的主开发语言? 证券、期货经验? 服务端开发经验炒股吗? 06.09 06.29 C++工程师 2年证券C++开发经验 计划 ## 开发一套行情系统 尽快招人 马上启动 对接数据服务商 开发框架 2015. 05 2015. 06 启动讨论业务框架,确定需求范围,工期 2015. 07 2015. 08 组建团队招人,业务接洽,技术方案、框架准备 研发基础服务开发,数据接入 2015. 09 集成、联调服务集成,联调测试 预发布测试、发布 行情系统 行情系统 基本要求 服务设计0 码力 | 32 页 | 2.49 MB | 1 月前3
2.2 Go语言在讯联扫码支付系统中的成功实践Go语言在讯联扫码支付系统中的成功实践 2017-04-02 Jacky GopherChina 2017 ’ alt=‘OCR图片’/> 主要内容 金融支付系统的一些特点 我们的扫码支付系统技术选型 系统迭代过程中的架构演进 与Go相关的一些坑 业务流程 讯联 ardInfoLink 信息流 实时交易服务:API Gateway 商户对账服务:批处理 商户服务:web0 码力 | 19 页 | 3.71 MB | 1 月前3
TypeScript 类型系统## TypeScript 类型系统 分享人:陈文岗 学校:中国科学院大学 2021年1月21日 ## 关于TypeScript TypeScript是微软推出的JavaScript静态类型版本,它是JavaScript的超集,可以编译为纯粹的JavaScript TypeScript How Does TypeScript Work? TypeScript file.ts JavaScript // unknown类型(Top Type) let foo: unknown; // never类型(Bottom Type) let bar: never; ## TypeScript 结构类型系统 #include#include using namespace std; struct Person1 { string name; of local variable 'p1' to 'Person2' ↔ More actions... Person2 p2 = p1; } ## 标明类型系统 即使两个类的结构完全一致,也不能互相赋值 interface Person1 { name: string; age: number; } interface Person2 { 0 码力 | 25 页 | 1.27 MB | 2 年前3
Rust 语言学习笔记## Rust 语言学习笔记 感谢 RustPrimer 和 Rust 程序设计语言简体中文版 bradyjoestar@gmail.com ## 目录 序.....7 第一章 包管理系统与版本管理工具.....9 1.1 Crate.....9 1.2 module.....11 1.2.1 module 的可见性.....11 1.2.2 ...19 2.3.3 loop.....20 2.3.4 break 和 continue.....20 2.3.5 label.....20 2.4 Rust 类型系统.....21 2.4.1 可变性.....21 2.4.2 原生类型.....21 第三章 所有权 引用借用 生命周期.....31 3.1 所有权.....31 .... 57 5.2.2 依赖的详细配置: ..... 58 5.2.3 自定义编译器配置 ..... 58 5.2.4 feature 段落 ..... 59 第六章 Rust 语言高级特性 ..... 61 6.1 函数式编程 ..... 61 6.1.1 闭包 ..... 61 6.1.2 闭包捕获周围环境的方式 ..... 62 6.1.3 函数指针 ..0 码力 | 117 页 | 2.24 MB | 2 年前3
Go语言基础
Golang Fundaments## Go语言基础 Golang Fundaments 中山大学 数据科学与计算学院 潘茂林 panml@mail.sysu.edu.cn ## 大纲 • Golang-设计哲学 • 基础知识学习 • Go语言的入门资源 • 本地项目工作空间组织 • 开始编程 ## Golang-设计哲学 ## 我们需要什么样的语言 曾经 我们对包含大量代码的程序印象深刻。 - 我们努力在代码库中创建大型抽象。 这是一个有效的程序吗? - 是正确的吗? - 按时完成了吗? - 花了成本(时间、空间复杂度)? 渴望成为质量、效率和简单的冠军。 • 有自己的观点。 • 重视反省和自我检讨。 ## Go语言应该是这样的 · 易于阅读代码 - 对遗存软件友好 • 心智模型 • 生产率与性能 • 正确性与性能 • 规则 • 方便代码评审 - 完整性 - 可读性 - 简单性 - 性能 • 实用主义的语言风格 - 面向编译器的静态类型语言 • 数据类型必须在编译阶段确定 • 语言能充分发挥编译优化技术 - 复古且简便的语言 • 集合了多种语言实用的语法表示 • 函数是一等公民(First-Class Functions) • 抛弃了面向对象 - 开放(几乎所有资源都在github上) ## • 语法基本特点 - C 语言的身体(语法基本类似 C 语言) – Python0 码力 | 21 页 | 851.30 KB | 2 年前3
Idris 语言文档 Version 1.3.1# 飞 Idris 语言文档 Version 1.3.1 ## Contents 1 Idris 教程 2 常见问题解答 (FAQ) 3 用 Idris 实现带有状态的系统:ST 教程 4 The Effects Tutorial 5 Theorem Proving 6 Language Reference 7 Tutorials on the Idris Language mmons.org/publicdomain/zero/1.0/deed.zh Idris 教程 本文档为 Idris 的教程,它简单介绍了如何用 Idris 语言编程。文档中覆盖了该语言的核心特性,并假定你至少熟悉一门函数式编程语言,如 Haskell 或 OCaml。 注解:Idris 文档已按照 创作共用 CC0 许可协议 发布。因此根据法律规定,Idris 社区 已放弃对 Idris 文档的所有版权以及相关或邻接的权利。 文档的所有版权以及相关或邻接的权利。 关于 CC0 的更多信息参见:https://creativecommons.org/publicdomain/zero/1.0/deed.zh ### 1.1 引言 在传统编程语言中,类型与值之间有明确的区分。例如在 Haskell 中,下面这些类型分别表示整数、字符、字符列表以及任意值的列表: • Int, Char, [Char], [a] 与此对应,下面这些值分别为上述类型的成员:0 码力 | 224 页 | 2.06 MB | 2 年前3
PlantUML 1.2021.3 语言参考指引绘制的 UML  PlantUML 语言参考指引 (Version 1.2021.2) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 类图 • 对象图 · 活动图 · 组件图 · 部署图 • 架构图 规范和描述语言 (SDL) - 规范和描述语言 (SDL) • Ditaa diagram 甘特图 • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图。 ## /5/c/345c7798228083c9f970b76c03e7a0e1/p56_2.jpg) ### 3.4 添加方法 为了声明字段(对象属性)或者方法,你可以使用后接字段名或方法名。 系统检查是否有括号来判断是方法还是字段。 @startuml Object <|-- ArrayList> Object : equals() ArrayList : Object[] elementData0 码力 | 398 页 | 4.22 MB | 2 年前3
PlantUML 1.2021.1 语言参考指引PlantUML 语言参考指引 (Version 1.2021.1) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 类图 • 对象图 · 活动图 · 组件图 · 部署图 • 状态图 • 定时图 同时还支持以下非 UML 图: • JSON Data • Network diagram (nwd) · 线框图形界面 • 架构图 规范和描述语言 (SDL) (SDL) - 规范和描述语言 (SDL) • Ditaa diagram 甘特图 • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 /9/3/5d939329963125474656175552027d1e/p54_2.jpg) ### 3.4 添加方法 为了声明字段(对象属性)或者方法,你可以使用后接字段名或方法名。 系统检查是否有括号来判断是方法还是字段。 @startuml Object <|-- ArrayList> Object : equals() ArrayList : Object[] elementData0 码力 | 376 页 | 4.00 MB | 2 年前3
PlantUML 1.2020.22 语言参考指引jpg) PlantUML 语言参考指引 (Version 1.2020.22) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 · 类图 · 活动图 · 组件图 · 状态图 · 对象图 · 部署图 · 定时图 同时还支持以下非 UML 图: • JSON Data · 线框图形界面 • 架构图 • 规范和描述语言 (SDL) • Ditaa • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeX Math 符号的数学公式 通过简单直观的语言来定义这些示意图。 ## 1 时序图 ### 1.1 简单示例 你可以用 -> 来绘制参与者之间传递的消息,而不必显式地声明参与者。 你也可以使用 --> 绘制一个虚线箭头。 另外,你还能用 /a/691a8040bbe897941668dcd70c6d4871/p41_2.jpg) ### 3.4 添加方法 为了声明字段 (对象属性) 或者方法,你可以使用后接字段名或方法名。 系统检查是否有括号来判断是方法还是字段。 @startuml Object <|-- ArrayList> Object : equals() ArrayList : Object[] elementData0 码力 | 295 页 | 3.08 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













