1

《Go 语言高并发与微服务实战》 读书笔记

 1 year ago
source link: https://einverne.github.io/post/2022/10/golang-micro-serivce.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

楼下刚开了一个图书室,第一天逛的时候恰好看到这一本就借了回来粗读了一下,没有料想的好,不过至少可以对 Golang 构建一个微服务应用有一个初步的了解,也顺带了解一下 Golang 周边相关的模块,Web 框架,ORM 框架,以及一些必要组件,注册中心,网关等等。书中在中后部分出现了大量的代码部分,我没有仔细看,直接跳过了。总之读起来这一本书虽然介绍了很多的组件,原理,但都是类似 Wiki ,都没有很深入,比较适合我这样想要初步了解一下 Golang 的人,如果已经是 Golang 的使用者跳过这一本书即可。

第二章 微服务概述

微服务是一种架构模式,提倡将单一应用划分成一组小的服务,服务之间相互协调配合,为用户提供最终价值。

每个微服务只关注于完成单一职责。

  • 系统架构演进
    • SOA 面向服务架构
    • 微服务架构
    • 云原生架构
  • 常见的微服务架构
    • Java 中的 Spring Cloud 和 Dubbo 框架
    • Go 中的 Go Kit 和 Go Micro
  • 六大原则:
    • 高内聚低耦合
    • 高度自治
      • 独立开发、部署、发布
    • 日志与监控
    • 以业务为中心

第三章 Go 语言基础

[[golang]]

  • 基础语法
    • 指针
      • [[golang-flag]]
    • 常量与类型别名
    • 分支与循环控制
  • 容器
    • 列表与字典
  • 函数与接口
    • 函数声明和参数传递
    • 匿名函数和闭包
    • 接口声明和嵌套
    • 函数体实现接口
  • 结构体和方法
    • 结构体定义
    • 结构体实例化和初始化
    • 方法和接收器
    • 结构体实现接口
    • 内嵌和组合

第四章 Go 语言高级特性

  • 依赖管理
    • GOPATH
    • Go Modules
  • 反射基础
    • reflect.Type 类型对象
    • 类型对象 reflect.StructField 和 reflect.Method
    • reflect.Value 反射值对象
  • 并发模型
    • 并发与并行
    • CSP 并发模型
    • 常见线程模型
    • MPG 线程模型
  • 并发实践
    • 协程 goroutine
    • 通道 channel

第五章 Go Web

  • Web 工作原理
    • HTTP 协议
      • 在 TCP 协议之上
  • 访问 Web 站点的过程
    • URL -> DNS -> IP -> TCP 链接 -> HTTP Request -> Web 服务器处理 -> HTTP Response -> 渲染 -> 展示 -> 断开 TCP 连接
  • 使用 Go 语言构建服务器
    • http 模块可以快速建立 Web 服务程序
  • 接收和处理请求
  • [[Gin]] Web 框架
  • 数据存储
    • database/sql 接口
    • MySQL 数据库
  • Golang ORM 框架 [[beego]]

第六章 服务注册与发现

  • 服务注册与发现的基本原理
    • 服务注册与发现中心的职责
    • 服务实例注册服务信息
    • CAP 原理
  • 常用的服务注册与发现框架
    • Raft 算法的 Consul
    • 基于 HTTP 的 key/value 存储 Etcd
    • Zookeeper
  • Consul

第七章 RPC

  • RPC 机制和实现过程
    • RPC 机制
    • 通信协议制定
    • 出错和超时处理
    • RPC 接口
  • 简易 Go 原生 RPC
  • 高性能 gRPC
  • Go-kit RPC

第八章 分布式配置中心

  • 常见分布式配置中心
    • Spring Cloud Config
    • Apollo
    • Disconf
  • Spring Cloud Config
  • 配置热更新
  • 配置信息加解密

第九章 微服务网关

  • API 网关
    • Nginx
    • Netflix Zuul
    • Mashape Kong
  • Kong 接入
  • Kong 插件
    • 跨域身份验证 JWT 认证插件
    • Prometheus 可视化监控
    • Zipkin 实时链路数据追踪
    • 自定义 Kong 插件

第十章 微服务的容错处理与负载均衡

  • 服务熔断
    • 分布式系统中的服务雪崩
    • 熔断保障系统可用性
  • 负载均衡
    • 负载均衡类型
    • 负载均衡算法
  • Hystrix 监控面板

第十一章 统一认证与授权

  • 常见的认证和授权方案
    • OAuth2
    • 数据共享的分布式 Session
    • 安全传输对象 JWT
  • 基于 OAuth2 协议和 JWT 实现简单的认证和授权系统

第十二章 分布式链路追踪

  • 诊断分布式系统问题
    • 为什么需要分布式链路追踪
    • 什么是分布式链路追踪
    • OpenTracing
  • 流行的分布式链路追踪组件
    • Twitter Zipkin
    • Uber Jaeger
    • SkyWalking
    • Pinpoint
  • Zipkin 追踪 Go 微服务

第十三章 秒杀系统的设计和实现

  • 秒杀系统
    • 解决问题:
      • 传输数据尽量少
      • 请求数尽量少
      • 路径短,发出请求到返回响应过程
      • 依赖尽量少,完成一次请求需要依赖的系统服务
      • 不要有单点
    • 系统设计:
      • 静态页面,CDN
      • 应用服务器需要有限流和熔断机制 Hystrix
  • 微服务脚手架
    • 服务注册和发现
    • 负载均衡策略
    • RPC 客户端
    • Go Redis
    • Zookeeper 集成
    • Go-kit 开发利器 Truss
  • 秒杀核心逻辑

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK