Golang Warsaw #54
Golang Warsaw #54 26 October 2023 – 18:30 7N, Puławska 182, WarszawaHostSponsorsAgenda 1. Go-first End to End Tests for Highly Stateful Features - Kuba Martin 2. Break / Your announcements (OpenSource Jakub Daliga, Lukasz Gut 4. Afterparty, slowly moving to a place close byLooking for speakers! • Golang specifics • Software engineering (implement/use/best practices) • Tech leadership and/or management jakubdal@gmail.com, wbarczynski@gmail.com Twitter/X: @golangwaw Slides: github.com/golangpoland/meetup_golang_warsaw Job Board: facebook.com/groups/golangpolandjobsQuestions? Join channel #poland on gophers0 码力 | 7 页 | 1.66 MB | 5 月前3Golang Warsaw #54
Golang Warsaw #54 26 October 2023 – 18:30 7N, Puławska 182, WarszawaHostSponsorsAgenda 1. Go-first End to End Tests for Highly Stateful Features - Kuba Martin 2. Break / Your announcements (OpenSource Jakub Daliga, Lukasz Gut 4. Afterparty, slowly moving to a place close byLooking for speakers! • Golang specifics • Software engineering (implement/use/best practices) • Tech leadership and/or management jakubdal@gmail.com, wbarczynski@gmail.com Twitter/X: @golangwaw Slides: github.com/golangpoland/meetup_golang_warsaw Job Board: facebook.com/groups/golangpolandjobsQuestions? Join channel #poland on gophers0 码力 | 7 页 | 833.54 KB | 5 月前3Golang Warsaw #53
Golang Warsaw #53 20 September 2023 – 18:30 Connectis_ (Varso Place), Chmielna 71, WarszawaHostSponsorsAgenda 1. Transitioning to Go - Robert Pajak 2. Break / Your announcements (OpenSource, event Kovalov 4. Afterparty, slowly moving to a place close byJoin Slido for Q&ALooking for speakers! • Golang specifics • Software engineering (implement/use/best practices) • Tech leadership and/or management jakubdal@gmail.com, wbarczynski@gmail.com Twitter/X: @golangwaw Slides: github.com/golangpoland/meetup_golang_warsaw Job Board: facebook.com/groups/golangpolandjobsQuestions? Join channel #poland on gophers0 码力 | 8 页 | 1.63 MB | 5 月前3Golang Warsaw #55
Golang Warsaw #55 24 January 2024 – 18:00 Okta – Koszykowa 61, WarsawHostSponsorsAgenda 1. Go-first End to End Tests for Highly Stateful Features - Kuba Martin 2. Break / Your announcements (OpenSource Jakub Daliga, Lukasz Gut 4. Afterparty, slowly moving to a place close byLooking for speakers! • Golang specifics • Software engineering (implement/use/best practices) • Tech leadership and/or management jakubdal@gmail.com, wbarczynski@gmail.com Twitter/X: @golangwaw Slides: github.com/golangpoland/meetup_golang_warsaw Job Board: facebook.com/groups/golangpolandjobsQuestions? Join channel #poland on gophers0 码力 | 7 页 | 1.34 MB | 5 月前3Golang Warsaw #53
Golang Warsaw #53 20 September 2023 – 18:30 Connectis_ (Varso Place), Chmielna 71, WarszawaHostSponsorsAgenda 1. Transitioning to Go - Robert Pajak 2. Break / Your announcements (OpenSource, event Kovalov 4. Afterparty, slowly moving to a place close byJoin Slido for Q&ALooking for speakers! • Golang specifics • Software engineering (implement/use/best practices) • Tech leadership and/or management jakubdal@gmail.com, wbarczynski@gmail.com Twitter/X: @golangwaw Slides: github.com/golangpoland/meetup_golang_warsaw Job Board: facebook.com/groups/golangpolandjobsQuestions? Join channel #poland on gophers0 码力 | 8 页 | 821.41 KB | 4 月前37 Years of Talking to People: The Importance of Giving Talks in Golang Warsaw #59
smallest: 3 people largest: 100k+ people working with people from 3 continents 5 talks given on Golang Warsaw (this is 6th) co-organizing the eventthis talk part 0: who am I part 1: philosophical0 码力 | 26 页 | 3.20 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
trust网络安全趋势 Ø异构语言体系融合 • SOFA/NodeJS/C++/Python/.. • 业务低成本融入服务,运维体系为什么要自研Golang版本ServiceMesh 2 Ø跨团队协作需要考虑技术栈落地成本 ü 参与团队分别使用C,Golang,Java等多种技术栈 Ø基于蚂蚁SOFA体系的Mesh化思考 ü 无法保证上下游应用同时升级到Mesh模式 ü 基于RPC内容的流量调度 基于RPC内容的流量调度 ü 升级窗口有限,方案必须简单高效 Ø运维体系,容器化建设等方面适配 ü 蚂蚁运维架构建立在流量调度的基础上 ü 容器管理平台更替快速进行中 ØGolang 性能,成本评估符合蚂蚁实际需求2 构架SOFAMesh 1SOFAMosn 2SOFAMosn内数据流 3NET/IO 4 Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 内存使用率提升,arena 区内存申请频率低,大小更小 üMheap 申请系统内存减少约60%内存 3 ØSLAB-style buffer pool ü减少内存 copy ü压测场景下内存复用率90% ØGolang 内存模型亲和 üP中 mcache 缓存小于 32K 的小内存块,最大 2M ü小内存分配顺序 Pmcache -> mcentral -> mheap -> arena ü大于 32K 的大内存分配顺序0 码力 | 44 页 | 4.51 MB | 5 月前3大规模微服务架构下的Service Mesh探索之路
公司和产品在社区知名度和影响力有限国内公司的选择之一:自研 华为:CES Mesher • 使用Golang编写 • 由go chassis演进而来 • 走的是已有类库->加proxy->再加 控制平面的路线 • 部分对接Istio • 细节暂时不清楚,即将开源 新浪微博:Motan Mesh • 也是使用Golang编写 • 全新实现(原有类库是基于Java) 老成持重的稳健思路:以proxy为切入口,第 没有提供和侵入式框架互通的解决方案Sofa Mesh:istio的增强扩展版 Pilot Auth Mixer Envoy Pilot Auth Mixer Golang Sidecar Istio现有架构 Sofa Mesh架构 1. 用Golang开发 Sidecar,替代Envoy 2. Mixer被部分合 并进入Sidecar 3. Pilot/Auth 做扩展和增强 Control plane plane Control plane Data plane Data plane Mixer架构设计 Architect2Golang版Sidecar Pilot Auth Golang Sidecar Mixer XDS API Mixer Service HTTP/1.1 HTTP/2 Sofa RPC ü 参照Envoy的设计 ü 实现XDS API ü 兼容Istio0 码力 | 37 页 | 7.99 MB | 5 月前3SOFAMOSN持续演进路径及实践分享
载ISTIO使用,服务各类 场景 • Rust实现 • CNCF项目,最早的 Service Mesh数据平面 • 开发活跃,最新版为 18.9.1 • Golang实现 • 新生项目,初期旨在搭建 RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMO – 长连接网关RawEpoll模式 经典Golang netpoll模型 ² 问题:协程数量与链接数量成正比,大 量链接场景下,协程数量过多 u Stack内存开销 u Read buffer开销 u Runtime调度开销 参考阅读:million-websockets-and-go Netpoll implmented in Golang runtime conn goroutine RawEpoll模式:使用epoll感知到可读事件之后,再从协程池中为其分配协程进行处理。 大幅减少goroutine实例数量,从而降低内存、调度开销 Netpoll implmented in Golang runtime conn.read conn …… 调度切换/就绪通知 3.请求处理过程中,协程调度 与经典netpoll模式一致 Raw Epoll goroutine pool0 码力 | 29 页 | 7.03 MB | 5 月前3Reflection Based Libraries to Look Forward To
wrapped copy Attributes: x <__main__.MyClass object at 0x7f1a9 1 2 3 4 5 6 7 8 9 10 11 13GoLang 14Golang is a compiled but duck-typed language Well, structurally typed, but close enough Runtime compile time constructs Provides a package reflect to get “reflection values”. Reflecting GoLang 15Reflecting GoLang type T struct { A string B int } t := T{"CppCon!", 24} s := reflect.ValueOf(&t) the type Customizing the default behavior *mentioned in P2911 52One of my favorite features from Golang Adding information at the point of definition Has its place, as opposed to adding code at the time0 码力 | 118 页 | 14.33 MB | 5 月前3
共 39 条
- 1
- 2
- 3
- 4