LVS (Linux Virtual Server) 负载均衡 DR 模式配置
负载均衡技术作为高可用系统的重要组件,在生产环境的应用十分普遍。之前只知道 Nginx 可以用来做 Web 站点的负载均衡器,在项目实施过程中也实际使用过,但 Nginx 负载均衡有一个问题,只支持 http(s) 协议。一般我们认为 Nginx 是一种七层负载均衡,顾名思义,它工作在 OSI 参考模型的最上层也就是第七层应用层,主要用来分发 HTTP 协议的请求。如果需要分发的流量不是 HTTP 协议,比如 MySQL、RabbitMQ 等,Nginx 负载均衡就不适用了。
项目实际中,负载均衡要么通过 F5 硬件实现,成本很高,要么常见的就是基于 LVS 实现。
实验环境1 台 Linux 服务器(负载均衡器,安装 CentOS 7 系统)
2 台 Linux 服务器(Rabbit MQ 节点,安装 CentOS 7 系统,Rabbit MQ Server 监听在 5672 端口)
实验目标通过一个固定 IP + 端口访问随机两台机器上的 RabbitMQ 服务,两台机器任意一台宕机或服务停止,不影响外部访问。
IP 规划
配置负载均衡器 (Director)更新和安装 epel- ...
Arch Linux 安装 Nvidia 驱动并开启视频解码硬件加速
每次使用浏览器看 B 站视频时,CPU 占用总是莫名地高, 8 核心的 i7-10875H 开一个视频就到了稳定的 15% 占用,温度也从待机 55 度上升了 10 多度。我的风扇控制比较激进,超过 55 就是中档,65 以上直接全速,所以导致一开视频,风扇就直接拉满,忍受了这个问题很久了,今天决定着手解决下。
首先问题的原因我其实是知道的,在没有开启 GPU 加速的情况下,视频解码只能靠 CPU 软解,所以导致 CPU 负载较大。但长期以来我是不装 Nvidia 驱动的,因为几乎用不到,徒增功耗,还可能增加滚挂的机率。
安装 Nvidia 驱动详细安装过程可参照 Arch Wiki
https://wiki.archlinux.org/title/NVIDIA_Optimus
123sudo pacman -S nvidia-lts nvidia-utils nvidia-settings xorg-server-devel opencl-nvidia libva-utilsyay -S libva-nvidia-driver
注意这里安装的是 lts 的驱动程序,要求系统内核也是 ...
被前同事在代码注释里内涵了
过完年的这几天也没怎么走亲戚,基本都在准备面试。
今天在修改简历的时候想看看以前一个项目的代码,是我在上上家公司的项目,用的是 Gitlab 管理的。由于后端几位同事当时都是我带的,运维也还算熟悉,为了方便,我离职之后帐号权限什么的一直还保留着。去年还有次问我要不要兼职做一下以前的项目,我觉得麻烦也没接受。
我就随便翻了翻,看到某个项目的上次提交是一个月之前,无意点开看了下,结果看到我的名字赫然出现在了代码里,几个大字写道: “Leon 最牛逼,跟他都没关系。”
虽然有点懵,但是我还是大概能猜出发生了什么。写这行代码的同事是在抱怨我当时写的某一处代码出了问题,大概率他和测试人员说是我的问题,测试人员可能为我说话了,说和我没关系,所以只好在代码里宣泄一下情绪。后来我也和测试聊了下这件事,基本和我的猜测吻合。
这位同事我其实是认识的,这也不是他第一次甩锅给我了。同样作为程序员,我不难理解他的行为,遇到问题,撇清和自己的关系也是人的某种本能。说实话心里还蛮不是滋味的,但转念一想,我确实是有责任的,有时候只听掌声和喝彩是不行的,要容的下批判地声音,不能保证所有人都喜欢你,我应该反思的是,在今 ...
在 MacOS 上编译 OpenJDK 8
获取 OpenJDK 源代码OpenJDK 8 源代码可通过 Mercurial 或 Github 获取。这里推荐使用 Mercurial,Github 上的代码在 MacOS 上编译问题非常多。
安装 Mercurial1brew install mercurial
克隆 OpenJDK 8 仓库1hg clone https://hg.openjdk.java.net/jdk8u/jdk8u
获取完整源码并更新仓库1cd jdk8u && sh ./get_source.sh
获取低版本的 Xcode如果你的 Xcode 版本大于 12,需要手动下载低版本 Xcode,下载地址为
https://xcodereleases.com/
编译 OpenJDK 8 最高支持的版本是 Xcode 12.5.1 下载完成后解压。解压完成后得到的程序因为版本限制可能无法双击执行。
但是问题不大,仍然可以使用 --with-xcode-path 指定使用此版本的 Xcode
1--with-xcode-path=/Users/leon/Downloads/Xcode.ap ...
解决 Linux 环境中 IntelliJ IDEA 无法输入中文以及候选窗不跟随问题
IntelliJ IDEA 在 Linux 环境中如果不经过设置的话,默认情况下是无法输入中文的。当按照网上的教程设置好后还是会出现候选词面板位置不跟随输入光标的情况。这个问题从我开始接触 Linux 就有,直到现在,仍然是一个 Linux 用户绕不开的话题。
首先是中文输入的问题。这里首先要安装中文输入法。
1sudo pacman -S fcitx5 fcitx5-im fcitx5-qt fcitx5-gtk fcitx5-chinese-addons fcitx5-configtool fcitx5-rime
创建文件 ~/.pam_environment,内容如下
123456GTK_IM_MODULE DEFAULT=fcitxQT_IM_MODULE DEFAULT=fcitxXMODIFIERS DEFAULT=\@im=fcitxINPUT_METHOD DEFAULT=fcitxSDL_IM_MODULE DEFAULT=fcitxGLFW_IM_MODULE DEFAULT=ibus
重新启动后将 Rime 添加为第二输入法。至此在终端或浏览器中已 ...
关于目前我人生中的几个重要选择
今年不断有听到互联网公司裁员的消息,但这一次,它发生在了我身上。上周四,我与上家公司正式解除了劳动合同,我失业了。整个离职过程还算比较顺利,除了一开始人事试图以在离职证明上写辞退劝我自离和不支付八月份的加班费以外。
首先是人事劝我自离这件事,也算是某些公司的惯用伎俩了,其实就是虚张声势,选自离是十分不理智的,公司也不可能敢在你的离职证明上这样写。这一点我的态度很坚定,首先就算你在离职证明上做文章,我相信面试主要还是看技术实力;其次,如果公司在离职证明上有明显失实的描述,我就直接劳动局申请仲裁。我最后是拿到了 N+1 的赔偿,离职证明上写的是协商一致解除。其实劳动法并没有规定要写离职原因,但这个原因也还算中性,我就没有再坚持要去掉。
加班费就比较让人恼火了。去年八月份的时候为了赶项目进度,公司安排了全体项目组成员周末加班,整个八月份我们都是 996 状态完全没有休息,当时的加班因为是统一安排的,项目经理说不需要走加班流程,填个表就行了(我记得好像是腾讯文档)。等到了九月份,又开会和我们说这一笔加班费延迟到下一年第一季度发放。当时没有考虑那么多,也不会想到公司会为了这一点加班费而丢弃信誉。 ...
杂谈 - 断舍离与熵
《断舍离》是一本几乎可以说尽人皆知的书。其实很早就知道有断舍离这么一种生活理念的存在了,在某种程度上与这种观点也产生过共鸣,但也在心里觉得断舍离有点极端了,有点修行的意味。
最近简单翻看了这本书的前几章,其一直在输出一个观点,那就是以自我和当下为中心,去思考外物与这个中心的联系,抛弃无用或“可能有用”的物品,从而将自我从外物的羁绊中解脱出来。
最近收到非常多的邮件,有的是域名到期了,有的是服务器到期了,我才想起来去年的这个时候好像确实购买了一堆的域名和服务器,这些都是而是出于我在不久的将来可能需要而购买的,但正如作者在书中所描述的那样,直到现在,这个不久的将来也没有到来。
域名并不值钱,但是买太多的后果就是产生了一堆垃圾,这不同于收藏,这堆垃圾是真正意义上的毫无帮助,反而会消耗你的能量。这里又必须提到人们常说的熵增的观点,也就是事物总是朝着无需的方向发展的倾向,房间不打扫会变的凌乱,就是这个道理。与此同时,房间里的东西越多,往往熵增的速度也就越快,断舍离在某种程度上,会达到抑制这种熵增的效果。
四月份的时候因为挖矿买了一堆机械硬盘,为了保持这些硬盘工作,我的房间需要拉很多电源线,各种 ...
再见智齿君,再见 2021
昨天晚上刷牙的时候感觉后槽牙根部靠近智齿的地方好像有异物感,但任凭怎么刷或者漱口都没有用。我试着对着镜子看,但位置太深了,什么也看不到,用手去探了探,触感挺尖锐的,完全不像牙齿,更像是小石子或碎骨头。。。
卧槽卧槽。继续用手和舌头摸索了一会,基本可以确定,是智齿碎了,但具体碎到什么程度不得而知。长这么大第一次知道智齿竟然会自己碎掉!关键是我还没有任何感知,这几天牙齿也没有任何不适感,若是真的碎了,那碎掉的那一部分又哪去了?还有一种可能是龋齿被虫吃掉了。不管怎样,得赶紧去医院看看。
看了下市口腔医院的预约挂号,周六周日都没号了。约了的周五下午的普通号。不一会收到预约成功的短信,显示的预约成功,时间是下午 16:00 - 16:30,我挺纳闷的,因为 App 上显示的是 14:00 - 14:30。
中午吃饭的时候打电话去问了下,说是预约系统查询的是下午两点,让我两点去就可以了。医院离公司很近,两站地铁就到了,我稍微提前了一点,一点左右动身出发,门口查验了苏康码和行程码,一楼自助终端取了号之后前往四楼外科报到。刷挂号单的时候刷不上,显示没有到时间,果然,预约系统和院内系统肯定是出现了数据不 ...
低代码框架 Strapi 使用体验
今天在无聊的时候偶然发现了 Strapi 这个框架,能够帮助你不写一行代码实现基本的增删改查接口。这正是我一直在寻找的东西。Spring Boot 即使使用 Mybatis Generator 也还是比较笨重,对于一些简单的个人项目,仅仅是两三张表,关系也比较简单,操作也不外乎 CRUD,这正是 Strapi 的最佳应用场景。
以前我的做法是从一个模板项目克隆一个,包含基础的项目骨架,再设计和创建数据库表,然后使用 Mybatis Generator 生成基础的 CRUD 代码,再发布到 Gitlab 服务器,在 Jenkins 上创建任务,最终将项目部署在 Docker 容器中运行。不可不谓之繁琐。
Strapi 的安装坑还是挺多的,我按照官方文档安装的过程中就遇到了 Node 和 npm 版本、镜像下载网络问题、Webpack 打包问题等等,最后放弃了 CLI 安装的形式,使用 Docker 安装,但是 Docker 安装也会有依赖下不下来的问题,因为是服务器,也懒得去搭梯子了,索性直接使用香港主机做测试。最后的最后,终于安装成功了。
首先是通过域名访问。在 Docker 容器中 ...
冬至日没有吃饺子
今天是冬至。
早上在楼下吃早餐的时候,有一位大爷忽然递给我一颗枣,接着说了一些话,应该是介绍产品之类的我没有听的太清。我一下就明白了,推销的啊。但我还是下意识地接过了这颗枣,并说了句谢谢,然后说我不需要让他去问问别的顾客。我想,如果我直接拒绝或者不理他会显得太不礼貌吧。我最终将那颗枣留在了餐盘上,我知道,从我接过它的那一刻起我就没有想要吃它的想法,可是。。。看着大爷没有任何收获地走出餐厅,拉着小推车在寒风中继续前进时,我还是感到有些不忍,可这就是生活啊。再看看昨天发生的那 “几个亿” 的事情,唏嘘不已。可是人与人有些时候是没法去比的,我们能做的就是过好自己的生活啊。不用去艳羡或悲悯,穷则独善其身,达,即使不能兼济天下,也要坚守本分,不能利欲熏心,为他人所不齿。
上午和往常一样和同事讨论去哪吃饭,今天还都倒挺一致的说要不去吃水饺,也隐隐担心会不会人比较多。中午去的时候果不其然,馆子人满为患。这家哈尔滨水饺其实味道一般,平时人也不算多。最终我们打了退堂鼓,去了对面的煲仔饭。南方人其实没有冬至吃水饺的习惯,而且我平时就不太爱吃水饺。
最近疫情也反反复复。席间聊到西安的疫情,说是西安的健康码挂 ...