1.5go微服务实战(go语言基础)---并发编程

enlyhua enlyhua     2022-10-23     180

关键词:

第5章 并发编程 
	Go语言的多线程是基于消息传递的,Go语言将基于CSP模型的并发编程内置到了语言中,其特点就是goroutine之间是共享内存的。

5.1 协程 
	协程是Go语言特有的一种轻量级线程,实际上,所有的Go语言都是通过goroutine运行的。

	5.1.1 核心概念 
		进程:是指具有一定功能的程序关于某数据集合上的一次执行过程,主要包含程序指令和数据。
		线程:进场的子集,是由进程创建的拥有自己控制流和栈的轻量级实体,一个进程至少有一个线程。线程是进程的实际存在。
		goroutine:是Go语言并发程序的最小执行单位,可以理解为goroutine运行在操作系统的线程之上,它更为轻量。

	5.1.2 goroutine的基本使用 
	5.1.3 sync.WaitGroup 

5.2 通道 
	通道是Go语言提供的一种在goroutine之间进行数据传输的通信机制。当然,通过channel传递的数据只能是一些指定的类型,这些类型被称为
通道的元素类型。

	5.2.1 channel写入数据 
	5.2.2 channel接收数据 
	5.2.3 以channel作为函数参数 
		无缓存的channel的特点就是同步,一个channel写入数据后,如果没有其他goroutine读取,则通道一直阻塞。

	5.2.4 缓存channel 
	5.2.5 select 
	5.2.6 超时检查 
		select 可以很方便的完成goroutine的超时检查。超时就是指某个goroutine由于意外退出,导致另一方的goroutine阻塞,从而影响
	主goroutine。

		当goroutine向某个无缓存通道发送数据,而没有其他goroutine从该无缓存通道接收数据时,发送的goroutine就会阻塞,这种情况叫
	goroutine泄露。goroutine泄露是造成超时的最常见原因。

		超时检查,技术上使用的是 select + time.After() 来实现的。

5.3 pipeline 

11.go语言高并发与微服务实战---统一认证与授权

统一认证与授权:        查看详情

12.go语言高并发与微服务实战---分布式链路追踪

分布式链路追踪:      查看详情

12.go语言高并发与微服务实战---分布式链路追踪

分布式链路追踪:      查看详情

4.go语言高并发与微服务实战---go语言高级特性

第4章进阶——Go语言高级特性 Go语音是一门静态强类型的语言,在程序编译的过程中会把变量的反射信息如字段类型、类型信息等写到可执行文件中。在程序执行过程中,Go语音虚拟机加载可执行文件中变量的反射信息,并提供... 查看详情

4.go语言高并发与微服务实战---go语言高级特性

第4章进阶——Go语言高级特性 Go语音是一门静态强类型的语言,在程序编译的过程中会把变量的反射信息如字段类型、类型信息等写到可执行文件中。在程序执行过程中,Go语音虚拟机加载可执行文件中变量的反射信息,并提供... 查看详情

2.9go微服务实战(go语言基础)---goweb编程

第9章 GoWeb编程9.1 net/http包 9.1.1 GoWeb工作的基本原理 9.1.2 http详解9.2 Web框架 9.2.1 选择框架 9.2.2 httprouter框架9.3 Web底层服务 9.3.1 Scoket简介 9.3.2 TCPSocket 9.3.3 UDPSocket 9.3.4 WebSocket9.4 中间件 9.4.1 基本用法 9.4.2 进阶... 查看详情

1.1go微服务实战(go语言基础)---go语言程序基础

第1章 Go语言程序基础1.1 Hello,World!1.2 变量、指针及赋值 1.2.1 变量和常量 1.2.2 指针 1.2.3 赋值1.3 包及作用域1.4 选择和循环1.5 垃圾回收     查看详情

2.go语言高并发与微服务实战---微服务概述

第2章微服务概述2.1系统架构的演进 2.1.1单体架构 2.1.2垂直分层架构 2.1.3SOA面向服务架构 2.1.4微服务架构 2.1.5云原生架构2.2常见的微服务框架 2.2.1Java中的SpringCloud与Dubbo框架 2.2.2Go语言中的GoKit与GoMicro框架2.3微服务设计的六大原则 ... 查看详情

2.go语言高并发与微服务实战---微服务概述

第2章微服务概述2.1系统架构的演进 2.1.1单体架构 2.1.2垂直分层架构 2.1.3SOA面向服务架构 2.1.4微服务架构 2.1.5云原生架构2.2常见的微服务框架 2.2.1Java中的SpringCloud与Dubbo框架 2.2.2Go语言中的GoKit与GoMicro框架2.3微服务设计的六大原则 ... 查看详情

8.go语言高并发与微服务实战---分布式配置中心

第8章分布式配置中心8.1如何管理分布式应用的配置8.2常见分布式配置中心开源组件 8.2.1SpringCloudConfig. 8.2.2Apollo 8.2.3Disconf 8.2.4分布式配置中心的对比8.3应用SpringCloudConfig统一管理配置 8.3.1搭建SpringCloudConfigServer 8.3.2Viper介绍 【实例... 查看详情

1.go语言高并发与微服务实战---云原生架构

...原生的定义 1.2.3云原生与12因素1.3云原生的基础架构 1.3.1微服务 1.3.2容器 1.3.3服务网格 1.3.4DevOps    &n 查看详情

1.go语言高并发与微服务实战---云原生架构

...原生的定义 1.2.3云原生与12因素1.3云原生的基础架构 1.3.1微服务 1.3.2容器 1.3.3服务网格 1.3.4DevOps    &n 查看详情

9.go语言高并发与微服务实战---微服务网关

第9章微服务网关 在微服务架构下,单体应用被切割成多个微服务,如果将所有的微服务直接对外暴露,势必会出现一些问题。客户端可以直接向每个微服务 发送请求,但是会存在如下问题: 1.客户端需求和每个微服务暴露的... 查看详情

13.go语言高并发与微服务实战---综合实战:秒杀系统的设计与实现

13.综合实战:秒杀系统的设计与实现 秒杀系统设计原则: 1.数据要尽量少 2.请求数尽量少 3.路径要尽量短 4.依赖要尽量少 5.尽量不要有单点       查看详情

13.go语言高并发与微服务实战---综合实战:秒杀系统的设计与实现

13.综合实战:秒杀系统的设计与实现 秒杀系统设计原则: 1.数据要尽量少 2.请求数尽量少 3.路径要尽量短 4.依赖要尽量少 5.尽量不要有单点       查看详情

10.go语言高并发与微服务实战---微服务的容错处理与负载均衡

第10章微服务的容错处理与负载均衡10.1服务熔断 10.1.1分布式系统中的服务雪崩 10.1.2服务熔断保障系统可用性 10.1.3断路器10.2负载均衡 1.负载均衡类型 2.负载均衡算法      查看详情

6.go语言高并发与微服务实战---服务注册与发现

第6章服务注册与发现6.1服务注册与发现的基本原理 6.1.1服务注册与发现中心的职责 6.1.2服务实例注册服务信息 6.1.3CAP原理6.2常用的服务注册与发现框架 6.2.1基于Raft算法的开箱即用服务发现组件Consul 6.2.2基于HTTP协议的分布式key/Va... 查看详情

7.go语言高并发与微服务实战---远程过程调用rpc

第7章远程过程调用RPC7.1RPC机制和实现过程 7.1.1RPC机制 1.客户端进程以正常的方式调用客户存根 2.客户存根生成一个消息,然后调用本地操作系统的网络模块,存根进入阻塞状态 3.客户端操作系统将网络消息发送给远程操作系... 查看详情