最强 Linux 命令总结

今天,带来一篇 Linux 命令总结的非常全的文章,也是我们平时工作中使用率非常高的操作命令,命令有点多,建议小伙伴们可以先收藏后阅读。`
1. 基本命令


uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件
(SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息
arch 显示机器的处理器架构<span class="readmore"><a href="https://www.obooks.net/post-713.html">阅读全文&rarr;</a></span>

smarteng 发布于 2021-09-27 09:23

Go Context 最佳实践

使用场景

Context 主要有以下三种使用场景

  • 传递超时信息,这点用的最多
  • 传递信号,用于消息通知,处理多协程通信
  • 传递数据,常用的框架层 trace-id, metadata阅读全文→

smarteng 发布于 2021-09-26 17:51

Go安全指南

目录 - [1 通用类](#1) * [I. 代码实现](#1.1) + [1.1 内存管理](#1.1.1) + [1.2 文件操作](#1.1.2) + [1.3 系统接口](#1.1.3) + [1.4 通信安全](#1.1.4) + [1.5 敏感数据保护](#1.1.5) + [1.6 加密解密](#1.1.6) + [1.7 正则表达式](#1.1.7) - [2 后台类](#2) * [I. 代码实现](#2.1) + [1.1 输入校验](#2.1.1) + [1.2 SQL操作](#2.1.2) + [1.3 网络请求](#2.1.3) + [1.4 服务器端渲染](#2.1.4) + [1.5 Web跨域](#2.1.5) + [1.6 响应输出](#2.1.6) + [1.7 会话管理](#2.1.7) + [1.8 访问控制](#2.1.8) + [1.9 并发保护](#2.1.9)
阅读全文→

smarteng 发布于 2021-09-26 11:35

linux的TCP连接数量最大不能超过65535个吗

linux的TCP连接数量最大不能超过65535个吗

这明显是进入了思维的误区,65535是指可用的端口总数,并不代表服务器同时只能接受65535个并发连接。

举个例子:
我们做了一个网站,绑定的是TCP的80端口,结果是所有访问这个网站的用户都是通过服务器的80端口访问,而不是其他端口。可见端口是可以复用的。image即使Linux服务器只在80端口侦听服务, 也允许有10万、100万个用户连接服务器。Linux系统不会限制连接数至于服务器能不能承受住这么多的连接,取决于服务器的硬件配置、软件架构及优化。阅读全文→


smarteng 发布于 2021-09-23 14:57

消息队列上云挑战与方案:腾讯云的 Apache Pulsar 实践

1 背景介绍

如今,云原生的概念已经渗透到了软件开发的方方面面。云原生不再只是未来的设想,而是一个现在进行时。开发人员在开发设计之初就需要考虑未来如何在云原生环境上部署、运行服务,即如何“上云”。
在云上,消息队列将成为一种基础设施,像自来水一样,可以随时按需使用,并且有无限容量。用户无需关心消息队列的型号、规格,或是否需要升级配置,只需专注上层业务。
腾讯云是腾讯集团倾力打造的云计算品牌,面向全世界各个国家和地区的政府机构、企业组织和个人开发者,提供全球领先的云计算、大数据、人工智能等技术产品与服务,助力各行各业实现数字化升级。为了更好地为广大用户服务,提供金融级可靠消息服务,腾讯云开启了消息队列上云之路,目前 Apache Pulsar 在腾讯云上已经大规模使用。阅读全文→


smarteng 发布于 2021-09-23 14:55

使用Consul做服务发现

为什么使用服务发现

防止硬编码、容灾、水平扩缩容、提高运维效率等等,只要你想使用服务发现总能找到合适的理由。
一般的说法是因为使用微服务架构。传统的单体架构不够灵活不能很好的适应变化,从而向微服务架构进行转换,而伴随着大量服务的出现,管理运维十分不便,于是开始搞一些自动化的策略,服务发现应运而生。所以如果需要使用服务发现,你应该有一些对服务治理的痛点。
但是引入服务发现就可能引入一些技术栈,增加系统总体的复杂度,如果你只有很少的几个服务,比如10个以下,并且业务不怎么变化,吞吐量预计也很稳定,可能就没有必要使用服务发现。阅读全文→


smarteng 发布于 2021-09-23 14:50

深入理解 Linux 的 epoll 机制及epoll原理

IO 多路复用

在 Go 里最核心的是 Goroutine ,也就是所谓的协程,协程最妙的一个实现就是异步的代码长的跟同步代码一样。比如在 Go 中,网络 IO 的 read,write 看似都是同步代码,其实底下都是异步调用,一般流程是:阅读全文→


smarteng 发布于 2021-09-23 14:24

Go 1.17 新特性:Go Module 的变化

自从 Go1.11 增加 Go Module 以来,每个版本都在不断改进 Module。Go1.17 也不例外。这次最主要的变化有两点:

  • Module graph pruning:Module 依赖图修剪
  • Lazy Loading:Module 延迟加载阅读全文→

smarteng 发布于 2021-09-23 14:20

YAML 使用入门教程

YAML(YAML 不是标记语言YAML Ain't Markup Language)是一种适宜阅读理解的数据序列化语言。它的语法简单而易于阅读。它不包含引号、打开和关闭的标签或大括号。它不包含任何可能使人类难以解析嵌套规则的东西。你可以看一下你的 YAML 文档就知道它在什么。阅读全文→


smarteng 发布于 2021-09-23 14:17

golang怎么会变成这么火

程序员始终在寻找一种更加高效,安全的开发语言,高效表现在开发高效和运行高效,安全在于程序要要较少的去关注底层安全问题。当然还有其它的原因,比如:ide,构建,部署难易程度。简单说就是开发者体验。阅读全文→


smarteng 发布于 2021-09-23 14:11

如何在 Go 中优雅地传递、返回、暴露错误方便追溯

在后台开发中,针对错误处理,有三个维度的问题需要解决:

  • 函数内部的错误处理: 这是一个函数在执行过程中遇到各种错误时的错误处理。这是一个语言级的问题
  • 函数/模块的错误信息返回: 一个函数在操作错误之后,要怎么将这个错误信息优雅地返回,方便调用方(也要优雅地)处理。这也是一个语言级的问题
  • 服务/系统的错误信息返回: 微服务/系统在处理失败时,如何返回一个友好的错误信息,依然是需要让调用方优雅地理解和处理。这是一个服务级的问题,适用于任何语言阅读全文→

smarteng 发布于 2021-09-23 14:08

一个Go语言HTTP包Client使用的坑

一句话总结

Go 的 http 包默认不指定请求超时,允许外部服务劫持你的 goroutine
连接到外部服务时,始终需要自定义 http.Client ,至少要自定义超时时间。阅读全文→


smarteng 发布于 2021-09-18 20:05