本周倔学 2019五月第四周

191 阅读2分钟
一个全端、全栈兼运维的打杂工程师的工作日志,20190520-0524。

git

jenkins上有个部署出问题了,之前的workspace的库被其他项目覆盖,于是删掉目录重新检出,但是发现服务器上的git账号并没有添加到项目的gitlab的member名单里。研究一番才发现原来git是有四种协议的区分的:

本地传输,所谓的远程仓库在该协议中的表示,就是硬盘上的另一个目录。这常见于团队每一个成员都对一个共享的文件系统(例如 NFS)拥有访问权。

$ git clone /opt/git/project.git
$ git clone file:///opt/git/project.git

SSH协议,支持读写操作。

$ git clone ssh://user@server/project.git
# 不指明某个协议时Git会默认使用SSH
$ git clone user@server:project.git

Git协议,没有授权机制,要么全部用户可克隆或推送,要么全部不可以。通用会通过Git协议提供只读权限,另外通过SSH提供写权限。

HTTP(S)协议,相比 SSH 协议,可以使用用户名/密码授权。


Android

本周继续研究进程保活,严格来说这个事情分两个阶段,保活和促活。保活指的是防止应用进程被杀,促活指的是应用被杀掉后在某些时机重新拉起。保活在github上有一个库集成了当前流行的多种方案,其中双进程互拉加1像素activity方案很多文章提到,但是从测试情况来看,效果并不明显。最终验证有效的保活方案是前台服务,这个会生成一个常驻的通知栏,比较影响用户,但是效果确实很好,想办法隐藏了通知栏,但效果立马大打折扣。促活比较有效的方案是注册系统账号,可以告知系统定时同步,发生同步操作时应用进程会被拉起,不过同步时间是由系统决定的,而且当灭屏时似乎一直不会触发同步。


Java

服务器负载一直比较高,最近上到了4亿request/d,6个实例抗,量级还在不断增长,又加多了两个实例。高峰期服务器负载还是会上升到6以上,FullGC一到两小时触发一次,好在时间不长,大概两三百毫秒。JVM调优有待学习。


end