Blog icon indicating copy to clipboard operation
Blog copied to clipboard

LLLeon 的部落格

Results 27 Blog issues
Sort by recently updated
recently updated
newest added

[原文地址](https://blog.golang.org/context) ### 介绍 在 Go 的服务器中,每一个到来的请求都在其各自的 goroutine 中进行处理。请求处理程序通常启动额外的 goroutine 来访问后端,比如在访问数据库和 RPC 服务时。工作在一个请求上的 goroutine 集合通常需要用到请求中的特定值,比如最终用户的身份,授权令牌和请求的截止期限。当请求撤消或超时,工作在该请求上的所有 goroutine 应迅速退出,这样系统就能回收它们使用的资源。 Google 开发了一个 context 包,可以很容易的将请求域的值,取消信号,和跨 API 边界的截止期限传递给处理请求所涉及的所有 goroutine。本文介绍如何使用该包,并提供了完整的工作示例。 ### Context context 包的核心是 `Context` 类型: ```...

Notes_Go
Translation

之前在公司的云主机上安装过,今天在自己的阿里云 ECS 上安装,还得再去翻看官方文档,为了方便记录,对 [官方文档](https://docs.docker.com/install/linux/docker-ce/centos/) 安装部分进行了简单翻译。 虽然就几条命令,也可以扩展并深入。里面也提到了比较底层的部分,比如存储驱动 `overlay2`,有兴趣可以深入一下。 ## 先决条件 1. 维护版的 CentOS 7。 2. `centos-extras` 必须是激活状态。默认是激活的,如果被关闭了,需要[重新激活](https://wiki.centos.org/AdditionalResources/Repositories)。 3. 现在推荐使用的存储驱动是 `overlay2`,之前是 `aufs` 。 ## 卸载旧版本 旧版本的 Docker 叫做 `docker` 或 `docker-engine`。如果有安装它们,执行以下命令来卸载它及其依赖项: ```bash...

Translation
Linux
Container

本文是对 [How To Change OpenSSH Port On CentOS 7](https://www.liberiangeek.net/2014/11/change-openssh-port-centos-7/) 的简单翻译,部分内容有更改。 一些网站管理员认为,更改默认为 22 的 SSH 端口号可以增强安全性。这是因为每个人都知道 SSH 默认端口号是 22,当然也包括黑客,所以是不安全的。 将 SSH 端口号更改为 22 以外的其他值将增强服务器的安全性,因为坏人不会知道 SSH 通信的端口。这是一个很酷的技巧,但不会阻止那些决心闯入你服务器的人。 只需使用简单的端口扫描程序或类似工具,黑客就可以找出服务器上的所有连接端口。这是一项古老的技术,可能在我们今天的时间里不适用。 在我看来,保护 SSH 服务器的最佳方法是使用证书和加密实现无密码登录。使用此方法,只允许已使用加密密钥的计算机使用 SSH...

Translation
Linux

## 添加验证人的两种方式 添加 Tendermint 验证人有两种方式: - 在启动 Tendermint 网络前,在 `genesis.json` 中进行操作。可以创建一个新的 `priv_validator.json` 文件,然后把里面的 `pub_key` 拷贝到 `genesis.json` 文件中。 - 在一个运行中的 Tendermint 网络中,通过 ABCI 应用的 `EndBlock` 方法添加验证人。 前面的文档已经对第一种方式进行了说明,这里讨论第二种方式,即如何在运行中的 Tendermint 网络中添加验证人节点。 ## 启动...

Blockchain
Tendermint

### 指针的定义 *A pointer is a value that points to the memory address of another variable.* 指针是一个指向另一个变量内存地址的值。 ### 示例 1 ```go package main import ( "fmt" ) func main() {...

Notes_Go

### 问题 在工作中使用 docker-compose 来启动 MySQL 容器时,由于没有配置字符集,出现以下问题: - 数据库里的中文记录在网页上无法正常显示,全部是乱码。 - 修改配置文件后,在容器中打开 MySQL 终端后,修改记录时无法输入中文。 这是原来的 docker-compose.yaml 文件: ```yaml version: "2" services: mysql: container_name: mysql-name image: mysql volumes: - ./mysql:/var/lib/mysql ports: -...

ProblemRecord

Context 用来管理 goroutine 的上下文,包括传递请求作用域的值、退出信号和处理一个请求时涉及的所有 goroutine 的截止时间等。 ## 代码解析 ```go // Context 的方法可以由多个协程同时调用 type Context interface { // Deadline 返回代表这个 context 的工作取消的时间 // 当没有设置截止时间时,ok==false // 连续调用 Deadline 时只有第一次生效,后面都返回同样的结果 Deadline() (deadline time.Time,...

SourceCodeAnalysis_Go