李迟2023年01月工作生活总结
Posted 李迟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了李迟2023年01月工作生活总结相关的知识,希望对你有一定的参考价值。
本文为 2023 年 1 月工作生活总结。
研发编码
Linux
测试机器端口连通性有多种方法。下面演示的,前者是不开放端口,后者是开放的。
ssh 命令
$ ssh -v -p 9001 localhost
debug1: connect to address 127.0.0.1 port 9001: Connection refused
ssh: connect to host localhost port 9001: Connection refused
$ ssh -v -p 9000 localhost
debug1: Connection established.
ssh_exchange_identification: Connection closed by remote host
nc 命令
$ nc -v localhost 9001
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection to ::1 failed: Connection refused.
Ncat: Trying next address...
Ncat: Connection refused.
$ nc -v localhost 9000
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to ::1:9000.
telnet 命令
$ telnet localhost 9001
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
$ telnet localhost 9000
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Go
某json数据结构体不能预先固定,可能有某字段, 判断之。
1、json数据类型设为interface。
2、使用Marshal、Unmarshal换成map[string]interface类型数据。
3、按 map 键值是否存在的方法判断。不使用直接用xxx=nil
的方法。
# calParam 为interface
outbyte = []byte
err = nil
calParam1, err := json.Marshal(calParam)
var jdata map[string]interface
err = json.Unmarshal(calParam1, &jdata)
if err != nil
// klog.Printf("格式化Json出错0:%v", err.Error())
return
content, exist := jdata["myContent"]
if !exist
outbyte = calParam1
err = nil
return
之前改写了 klog,并应用起来,但某个应用服务耗时较高,因为整体系统对时间很敏感,那个服务已经造成很大的影响,使用 pprof 分析,指向了 klog,后来在同事提醒下,研究了异步日志功能,发现klog 其实带有异步写文件功能,只是没使用,改为定时5秒,耗时立马下降,效果明显。但是初始化前5秒及被中断退出没有记录日志,于是又研究代码并解决了问题。
本地缓存
稍研究了一下 bigcache,发现可以应用到工作中。如:
- 将 sqlite3 文件的数据加载到 bigcache 中,提升处理时间。
- bigcache 有定期清除功能,可以用于处理带一定时效性的缓存数据匹配或判断等问题。可以记录应用服务统计信息。
Docker
使用docker stats
可查看机器上容器占用资源的情况。示例如下:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d3d36eb93fb3 webdemo-9010 77.88% 702.1MiB / 3.683GiB 18.62% 3.06kB / 0B 10.7MB / 0B 12
dec68f33c171 webdemo 77.49% 584.8MiB / 3.683GiB 15.51% 2.98kB / 0B 6.78MB / 0B 12
SQL
因为一些网络策略原因,连接数据库比较麻烦,需要进入容器用命令行方式查表。记录用到的命令:
再进入mysql容器:
cd /work/docker/
docker exec -it my-mysql bash
进入数据库(注:账户密码一般不会变化):
mysql -uuser -p123456
选数据库:
use UserInfo;
# 正常查询语句
查询完毕,使用exit退出mysql,再使用exit退出容器。
云原生开发
最近构思之前写的网页工具如何容器化。当前的部署方式是手动将所有的数据文件、配置文件、程序等打包成zip,上传到服务器,删除原同名目录,再解压,再运行程序。因为程序设计问题,要运行大概10个副本,功能相同,仅以端口区别。因为数据文件较多,每次更新都比较麻烦。现考虑容器化方式:
- 在网页上实现上传(及下载)功能,将本服务所需文件按类型上传到不同目录。
- 使用 docker-compose 部署,重启策略为 always。网页由实现重启按钮,点击后调用Exit(0)退出程序,由 docker-compose 重启之。
- 数据、配置、程序均存储一份,通过 docker-compose 配置文件指定不同服务的环境变量实现不同的功能。
- 各容器在角色上区别主、从。主容器能管理从容器。当主容器收到重启指令时,发消息到所有从容器,从容器重启。如此达到所有容器能在一次操作中重启。
工作记录
过年前得到消息,我要调岗,当然身份没变化,所以对我而言没什么区别。
春节放假前,作了些计划,但没完成多少。完成的有:
- 测试了去年上半年的日志数据,数量在百万级别,用2台电脑连续烤机,期间发现了几处段错误并修正,顺便完成测试逻辑,主要是记录已完成的测试项,否则需重新开始,太花时间了。
- 对 nginx + keepalived 做了一些实验,算初步接触了解。
生活记录
过年没有回家,因为孩子妈多次明确表示不会回去,我一个人回去,对各方都不讨好,于是作罢。
发年终奖的第二天中午,联系了银行经理,办了提前还款的事。除了大锤的学费及必要的生活开支,其它的都要上交给银行。
过年红包支出:
-
年前转了1千块给老妈,用的是干私活的钱,不敢从个人银行卡转。
-
给了大锤妈200红包,因为给多给少,家里都是一地鸡毛。
-
给了小孩共100块。
-
给了妹妹300块,收回200块。
-
小孩爷爷给了共400红包。
大锤红包转到银行卡的共300块,因为买玩具支出了部分。
带大锤去了2个公园,2次邕江边,2次市中心。
和去年一样,一家人没有拍照。
思想方面
前天晚上,老妈在微信上发语音,问我心情是不是不好,我不知道她从何处看出或猜出,但的确心情不佳,于是趁和大锤去倒垃圾期间视频聊了一会。还是围绕家里的事。老妈很担心这样长期下去会怎么样,说实在我不知道能怎样,欠着上百万的房款,小孩长大不听话,家里三天两头吵。但只能安慰老妈说,我可能会转正,生活会慢慢变好,不要想着不好的事。我清楚老人想要什么,也明白道理,奈何做不到。
业余阅读
看史记,张仪、苏秦太能说了,一大段文字下来,收获不少,但只有羡慕的份。在B站上看东周列国志,对春秋时期的事有点了解,计划按时间慢慢积累历史知识。
业余研究
以上是关于李迟2023年01月工作生活总结的主要内容,如果未能解决你的问题,请参考以下文章