摘要:
索引:https://waterflow.link/articles/1666019023270 在 Go 中,在块中声明的变量名可以在内部块中重新声明。 这种称为变量阴影的原理很容易出现常见错误。 以下示例显示了由于变量阴影而导致的意外副作用。 它以两种不同的方式获取课件信息,根据printLog 阅读全文
posted @ 2022-10-17 23:18
liuyuede123
阅读(68)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1665938704477 我们都知道当发起http请求的时候,服务端会返回一些http状态码,不管是成功还是失败。客户端可以根据服务端返回的状态码,判断服务器出现了哪些错误。 我们经常用到的比如下面这些: 200:OK, 阅读全文
posted @ 2022-10-17 14:12
liuyuede123
阅读(307)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1665853719750 当我们编写 HTTP 应用程序时,您可以使用 HTTP 中间件包装特定于路由的应用程序处理程序,可以在执行应用程序处理程序之前和之后执行一些常见的逻辑。 我们通常使用中间件来编写跨领域组件,例如 阅读全文
posted @ 2022-10-17 14:11
liuyuede123
阅读(253)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1665674508275 1、什么是grpc 在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法,就像它是本地对象一样,使您更容易创建分布式应用程序和服务。 与许多 RPC 系统一样,gRPC 阅读全文
posted @ 2022-10-17 14:11
liuyuede123
阅读(107)
评论(0)
推荐(0)
摘要:
01、索引 https://waterflow.link/articles/1665656761584 1、为什么跨域 跨域资源共享 (CORS) 是一种基于 HTTP 标头的机制,它允许服务器指示除其自身之外的任何来源(域、方案或端口),浏览器应允许从中加载资源。 CORS 还依赖于一种机制,浏览 阅读全文
posted @ 2022-10-17 14:10
liuyuede123
阅读(71)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1665239900004 1、串行执行 假如我们需要查询一个课件列表,其中有课件的信息,还有课件创建者的信息,和课件的缩略图信息。但是此时我们已经对服务做了拆分,假设有课件服务和用户服务还有文件服务。 我们通常的做法是, 阅读全文
posted @ 2022-10-17 14:10
liuyuede123
阅读(131)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1664591292871 1、tcp的3次握手(建立连接) 客户端的协议栈向服务器端发送了 SYN 包,并告诉服务器端当前发送序列号 j,客户端进入 SYNC_SENT 状态; 服务器端的协议栈收到这个包之后,和客户端进 阅读全文
posted @ 2022-10-17 14:09
liuyuede123
阅读(293)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1664943418972 文中提到的垃圾回收算法是基于go1.16之后的,让我们直接进入正题吧。 1、什么时候需要垃圾回收? Go 更喜欢在堆栈上分配内存,因此大多数内存分配最终都会在栈上。 这意味着 Go 每个 gor 阅读全文
posted @ 2022-10-17 14:09
liuyuede123
阅读(156)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1663921524839 通过使用一些通用代码来节省时间,而无需单独实现它们。以下是一些开发中经常会用到的函数实现的列表。 1、检查数组中元素是否存在 Golang 没有预定义的函数来检查数组中元素的存在。以下代码片段为 阅读全文
posted @ 2022-10-17 14:08
liuyuede123
阅读(84)
评论(0)
推荐(0)
摘要:
0.1、索引 https://waterflow.link/articles/1664080524986 1、未知的枚举值 我们现在定义一个类型是unit32的Status,他可以作为枚举类型,我们定义了3种状态 type Status uint32 const ( StatusOpen Statu 阅读全文
posted @ 2022-10-17 14:08
liuyuede123
阅读(119)
评论(0)
推荐(0)
摘要:
索引 https://waterflow.link/articles/1663835071801 当我在使用go-zero时,我看到了好多像下面这样的代码: ... type ( // RunOption defines the method to customize a Server. RunOp 阅读全文
posted @ 2022-10-17 14:07
liuyuede123
阅读(63)
评论(0)
推荐(0)
摘要:
0.1、索引 https://blog.waterflow.link/articles/1663772504649 RabbitMQ 是一个轻量级且易于部署的消息队列。它支持开箱即用的多种消息传递协议。我们将使用 AMQP(高级消息队列协议) 1、概念 既然是消息队列,顾名思义,肯定会有生产者生产消 阅读全文
posted @ 2022-10-17 14:07
liuyuede123
阅读(95)
评论(0)
推荐(0)
摘要:
0.1、索引 https://blog.waterflow.link/articles/1663688140724 1、简介 单元测试是测试代码、组件和模块的单元函数。单元测试的目的是清除代码中的错误,增加代码的稳定性,在更改代码时提供正确性。单元测试是软件测试的第一级,然后是集成测试和 ui 测试 阅读全文
posted @ 2022-10-17 14:06
liuyuede123
阅读(110)
评论(0)
推荐(0)
摘要:
0.1、索引 https://blog.waterflow.link/articles/1663551951058 1、for- select模式 这种模式通常用在从多个通道读取数据 package main import ( "fmt" "time" ) func main() { ch1, ch 阅读全文
posted @ 2022-10-17 14:06
liuyuede123
阅读(82)
评论(0)
推荐(0)
摘要:
0.1、索引 https://blog.waterflow.link/articles/1663078266267 当我们下载一个大文件的时候,会因为下载时间太久而超时或者出错。那么我么我们可以利用goroutine的特性并发分段的去请求下载资源。 1、Accept-Ranges 首先下载链接需要在 阅读全文
posted @ 2022-10-17 14:05
liuyuede123
阅读(45)
评论(0)
推荐(0)
摘要:
0.1、索引 https://blog.waterflow.link/articles/1663406367769 1、内存管理 内存管理是管理计算机内存的过程,在主存和磁盘之间移动进程以提高系统的整体性能。内存管理的基本要求是提供方法来根据程序的请求动态的将部分内存分配给程序,并在不需要时释放它以 阅读全文
posted @ 2022-10-17 14:05
liuyuede123
阅读(181)
评论(0)
推荐(0)
摘要:
0.1、索引 https://blog.waterflow.link/articles/1663169309611 1、只读缓存 只读缓存的流程是这样的: 当查询请求过来时,先从redis中查询数据,如果有的话就直接返回。如果没有的话,就从数据库查询,并写入到缓存中。 当删改请求过来时,会直接从数据 阅读全文
posted @ 2022-10-17 14:05
liuyuede123
阅读(116)
评论(0)
推荐(0)
摘要:
0、索引 go-zero docker-compose 搭建课件服务(九):http统一返回和集成日志服务 0.1源码地址 https://github.com/liuyuede123/go-zero-courseware 1、http统一返回 一般返回中会有code,message,data。当请 阅读全文
posted @ 2022-10-17 14:04
liuyuede123
阅读(211)
评论(0)
推荐(0)
摘要:
0.1、索引 https://blog.waterflow.link/articles/1662974432717 1、进程 一个进程包含可以由任何进程分配的公共资源。这些资源包括但不限于内存地址空间、文件句柄、设备和线程。 一个进程会包含下面一些属性: Process ID:进程ID Proces 阅读全文
posted @ 2022-10-17 14:04
liuyuede123
阅读(76)
评论(0)
推荐(0)
摘要:
0、转载 go-zero docker-compose 搭建课件服务(八):集成jaeger链路追踪 0.1源码地址 https://github.com/liuyuede123/go-zero-courseware 1、链路追踪 一个外部请求需要内部若干服务的联动响应,这时候完整的调用轨迹将跨越多 阅读全文
posted @ 2022-10-17 14:03
liuyuede123
阅读(164)
评论(0)
推荐(0)