Levon's Blog

微信: L6241425

1. 初代编码

1.1 ASCII

这是最早也是最著名的编码。由于计算机诞生于美国,所以最早的编码主要考虑的是英语环境。

ASCII 总共可以表示 128 个字符。ASCII 只需要 7 位,但在计算机中,数据存储的基本单位是字节 (Byte),1 字节 = 8 比特。所以,ASCII 字符通常存储在一个字节中,最高位(第 8 位)固定为 0

例如:字符 ‘A’ 的 ASCII 码是 65,二进制表示为 01000001

  • 0-31:控制字符(如换行、回车、制表符等,不可打印)。
  • 32-127:可打印字符,包括了大小写英文字母 (a-z, A-Z)、数字 (0-9) 和各种标点符号。
阅读全文 »

1. 功能简介

tmux 3.2 版本引入了强大的 Popup(弹窗)功能,允许用户在当前会话之上悬浮显示一个新的 pane。结合 fzf(命令行模糊搜索工具),我们可以在不离开当前工作上下文的情况下,快速进行文件搜索、命令执行或会话切换。

tmux popup 演示

阅读全文 »

fzf (Fuzzy Finder) 是一款通用的命令行模糊搜索工具,能够通过模糊匹配关键词快速定位文件、历史命令、进程、Git 提交记录等。

它的核心设计哲学遵循 UNIX 管道理念:作为一个通用的交互式过滤器,接收标准输入(stdin),处理后将结果输出到标准输出(stdout)。这种设计使其能够与 findgrephistory 等任何命令无缝集成。

核心特性:

  • 通用性:默认列出当前目录文件名,配合 ripgrepgrep 可搜索文件内容。
  • Shell 集成:安装后默认接管 Ctrl + R,将枯燥的历史命令回溯转化为高效的交互式搜索体验。
阅读全文 »

微服务集群中,每个应用基本都会依赖一定数量的外部服务。如果依赖服务过载,服务不可用的情况,在高并发场景下如果此时调用方不做任何处理,继续持续请求故障服务的话很容易引起整个微服务集群雪崩。

所以应该采用熔断的策略,不再调用下游服务。

首先先区分下熔断、限流、降级区别

  1. 限流

    是针对服务请求数量的一种自我保护机制,当请求数量超出服务负载时,自动丢弃新的请求,是系统高可用架构的第一步。

  2. 熔断

    是调用方自我保护的机制(客观上也能保护被调用方),熔断对象是外部服务。

  3. 降级

    是被调用方(服务提供者)的防止因自身资源不足导致过载的自我保护机制,降级对象是自身。

触发条件面向目标
限流上游服务请求多上游
熔断下游服务不可用下游
降级服务自身负载高自身
阅读全文 »

服务的优雅关闭(Graceful Shutdown)是指,当服务需要停止时,它不是被“一刀切”地瞬间杀死,而是会先完成当前正在处理的任务、释放占用的资源后,再自行有序地退出。

优雅重启(Graceceful Restart)本质上是“优雅关闭”后紧跟着一个“优雅启动”的过程,常用于服务更新或配置重载,目标是在整个过程中不中断或尽可能少地影响对外服务。

阅读全文 »

问题提问

先同问提问自己问题,去寻找答案。

  • 怎么找到自己的网关?

  • nslookup 在不同的场景为什么显示不一样?

  • telnet 命令的使用方法和作用,什么情况下都可以用吗,和 ping 的区别是什么?

阅读全文 »

在现代软件开发中,依赖注入(Dependency Injection,简称 DI)已经成为一种广泛采用的设计模式。具体的做法可以遵守一个重要的设计准则:所有依赖应该在组件初始化时传递给它,这就是依赖注入(Dependency injection)。

在众多工具中,Wire 以其简洁、强大和易用性脱颖而出,成为 Go 语言项目中的宠儿。

阅读全文 »

1. 服务网格

服务网格(Service Mesh)是一种将服务之间的通信从应用层解耦到基础设施层的技术。在服务网格中,通过代理服务之间的流量来实现基础设施层的抽象。

500
阅读全文 »
0%