登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

『簡體書』Go底层原理与工程化实践 李乐 陈雷

書城自編碼: 4008681
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 李乐陈雷
國際書號(ISBN): 9787111758266
出版社: 机械工业出版社
出版日期: 2024-07-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 515

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
中国书法的历程
《 中国书法的历程 》

售價:NT$ 406.0
汉语修辞学(第四版)(中华当代学术著作辑要)
《 汉语修辞学(第四版)(中华当代学术著作辑要) 》

售價:NT$ 718.0
中国近代画报大系·中国近代画报史稿
《 中国近代画报大系·中国近代画报史稿 》

售價:NT$ 822.0
思想地震:柄谷行人演讲集1995-2015(艺文志·日本思想)
《 思想地震:柄谷行人演讲集1995-2015(艺文志·日本思想) 》

售價:NT$ 302.0
大国人口
《 大国人口 》

售價:NT$ 411.0
何以中国·君臣:宋代士大夫政治下的权力场
《 何以中国·君臣:宋代士大夫政治下的权力场 》

售價:NT$ 510.0
文明的故事(全11卷-2024版)
《 文明的故事(全11卷-2024版) 》

售價:NT$ 11898.0
中国汽车综合测评技术研究报告 (2024)
《 中国汽车综合测评技术研究报告 (2024) 》

售價:NT$ 1040.0

編輯推薦:
1)知名企业资深Go开发专家联合撰写,从原理到实践,助你掌握Go语言精髓,授你项目实战经验 2)深入剖析Go语言的核心原理,从0到1带你实现高性能高可用的Go服务开发,详细介绍10多个线上典型问题以及解决思路
內容簡介:
全书分为2篇:1.第1篇详细介绍Go语言高性能优势是如何实现的,包括经典的GMP调度模型,Go语言调度器的实现,垃圾回收,以及如何基于管道、锁等并发编程。2.第二篇主要是项目实战,手把手带领读者从0开始搭建高性能、高稳定的Go服务。以及在面对线上问题时,如何调试、分析、解决。通过学习本书,读者对Go语言的核心——高并发会有一个深刻的认识,具备一定的Go并发编程经验,能够独立完成高性能、高稳定Go服务的架构设计,并且能够基于一些工具进行Go线上问题分析与性能调优。
關於作者:
作者简介
李乐:Golang开发专家,先后就职于滴滴出行、好未来,西安电子科技大学硕士,拥有多年互联网研发经验,合著有《Redis5设计与源码分析》。
陈雷:希望学产研负责人,清华大学本硕与北京邮电大学硕士,曾在百度、腾讯和滴滴等公司工作,拥有15年产品研发经验,合著有《PHP7底层设计与源码实现》。
目錄
目  录  Contents
前言
第1章 为什么要了解Go底层1
1.1 Go服务怎么出现502状态码了1
1.1.1 服务超时为什么导致502状态码1
1.1.2 基于context的超时控制4
1.2 Go服务为什么没响应了7
1.2.1 谁阻塞了协程7
1.2.2 写管道可以不阻塞协程吗10
1.3 Uber如何通过GC调优节约
   7万个内核11
1.3.1 GC概述11
1.3.2 Uber半自动化GC调优13
1.4 Go语言进阶路线15
1.4.1 Go语言快速入门16
1.4.2 Go高并发编程20
1.4.3 Go语言项目实战22
1.5 本章小结24
第2章 Go语言并发模型25
2.1 GMP调度模型25
2.1.1 Go语言并发编程入门25
2.1.2 GMP调度模型概述27
2.1.3 深入理解GMP调度模型30
2.2 协程管理33
2.2.1 基础补充33
2.2.2 协程创建37
2.2.3 协程切换40
2.2.4 协程栈会溢出吗42
2.2.5 协程退出45
2.3 调度器46
2.3.1 调度器实现原理46
2.3.2 时间片调度49
2.3.3 基于协作的抢占式调度52
2.3.4 基于信号的抢占式调度53
2.4 本章小结54
第3章 调度器触发时机55
3.1 网络I/O56
3.1.1 探索Go语言网络I/O56
3.1.2 Go语言网络I/O与调度器59
3.1.3 如何实现网络读写超时62
3.2 管道65
3.2.1 管道的基本用法65
3.2.2 管道与调度器67
3.3 定时器70
3.3.1 定时器的基本用法70
3.3.2 定时器与调度器73
3.4 系统调用75
3.4.1 系统调用会阻塞线程吗75
3.4.2 系统调用与调度器77
3.5 本章小结79
第4章 Go语言并发编程80
4.1 什么是并发问题80
4.2 CSP并发模型84
4.2.1 基于管道-协程的CSP模型84
4.2.2 管道与select关键字86
4.2.3 如何实现无限缓存管道89
4.3 基于锁的协程同步91
4.3.1 乐观锁91
4.3.2 悲观锁93
4.4 如何并发操作map95
4.4.1 map的并发问题96
4.4.2 并发散列表sync.Map98
4.5 并发控制sync.WaitGroup101
4.6 并发对象池sync. Pool103
4.7 如何实现单例模式104
4.8 并发检测105
4.9 本章小结106
第5章 GC原理、调度与调优108
5.1 内存管理108
5.1.1 如何设计动态内存分配器108
5.1.2 Go语言内存分配器110
5.1.3 Go语言内存管理111
5.1.4 内存逃逸113
5.2 三色标记与写屏障114
5.2.1 三色标记115
5.2.2 写屏障117
5.3 标记与清理119
5.3.1 垃圾回收执行阶段120
5.3.2 经典的stopTheWorld123
5.3.3 辅助标记125
5.3.4 内存清理127
5.4 GC调度与GC调优128
5.4.1 GC触发时机128
5.4.2 GC协程调度模式131
5.4.3 缓存框架bigcache中的
   GC调优133
5.5 本章小结135
第6章 手把手教你搭建Go项目136
6.1 Go项目架构设计 136
6.1.1 分层架构136
6.1.2 代码布局138
6.1.3 命令管理cobra140
6.1.4 配置管理Viper142
6.2 Web框架Gin145
6.2.1 RESTful API145
6.2.2 引入Gin框架146
6.2.3 中间件149
6.2.4 如何记录访问日志152
6.3 日志与全链路追踪154
6.3.1 引入日志框架Zap154
6.3.2 基于context的全链路追踪157
6.3.3 基于协程ID的全链路追踪159
6.4 访问数据库161
6.4.1 引入Gorm框架161
6.4.2 CURD165
6.4.3 事务170
6.4.4 如何记录Trace日志172
6.5 HTTP调用173
6.5.1 go-resty框架概述174
6.5.2 请求追踪176
6.5.3 长连接还是短连接178
6.5.4 如何记录Trace日志180
6.6 单元测试181
6.6.1 Go语言中的单元测试181
6.6.2 引入单元测试183
6.7 本章小结184
第7章 高性能Go服务开发186
7.1 分库分表186
7.1.1 分库分表基本原理186
7.1.2 基于Gorm的分表189
7.2 使用Redis缓存191
7.2.1 go-redis的基本操作191
7.2.2 基于Redis的性能优化193
7.3 使用本地缓存196
7.3.1 自己实现一个LRU缓存196
7.3.2 基于bigcache的性能优化198
7.4 资源复用200
7.4.1 协程复用之fasthttp200
7.4.2 连接复用之连接池203
7.4.3 对象复用之对象池205
7.5 其他207
7.5.1 异步化处理207
7.5.2 无锁编程209
7.6 本章小结210
第8章 高可用Go服务开发211
8.1 可用性定义与高可用三板斧 211
8.1.1 可用性定义211
8.1.2 高可用三板斧213
8.2 流量治理组件Sentinel215
8.2.1 Sentinel快速入门215
8.2.2 流量控制218
8.2.3 系统自适应流量控制220
8.2.4 熔断降级222
8.2.5 Sentinel原理浅析224
8.3 Go服务监控225
8
內容試閱
Preface 前  言
为什么要写这本书
Go语言是目前非常受欢迎的语言之一,具有入门快、性能高、开发效率高等特点,越来越多的互联网企业开始使用Go语言。云原生体系中的Kubernetes、Docker等开源项目也都是基于Go语言开发的,因此想要深入研究云原生技术,就必须精通Go语言。
但是,大多数Go开发者往往只是做一些简单的增删改查,始终徘徊在Go初级阶段。想要进一步掌握Go语言,最快的方法就是原理与实战相结合,这也是本书写作的初衷。
本书首先对Go语言的核心原理进行详细介绍,其次分享大量的Go项目实战经验与技巧,希望读者能够从中有所收获。
本书特色
提供Go高并发特性与并发编程常用技巧:本书对Go语言的核心原理,包括并发模型、调度器、垃圾回收、并发编程等进行了详细介绍。
应对大部分业务场景:本书在讲解项目实战时,并没有停留在简单的增删改查层面,而是分享了很多Go项目开发经验,包括常用开源框架的使用技巧与核心原理、高性能与高可用的Go服务开发,以及Go服务平滑升级等。
给出线上问题处理方案:本书列举了10多个线上典型问题并讲解了这些问题的解决思路,这些问题都是Go语言初学者经常遇到的,相信读者能够从中吸取经验,总结出一套属于自己的方法论。
引入“问题-思考-探索”模式:本书在讲解Go语言核心原理以及项目实战时,尽可能从问题出发,引导读者主动思考、主动探索,以便读者对所学知识有更深入的理解。
读者对象
Go开发工程师
对Go语言感兴趣的读者
如何阅读本书
本书共12章。
第1章 先以3个具体的案例为切入点,说明深入学习Go语言的必要性,然后从原理与实战两个维度分享Go语言进阶路线。
第2章 详细介绍经典的GMP调度模型,其中重点介绍了协程以及调度器的实现原理,以便读者掌握Go并发模型。
第3章 主要介绍网络I/O、管道、定时器以及系统调用是如何触发调度的。
第4章 详细介绍Go语言的几种常见多协程同步方案,包括基于管道的协程同步、基于锁的协程同步,以及非常有用的并发检测工具race。
第5章 重点讲解Go语言GC(垃圾回收)的实现原理,包括三色标记法与写屏障技术、标记过程与清理过程、GC调度与GC调优。
第6章 首先以经典的商城项目为例,带领读者从0到1搭建一个完整的Go项目。其次重点介绍常用开源框架的使用技巧,包括Web框架Gin、日志框架Zap与全链路追踪、数据库访问框架Gorm、HTTP客户端框架go-resty、单元测试等。
第7章 详细介绍高性能Go服务开发的常用方案,包括分库分表、缓存,以及资源复用、异步化处理、无锁编程等。
第8章 详细介绍高可用Go服务开发的常用方案,包括流量治理、Go服务监控、超时控制以及错误处理。
第9章 首先介绍微服务架构的基本概念,其次选取目前比较流行的一款微服务框架Kitex,讲解它是如何实现微服务架构以及服务治理的。
第10章 首先介绍为什么Go服务升级会导致502状态码,其次讲解如何基于开源框架gracehttp实现Go服务平滑升级。
第11章 首先讲解使用Go语言性能分析利器pprof、Trace分析Go服务性能指标的技巧,其次介绍Go语言专用的调试工具dlv。
第12章 列举10多个线上问题并讲解这些问题的解决思路,包括Go服务502问题、并发问题、HTTP服务假死问题等,希望读者在以后的开发工作中能够避免类似的问题发生,或者在遇到类似的线上问题时能够从容应对。
读者可以根据自己的兴趣及需要,选择阅读相关章节。
勘误和支持
由于水平有限,再加上编写时间仓促,书中难免会出现不准确的地方,恳请读者批评指正。如果读者有更多的宝贵意见,欢迎访问https://segmentfault.com/u/lishuo0进行专题讨论,我们会尽量在线上为读者提供解答。同时,读者也可以通过邮箱lieshuoa@163.com联系我们。期待得到读者的反馈,让我们在技术之路上互勉共进。
李 乐

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.