李迟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月工作生活总结的主要内容,如果未能解决你的问题,请参考以下文章

李迟2023年01月工作生活总结

李迟2022年4月工作生活总结

李迟2022年4月工作生活总结

李迟2023年02月工作生活总结

李迟2022年6月工作生活总结

李迟2022年12月工作生活总结