前言
在 linux 中我们经常会使用&
符号让进程在后台运行,例如:
1 | nohup java -jar app.jar & |
但是这样的话在终端就看不到输出了,有时候临时需要排查问题看不到输出就 GG 了。
解决办法
其实可以利用proc
系统文件来访问程序对应的输出:
- 首先获取到进程对应的
PID
- 通过
tail
命令读取输出:
1 | #获取标准输出 |
在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。
HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层
。
HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下:
1 | POST http://www.baidu.com HTTP/1.1 |
1 | HTTP/1.1 200 OK |
使用 docker 的时候为了排查问题经常需要下载一些软件包,但是一般镜像中都没有vim
,如果直接用apt
官方源去下载,基本上就是下面这样:
这是因为没有更新源,需要通过apt-get update
进行更新,但是国内访问官方源的速度实在是太慢,要修改成国内的源镜像去加速,这里记录下没有vim
的情况下如何快速修改源地址。
1 | sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list |
1 | apt-get update |
首先请思考一下以下代码执行的结果:
1 | //声明一个AOP拦截service包下的所有方法 |
本文介绍的是proxychains-ng项目
在 linux 上运行一些命令的时候,经常访问到国外的网站,速度非常的慢,例如用git
、wget
等等,这个时候就可以通过proxychain
工具来使用代理进行网络访问,使用教程如下:
1 | proxychains4 git clone [email protected]:rofl0r/proxychains-ng.git |
在所有要运行的命令行之前加上proxychains4
就可以通过代理进行网络访问了。
在一次升级阿里云 k8s 版本之后暴露出来一个问题,一般在 k8s 集群中都会使用service域名
来进行服务之间访问,但是为了在本地开发时能访问到这些服务,又会通过ingress
暴露在外网中,这样在开发的时候就可以直接使用的ingress
暴露的外网域名进行访问。
按理说本地开发环境的时候使用外网域名
,在部署到 k8s 的时候应该使用 k8s 内部的service域名
就什么事都没有了,然而在没有强约束的情况下很多项目调用集群内部服务的时候还是使用的外网域名
,然而这样可能会导致服务调用失败,没想到吧。对此我们咨询了阿里云,给我们的回答是:
好吧,按着提示把externalTrafficPolicy
选项修改为Cluster
,确实问题解决了,但是这样一改又把源IP
丢失了,在后端服务中获取的IP
都变成了Node IP
,这肯定也不行。