公众号:仁扬 分享Go后端/架构/云原生/面经/互联网资讯 博客:https://imlht.com/
使用消息队列,我们肯定希望不丢消息,也就是消息队列组件,需要保证消息的可靠交付。消息交付的可靠性保障,有以下三种承诺:最多一次、至少一次和精确一次。
容器化,是指使用容器技术(Docker/containerd等)运行应用程序(容器),并使用容器编排技术(例如 K8s)来管理这些容器,那么它有什么好处呢?
macwk.com 在 2022-10-05 关站,域名停止解析,已经打不开了。翻了很多资料,收集了几个网站作为替代,大家有需要可以试试,如果有更好的麻烦告诉我哈哈!
公司的业务逐步推广容器化,其中 PHP 业务的 Pod,由以下 5 个容器组成:nginx、php-fpm、metric(监控)、jaeger(链路追踪)、log(日志收集)。线上滚动部署的时候报错!
日常听说 HTTPS 是加密协议,那现实中的 HTTPS 流量,是真的完全加密吗?答案是,不一定。原因嘛,抓个包就知道了。我们用 curl 命令触发一下!
Go 自带接口性能分析工具 pprof,接入方式简单,可以暴露接口后采集服务运行状态分析性能。但是 Pyroscope 更为强大,它有一个非常漂亮的 UI 界面!第一眼看到它我就被迷住了!
主从同步,就是将数据冗余备份,主库(Master)将自己库中的数据,同步给从库(Slave)。主从同步的必要性,在于数据的高可用。它可以保证机器故障时,还有其他的服务器可以进行故障转移。
用 Linux 和用 Windows/macOS 不一样,它真的需要用户操心很多东西。比如怎么连接公司的 VPN 网络……最后我使用 PPTP Client 连上了,遂写个文章做个记录吧。
“记得上次用 Manjaro Linux 的时候,还是上次:)”。三年前,工作都是在 Linux 下完成的——那时候的我还没买苹果电脑,每天的快乐就是折腾 Linux 发行版……
你搭建过偶数节点的 Redis 集群吗?有没有想过它是否具备高可用的能力?会不会脑裂呢?实践出真知!现在 docker 太方便了,搭一个集群模拟一下……
公司新的后台系统升级了框架版本,旧后台用的是老的 nodejs,也不可能去升级。这个时候,切换 nodejs 版本显然就很重要了!后来我找到一个包,只需全局安装,就可以自由切换版本,非常好用!
翻遍整个互联网,几乎没有文章能把 “获取客户的真实 IP 地址” 这个看起来很简单的事情捋清楚、讲明白,更不用说最佳实践。这篇文章也是我在这段时间的研究中总结出来的宝贵经验,希望对读者能有些许帮助。
1202 年了,如果你连 Docker 都不知道是什么,我建议买一本书看看——或者谷歌一下,博客已经写烂了。为什么有这篇文章,是因为我在真正做容器化改造的时候,发现公司生产环境存在大量的坑……
上一篇文章《大白话讲讲 Go 语言的 sync.Map(一)》讲到 entry 数据结构,原因是 Go 语言标准库的 map 不是线程安全的,通过加一层抽象回避这个问题……
在讲 sync.Map 之前,我们先说说什么是 map(映射)。我们每个人都有身份证号码,如果我需要从身份证号码查到对应的姓名,用 map 存储是非常合适的……
我们在编写 Go 程序可能会直接新建 main.go,xxx.go,yyy.go……对于小型工程来说简洁明了;但对于大型工程而言,或者团队协作中,没有明确的规范,只会使得项目越来越凌乱……
今天在业务上云的时候,遇到了些问题。最终发现问题的根源不好排查,于是——把生产环境的全量配置文件,还有日志全量打包下载到开发机器分析!生产和开发机内网不通,都是走公网传输,但是速度特别慢……
真的很喜欢 phpmyadmin 这个 PHP 程序。虽然工作上基本都用 Navicat,但是很多东西都是习惯了,就很难改变!比如建表,执行 SQL 语句,还是觉得 phpmyadmin 更胜一筹……
你是否在终端 ls 过,发现很多乱码的文件?我搜索了挺多资料,没有一篇文章能真的解决问题(感觉都是抄来抄去的)。用 SFTP 工具、PHPStorm 全家桶,都删不了……你知道如何删除它们吗?
cURL,熟悉 Linux 的同学,没有人不知道这个命令吧:)我从实用性的角度,说下我比较常用的几个参数。
今天向公司申请了一台 Linux 主机,作为平时的开发环境。由于自己并不依赖远程开发(大多数情况下项目都可以本地开发、调试),于是只申请了 4C/8G 的低配机器。突然好奇的是,这台机器的性能怎么样?
Linux 的命令太多,tcpdump 是一个非常强大的抓包命令。有时候想看线上发生的一些问题:nginx 有没有客户端连接过来……客户端连接过来的时候 Post 上来的数据对不对……
翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了.
CSV(Comma-Separated Values,逗号分割值),就是用纯文本的形式存储表格数据,最大的特点就是方便。但是你真的会处理 CSV 文件吗?数据包含引号或逗号,该怎么办?
布隆过滤器 (Bloom Filter) 是 1970 年由布隆提出的。它可以检索一个元素是否存在于集合中。它的优点是空间效率高,查询时间极快,缺点是有一定的误判率,而且删除困难。
个人真的很喜欢这本书, 从对C语言一窍不通, 到发现C语言竟然如此简洁, 以至于我喜欢上了C! 整体的感悟吧, 觉得 Redis 的作者, 对每一块内存非常吝啬……
压缩列表 (ziplist) 是列表键和哈希键的底层实现之一. 当一个列表键只包含少量列表项, 并且每个列表项要么是小整数值, 要么是长度比较短的字符串, Redis 会用压缩列表做列表键的底层实现.
大多数情况下, Redis使用SDS(Simple Dynamic String, 简单动态字符串)作为字符串表示, 比起C字符串, SDS具有以下优点: 1. 常数复杂度获取字符串长度; 2. 杜绝缓冲区溢出; 3. 减少修改字符串时带来的内存重分配次数; 4. 二进制安全; 5. 兼容部分C字符串函数.
JSON 是一种轻量级的数据交换格式, 相信大家用得比较多, 平时也用了很多格式化工具, 例如我最常用的 Json.cn, 还有这个 BeJson, 前者清爽无广告, 后者性能给力(有广告). 本文讲详细讲解如何使用 Vue.js 实现一个 JSON Viewer!
Composer 是一个 PHP 的依赖管理工具,它可以帮助开发者轻松地管理和维护 PHP 项目中的依赖关系。你是否好奇过它的镜像仓库是怎么实现的?本文为你揭晓。
Composer 是一个 PHP 的依赖管理工具,它可以帮助开发者轻松地管理和维护 PHP 项目中的依赖关系。你是否好奇过它的镜像仓库是怎么实现的?本文为你揭晓。
Ubuntu Linux 手工编译 libiconv 库报错,记录一下~