返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 正版新书]GO底层原理与工程化实践李乐,陈雷 著9787111758266
  • 全店均为全新正版书籍,欢迎选购!新疆西藏青海(可包挂刷).港澳台及海外地区bu bao快递
    • 作者: 李乐,陈雷 著著 | 李乐,陈雷 著编 | 李乐,陈雷 著译 | 李乐,陈雷 著绘
    • 出版社: 机械工业出版社
    • 出版时间:2024-07-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    君凤文轩图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 李乐,陈雷 著著| 李乐,陈雷 著编| 李乐,陈雷 著译| 李乐,陈雷 著绘
    • 出版社:机械工业出版社
    • 出版时间:2024-07-01
    • 版次:1
    • 印次:1
    • 字数:433000
    • 页数:640
    • 开本:32开
    • ISBN:9787111758266
    • 版权提供:机械工业出版社
  • 作者: 李乐,陈雷 著
  • 著: 李乐,陈雷 著 译
  • 装帧: 平装
  • 印次: 1
  • 定价: 99
  • ISBN: 9787111758266
  • 出版社: 机械工业出版社
  • 开本: 32开
  • 印刷时间: 暂无
  • 语种: 暂无
  • 出版时间: 2024-07-01
  • 页数: 640
  • 外部编号: 庄村26467
  • 版次: 1
  • 成品尺寸: 暂无
  • 目    录    Contents<br />前言<br />第1章  为什么要了解Go底层1<br />1.1  Go服务怎么出现502状态码了1<br />1.1.1  服务超时为什么导致502状态码1<br />1.1.2  基于context的超时控制4<br />1.2  Go服务为什么没响应了7<br />1.2.1  谁阻塞了协程7<br />1.2.2  写管道可以不阻塞协程吗10<br />1.3  Uber如何通过GC调优节约<br />     7万个内核11<br />1.3.1  GC概述11<br />1.3.2  Uber半自动化GC调优13<br />1.4  Go语言进阶路线15<br />1.4.1  Go语言快速入门16<br />1.4.2  Go高并发编程20<br />1.4.3  Go语言项目实战22<br />1.5  本章小结24<br />第2章  Go语言并发模型25<br />2.1  GMP调度模型25<br />2.1.1  Go语言并发编程入门25<br />2.1.2  GMP调度模型概述27<br />2.1.3  深入理解GMP调度模型30<br />2.2  协程管理33<br />2.2.1  基础补充33<br />2.2.2  协程创建37<br />2.2.3  协程切换40<br />2.2.4  协程栈会溢出吗42<br />2.2.5  协程退出45<br />2.3  调度器46<br />2.3.1  调度器实现原理46<br />2.3.2  时间片调度49<br />2.3.3  基于协作的抢占式调度52<br />2.3.4  基于信号的抢占式调度53<br />2.4  本章小结54<br />第3章  调度器触发时机55<br />3.1  网络I/O56<br />3.1.1  探索Go语言网络I/O56<br />3.1.2  Go语言网络I/O与调度器59<br />3.1.3  如何实现网络读写超时62<br />3.2  管道65<br />3.2.1  管道的基本用法65<br />3.2.2  管道与调度器67<br />3.3  定时器70<br />3.3.1  定时器的基本用法70<br />3.3.2  定时器与调度器73<br />3.4  系统调用75<br />3.4.1  系统调用会阻塞线程吗75<br />3.4.2  系统调用与调度器77<br />3.5  本章小结79<br />第4章  Go语言并发编程80<br />4.1  什么是并发问题80<br />4.2  CSP并发模型84<br />4.2.1  基于管道-协程的CSP模型84<br />4.2.2  管道与select关键字86<br />4.2.3  如何实现无限缓存管道89<br />4.3  基于锁的协程同步91<br />4.3.1  乐观锁91<br />4.3.2  悲观锁93<br />4.4  如何并发操作map95<br />4.4.1  map的并发问题96<br />4.4.2  并发散列表sync.Map98<br />4.5  并发控制sync.WaitGroup101<br />4.6  并发对象池sync. Pool103<br />4.7  如何实现单例模式104<br />4.8  并发检测105<br />4.9  本章小结106<br />第5章  GC原理、调度与调优108<br />5.1  内存管理108<br />5.1.1  如何设计动态内存分配器108<br />5.1.2  Go语言内存分配器110<br />5.1.3  Go语言内存管理111<br />5.1.4  内存逃逸113<br />5.2  三色标记与写屏障114<br />5.2.1  三色标记115<br />5.2.2  写屏障117<br />5.3  标记与清理119<br />5.3.1  垃圾回收执行阶段120<br />5.3.2  经典的stopTheWorld123<br />5.3.3  辅助标记125<br />5.3.4  内存清理127<br />5.4  GC调度与GC调优128<br />5.4.1  GC触发时机128<br />5.4.2  GC协程调度模式131<br />5.4.3  缓存框架bigcache中的<br />    GC调优133<br />5.5  本章小结135<br />第6章  手把手教你搭建Go项目136<br />6.1  Go项目架构设计 136<br />6.1.1  分层架构136<br />6.1.2  代码布局138<br />6.1.3  命令管理cobra140<br />6.1.4  配置管理Viper142<br />6.2  Web框架Gin145<br />6.2.1  RESTful API145<br />6.2.2  引入Gin框架146<br />6.2.3  中间件149<br />6.2.4  如何记录访问日志152<br />6.3  日志与全链路追踪154<br />6.3.1  引入日志框架Zap154<br />6.3.2  基于context的全链路追踪157<br />6.3.3  基于协程ID的全链路追踪159<br />6.4  访问数据库161<br />6.4.1  引入Gorm框架161<br />6.4.2  CURD165<br />6.4.3  事务170<br />6.4.4  如何记录Trace日志172<br />6.5  HTTP调用173<br />6.5.1  go-resty框架概述174<br />6.5.2  请求追踪176<br />6.5.3  长连接还是短连接178<br />6.5.4  如何记录Trace日志180<br />6.6  单元测试181<br />6.6.1  Go语言中的单元测试181<br />6.6.2  引入单元测试183<br />6.7  本章小结184<br />第7章  高性能Go服务开发186<br />7.1  分库分表186<br />7.1.1  分库分表基本原理186<br />7.1.2  基于Gorm的分表189<br />7.2  使用Redis缓存191<br />7.2.1  go-redis的基本操作191<br />7.2.2  基于Redis的性能优化193<br />7.3  使用本地缓存196<br />7.3.1  自己实现一个LRU缓存196<br />7.3.2  基于bigcache的性能优化198<br />7.4  资源复用200<br />7.4.1  协程复用之fasthttp200<br />7.4.2  连接复用之连接池203<br />7.4.3  对象复用之对象池205<br />7.5  其他207<br />7.5.1  异步化处理207<br />7.5.2  无锁编程209<br />7.6  本章小结210<br />第8章  高可用Go服务开发211<br />8.1  可用性定义与高可用三板斧 211<br />8.1.1  可用性定义211<br />8.1.2  高可用三板斧213<br />8.2  流量治理组件Sentinel215<br />8.2.1  Sentinel快速入门215<br />8.2.2  流量控制218<br />8.2.3  系统自适应流量控制220<br />8.2.4  熔断降级222<br />8.2.5  Sentinel原理浅析224<br />8.3  Go服务监控225<br />8.3.1  运行时监控225<br />8.3.2  自定义监控228<br />8.4  其他231<br />8.4.1  超时控制231<br />8.4.2  错误处理234<br />8.5  本章小结236<br />第9章  Go语言微服务入门238<br />9.1  Go语言RPC标准库238<br />9.1.1  使用入门238<br />9.1.2  原理浅析240<br />9.2  微服务框架Kitex242<br />9.2.1  使用入门243<br />9.2.2  可扩展性245<br />9.2.3  服务治理248<br />9.3  本章小结250<br />第10章  实现Go服务平滑升级251<br />10.1  服务升级导致502状态码251<br />10.2  Go语言信号处理框架252<br />10.3  Go服务平滑退出256<br />10.4  基于gracehttp的Go服务<br />    平滑升级258<br />10.5  本章小结261<br />第11章  Go服务调试262<br />11.1  Go程序分析利器pprof262<br />11.1.1  pprof概述262<br />11.1.2  内存指标分析264<br />11.1.3  CPU指标分析266<br />11.1.4  锁与阻塞指标分析268<br />11.2  性能分析工具Trace269<br />11.3  使用dlv调试Go程序270<br />11.3.1  Go语言调试工具dlv271<br />11.3.2  dlv调试实战272<br />11.4  本章小结276<br />第12章  线上服务实战278<br />12.1  两种导致502状态码的情况278<br />12.1.1  panic异常278<br />12.1.2  长连接为什么会导致502<br />    状态码284<br />12.2  意想不到的并发问题287<br />12.2.1  并发问题引起的JSON<br />    序列化异常287<br />12.2.2  并发问题引起的服务<br />    发现故障290<br />12.3  HTTP服务假死问题292<br />12.3.1  写日志阻塞请求293<br />12.3.2  防缓存穿透组件导致的<br />    服务死锁295<br />12.4  HTTP客户端引发的问题297<br />12.4.1  长连接还是短连接297<br />12.4.2  偶现Connection reset by<br />    peer问题299<br />12.5  类型不匹配导致的线上问题301<br />12.5.1  一个双引号引起的线上事故301<br />12.5.2  自定义JSON序列化与<br />    反序列化302<br />12.6  其他问题305<br />12.6.1  怎么总是空指针异常305<br />12.6.2  诡异的超时问题307<br />12.7  本章小结309

    1)知名企业资深Go开发专家联合撰写,从原理到实践,助你掌握Go语言精髓,授你项目实战经验
    2)深入剖析Go语言的核心原理,从0到1带你实现高性能高可用的Go服务开发,详细介绍10多个线上典型问题以及解决思路

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购