基于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/maxq.slide#10 码力 | 22 页 | 1.45 MB | 1 年前3
2.2.1通过Golang+eBPF实现无侵入应用可观测通过Golang + eBPF实现无侵入应用可观测 张海彬 阿里云 应用可观测技术专家 目 录 eBPF简介 01 eBPF在云原生场景下的应用 02 微服务可观测的挑战 03 Golang + eBPF实现数据采集 04 构建完整的应用可观测系统 05 eBPF简介 第一部分 eBPF简介 01. eBPF简介 eBPF = extended Berkeley Packet 夯机宕机,资源异 常… 应用组件异常:线程池满,数据库连接无法获取, OOM,文件读取错误… 无法自顶向下端到端 串联导致棘手问题频 发。 Kubernetes下的可观测 Golang + eBPF实现数据采 集 第四部分 eBPF在可观测领域的优势 无侵入 多语言/多协议/多框架 全栈覆盖 无侵入性 • 无需修改代码 • 无需重启应用 • Verifier保证运行安全 程序跟其他的用户空间的程序没有太大区别 编译成二进制文件,可以适应不同运行环境 libbpf 扮演bpf程序装载机角色 开发人员只需要关注bpf程序的正确性和性能,不 需要关注其他依赖关系 通过Golang加载eBPF程序 01. 副标题 func loadSync() error { // Allow the current process to lock memory for eBPF0 码力 | 29 页 | 3.83 MB | 1 年前3
Golang 入门笔记更多Golang资料包:扫码进入Github 1. 算术运算符 算数运算符就是对数值类型的变量进行运算的,比如,加减乘除。在Go中运用非常的多 算数运算符 除法演示 //说明,如果运算的数都是整数,那么除后,将会去除小数位 fmt.Println(10 / 4) //2 var n1 float32 = 10 / 4 fmt.Println(n1) //2 //如果我们希望保留小数,那么就需要有浮点数参与运算 这样我们可以看到取模的一个本质运算 3. Golang 的自增只能当做一个独立的语言使用时,不能这样使用 b := a++ 或者 b := a-- 错误用法 4. Golang 的 ++ 和 -- 只能写在变量的后面,不能写在变量的前面,即,只有 a++, a-- 没有 ++a, --A 错误演示 5. Golang 的设计者去掉了 c/java 中自增和自减的容易混淆的写法,让golang 更加简介,统一(强制性) 变量 字符串 符号 分隔符 Go 语言一行代表一个语句的结束,不像 C 家族语言一样以分号结束 如果一个语句写多行就需要加一个分号,不推荐 字符串连接 Go 语言字符串连接通过 `+` 实现 案例 : fmt.Println("Google " + "Runoob") 关键字 关键字或保留字 预定义标识符 Go 语言的空格 1. 变量声明必须用空格隔开。例如: var age0 码力 | 2 页 | 511.29 KB | 1 年前3
Go语言基础
Golang FundamentsGo语言基础 Golang Fundaments 中山大学 数据科学与计算学院 潘茂林 panml@mail.sysu.edu.cn 大纲 • Golang-设计哲学 • 基础知识学习 • Go语言的入门资源 • 本地项目工作空间组织 • 开始编程 Golang-设计哲学 我们需要什么样的语言 • 曾经 – 我们对包含大量代码的程序印象深刻。 – 我们努力在代码库中创建大型抽象。 – 性能 – 微优化 Ultimate Go,https://github.com/ardanlabs/gotraining/blob/master/topics/go/README.md Golang-设计哲学 • 面向数据的设计(Data-Oriented Design) “数据占主导地位。如果您选择了正确的数据结构,并 且组织得很好,那么算法几乎总是不言自明的。数据结 构,而不是算法,是编程的核心。”——罗伯•派克 接口的标准化可以建立清晰和一致的期望。 • 面向包的设计(Package-Oriented Design) • 并发软件设计(Concurrent Software Design) • 管道设计(Channel Design) Golang-设计哲学 • 实用主义的语言风格 – 面向编译器的静态类型语言 • 数据类型必须在编译阶段确定 • 语言能充分发挥编译优化技术 – 复古且简便的语言 • 集合了多种语言实用的语法表示0 码力 | 21 页 | 851.30 KB | 1 年前3
Hello 算法 1.0.0 Golang版和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 章 前言 hello‑algo.com 3 图 0‑1 本书主要内容 ,将帮助你节省不必要的调试时间,让你能够专注于学习内 容。 图 0‑5 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 用到日常生活中了。下面我将举几个具体的例子来证实这一点。 例一:查字典。在字典里,每个汉字都对应一个拼音,而字典是按照拼音字母顺序排列的。假设我们需要查 找一个拼音首字母为 ? 的字,通常会按照图 1‑1 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所以排除字典前半部分,查找范围缩小到后半部分。 3. 不断重复步骤 10 码力 | 382 页 | 17.60 MB | 1 年前3
实现PostgreSQL逻辑复制实战Postgres Conference China 2016 中国用户大会 实现PostgreSQL逻辑复制实战 王青松 神州飞象(北京)数据科技有限公司 Your Logo 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 简介 逻辑复制的功能是从PG的WAL日志中,读取数 据库更新信息,然后“翻译”(Decode)成逻 Pg的逻辑复制可以根据需求把WAL日志直接翻译成 可以直接解析的SQL语句,并通过槽技术向不同DB 进行传递,从而实现不同DB数据库的复制。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 如何自定义输出插件 我们所要实现以下几个回调函数: LogicalDecodeStartupCB startup_cb; LogicalDecodeBeginCB0 码力 | 17 页 | 1.90 MB | 1 年前3
CurveFS rename 接口实现方案rename 接口实现方案(已实现,选用方案二)© XXX Page 2 of 15 1. 2. 3. 4. 1. 2. 1. 3. 1. 2. 背景 方案调研 Chubaofs Juicefs 方案实现 方案一:chubaofs 方案二:事务方案 方案三:利用 KV 自带的分布式事务 Q&A 1. 是否需要实现跨文件系统的 rename 2:rename A→C (A 存在,而 C 存在) 4. 当 2 个操作的 dentry 属于同一个 copyset 有什么不一样? 背景 当前 curvefs 并没有实现 rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1) 删除 file1 等同 file1 的 inode id)。 关于 rename 接口的实现,主要调研了 chubaofs 和 juicefs,而 rename 的实现难点主要在于其原子性的保证。 方案调研 Chubaofs chubaofs 中的 rename 实现不是原子性的,它是通 用创建源文件的硬连接,然后删除源文件的方式来实现的,主要有以下 4 步 : 将源文件的 nlink 加一 创建目标文件的0 码力 | 15 页 | 555.93 KB | 6 月前3
基于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
2.7 Golang与高性能DSP竞价系统专业DSP解决⽅方案供应商 Golang与⾼高性能DSP竞价系统 By @QLeelulu 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved • RTB: Real-time Bidding,实时竞价,允许⼲⼴广告买家根据 活动⺫⽬目标、⺫⽬目标⼈人群以及费⽤用⻔门槛等因素对每⼀一个⼲⼴广告 及每次⼲⼴广告展⽰示的费⽤用进⾏行竞价。 其他更细致的过滤条件 100毫秒内要做些什么 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved 为什么选择Golang 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved • 2012-11-29 • 在 Go 1.1 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved • http包的HelloWorld性能测试 为什么选择Golang Via: http://www.cnblogs.com/QLeelulu/archive/2012/08/12/2635261.html 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司0 码力 | 51 页 | 5.09 MB | 1 年前3
Golang大规模云原生应用管理实践Golang⼤规模云原⽣应⽤管理实践 刘洋(炎寻) 关于我 • 毕业于中国科学技术大学,定居杭州 • 就职于阿里云-云原生应用平台团队 • Problem Solver,聚焦中间件,容器,Kubernetes,PaaS平台… • OAM社区成员 开局一张图 规模化应用交付效率对比去年 每万笔峰值交易的IT成本对比4年前 提升1倍 下降80% 云原生 技术 稳定 成本 效率 Custom controller Network plugins Storage plugins 统筹规划, 降低成本 自动化运维, 提升稳定性 非业务逻辑剥离, 提升交付效率 Golang与云原生生态(CNCF) 项目数占比: 214/1512(14.2%) Github star数占比:1265737 / 2458072(51.5%)市值占比: $8.08T/$19.46T(41 方法和系统,关注如何做事 “how” • 员工进入公司需要验证是一个策略,人脸识别是机制; • 从杭州到上海是策略,坐火车是机制; • 接口是策略,实现是机制; • 声明是策略,过程是机制; • 策略面向外部交互,机制面向内部实现; • 策略追求开放标准,机制追求稳定可复用; • 策略与机制要分离; • 策略与机制随着层次的变化而变化; 应用管理的策略与机制 应用 版本 工作负载0 码力 | 23 页 | 7.70 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













