关于 TKE 容器网络插件

创建 TKE 时有三种容器网络插件可供选择[1]

  1. GlobalRouter 模式
  2. VPC-CNI 模式
  3. Cilium-Overlay 模式

Cilium-Overlay 模式只有在混用云上节点和第三方节点时才会用到,所以当时就在 GlobalRouter 模式和 VPC-CNI 模式之间做选择。最终由于 VPC-CNI 模式的网络性能较高,选择了这个模式。

之后用了近两年,一直没有出现什么问题,最近在调整节点规格时才发现新加的服务器仍然有很多资源,但是 Deployment 部署不过去。容器事件中显示了 Insufficient tke.cloud.tencent.com/eni-ip. 错误消息。这才注意到每个节点上都有一个 ENI-IP 的资源限制,可以在 Worker 节点页面看到类似 ENI-IP : 27 / 27 这样的数值。

使用 VuePress 2

由于服务器费用渐涨,最近尝试将博客迁移到可以使用 OSS 作为站点的静态部署方式,于是就发现了 VuePress。

VuePress 最新的版本是 v2.0.0-rc.0 ,还是 RC 版。使用中遇到了一些问题,不过好在基本功能都可以用。其中一个比较多大的问题在官方 issue 中也找到了一个暂时的解决方案 [1]

之所以选择 VuePress,主要还是感觉默认主题样式整体比较简洁,也支持我之前在自己的 .NET MVC 版本的博客中使用的 markdown-it 插件及其扩展插件。

Logback 手册 - 第五章:编码器

编码器负责将事件转换为字节数组,并将该字节数组写入 OutputStream 中。
Logback 手册 - 第六章:布局

布局是 logback 组件,负责将传入事件转换为字符串。Layout 接口中的 format() 方法接受代表事件(任何类型)的对象并返回一个字符串。
Logback 手册 - 第七章:过滤器

Logback 过滤器基于三值逻辑,可以组合或链式连接起来,形成任意复杂的过滤策略。它们在很大程度上受到 Linux 的 iptables 的启发。
Logback 手册 - 第八章:映射诊断上下文

logback 的设计目标之一是审计和调试复杂的分布式应用程序。大多数实际的分布式系统需要同时处理多个客户端。一种更轻量级的技术是为服务于给定客户端的每个日志请求唯一标记。
Logback 手册 - 第九章:日志分离

本章涉及为在同一 Web 或 EJB 容器上运行的多个应用程序提供单独的日志记录环境的相对困难的问题。
Logback 手册 - 第十章:Joran

Joran 代表着一股寒冷的西北风,偶尔在日内瓦湖上猛吹一阵。logback 依赖于 Joran,这是一个成熟、灵活和强大的配置框架。logback 模块提供的许多功能都是基于 Joran 才能实现的。本章重点介绍 Joran 的基本设计和显著特点。
Logback 手册 - 第十一章:从 log4j 版本 1.x 迁移

本章涉及将自定义的 log4j 1.x 组件(如附加器或布局)迁移到 logback-classic 的主题。
Logback 手册 - 第十二章:接收器

接收器是 Logback 组件,它从远程追加器接收日志事件,并根据本地策略记录每个接收到的事件。使用基于套接字的追加器和接收器的组合,可以构建复杂的拓扑结构,用于在网络上分发应用程序的日志事件。
Logback 手册 - 第十三章:使用 SSL

Logback 支持在套接字附加程序和远程接收器之间传递日志事件时使用安全套接字层(SSL)。当使用启用了 SSL 的附加程序和相应接收器时,序列化的日志事件会通过安全通道传递。
Logback 手册

完整的 logback 手册记录了 logback 框架的最新版本。在 150 多页和数十个具体示例中,它涵盖了基本和高级的 logback 功能。
Logback 手册 - 第九章:日志分离

本章涉及为在同一 Web 或 EJB 容器上运行的多个应用程序提供单独的日志记录环境的相对困难的问题。
Logback 手册 - 第三章:配置

我们首先介绍了配置 logback 的方法,并提供了许多示例配置脚本。
Logback 手册 - 第四章:Appenders

Logback 将写入日志事件的任务委托给称为 appender 的组件。Appender 必须实现 ch.qos.logback.core.Appender 接口。
Logback 手册 - 第二章:架构

logback 的基本架构足够通用,可以适用于不同的情况。目前,logback 分为三个模块,logback-core、logback-classic 和 logback-access。
Logback 手册 - 第一章:简介

什么是 logback?
打包 highlight.js 支持全语言的版本

从 Highlight.js 源代码打包支持全语言的 js 文件。
ASCII 艺术字生成器(使用 figlet.js)

使用 figlet.js 实现将文字转换为 ASCII 艺术字
使用 Apache Camel 实现消费 RabbitMQ 消息并通过 SMPP 协议发送短消息

Apache Camel 是一个开源集成框架,使您能够快速轻松地集成各种消费或生产数据的系统。这里使用 Apache Camel 来实现消费 RabbitMQ 的消息,并将其通过 SMPP 协议发送短信息的功能。
纯前端 OCR 工具 Tesseract.js

使用 Tesseract.js 在前端页面实现 OCR 的工具(含代码)。
Git 中如何修改已经推送上去的提交的备注

今天手快把代码推送上去后才发现备注写错了。所幸 `git commit` 命令提供了一个 `--amend` 参数,可以用于修改最后一次提交的备注信息。
写给大家看的设计书 -- Robin Williams

虽然不是计算机相关的书籍,但是作为 Web 开发人员,书里的部分知识经常会用到,值得去读一下。
Fabric.js toDataURL() 图片大小偏差

使用 toDataURL 方法将 fabric.js 中的图层导出为图片,发现比实际的大小大了 1 ~ 2 个像素。
Fabric.js 在 Node.js 服务中后退字体的问题

在 *fabric.js* 中如果对包含中文和英文的文本设置只支持英文的字体时,中文的部分无法正常显示。
修改 Nacos 配置时动态刷新 Bean 实例(Kotlin 版)

如果配置类上使用了 `@ConfigurationProperties` 注解,在修改 Nacos 配置时会动态刷新属性的值,但如果通过 `@Value` 注解或者根据配置类创建的 Bean 则不会动态更新。使用 `@RefreshScope` 注解则可以在不重启应用的情况下动态刷新 Bean 实例。
Redis 服务器 CPU 100% 问题调查

在做压测时发现 Redis 的 CPU 升到了 100% ,并且客户端创建了大量的连接,但是总的客户端数并没有变化。经调查最后发现是 JedisPool 配置不合理和使用不当导致的。这里记录下调查过程及一些个人理解,以作备忘。