0%

1. grpc原理

1.1 通信方式

gRPC 允许你定义四类服务方法:

  1. 简单RPC(Simple RPC)

    即客户端发送一个请求给服务端,从服务端获取一个应答,就像一次普通的函数调用。

    1
    2
    rpc SayHello(HelloRequest) returns (HelloResponse){
    }
  2. 服务端流式RPC(Server-side streaming RPC):

    一个请求对象,服务端可以传回多个结果对象。即客户端发送一个请求给服务端,可获取一个数据流用来读取一系列消息。客户端从返回的数据流里一直读取直到没有更多消息为止。

    1
    2
    rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse){
    }
  3. 客户端流式RPC(Client-side streaming RPC)

    客户端传入多个请求对象,服务端返回一个响应结果。即客户端用提供的一个数据流写入并发送一系列消息给服务端。一旦客户端完成消息写入,就等待服务端读取这些消息并返回应答。

    1
    2
    rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {
    }
  4. 双向流式RPC(Bidirectional streaming RPC)

    结合客户端流式rpc和服务端流式rpc,可以传入多个对象,返回多个响应对象。即两边都可以分别通过一个读写数据流来发送一系列消息。这两个数据流操作是相互独立的,所以客户端和服务端能按其希望的任意顺序读写。

    1
    2
    rpc BidiHello(stream HelloRequest) returns (stream HelloResponse){
    }
阅读全文 »

1. ansible 安装

在 ansible 的世界里,我们会通过 inventory 档案来定义有哪些 managed node (被控端),并借由 ssh 和 python 进行沟通。换句话说,当 control machine (主控端) 可以用 ssh 连上 managed node,且被连上的机器里有预载 python 时,ansile 就可以运作了.

  • 控制端
1
2
sudo apt install ansible #linux
brew install ansible # mac
  • 被控端

    要安装 python, 并且能被控制端 ssh

阅读全文 »

1. 基础

1.1 权限

1
2
3
4
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
阅读全文 »

1. 域名相关

hostnslookup,两者都可以有效地进行DNS查询。

1.1 host

host 命令是一个用于DNS(域名系统)查找的命令行工具。它可以用来查询域名的IP地址、查找域名的MX记录、NS记录等。以下是一些常见的用法示例:

阅读全文 »

记录一些 linux 常见的问题解决方案。

1. ssh 相关

1.1 用户加到 sudo 用户组

1
2
3
4
vi /etc/sudoers

# 可以看到有个 sudo 用户组
# %sudo ALL=(ALL:ALL) ALL
阅读全文 »

1. 查看linux系统信息

1.1 查看系统版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial

#uname -srm
Linux 4.15.0-1060-gcp x86_64

#cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

#cat /proc/version
Linux version 4.15.0-1060-gcp (buildd@lcy01-amd64-028) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #64-Ubuntu SMP Thu Mar 26 03:21:15 UTC 2020

#cat /etc/issue
Ubuntu 16.04.6 LTS \n \l
阅读全文 »

1. golang 实现HTTPS Web Server

  • 生成私钥和证书
1
2
openssl genrsa -out server.key 2048 //生成私钥
openssl req -new -x509 -key server.key -out server.pem -days 3650 //生成证书
阅读全文 »

1. 服务器相关

变量名备注示例
nginx_version当前运行的 Nginx 版本号1.11.2
server_port服务器端口8080
server_addr服务器端地址127.0.0.1
server_name服务器名称127.0.0.1
server_protocol服务器的HTTP版本HTTP/1.0
statusHTTP 响应代码200
time_iso8601服务器时间的 ISO 8610 格式2018-09-02T15:14:27+08:00
time_local服务器时间(LOG Format 格式)02/Sep/2018:15:14:27 +0800
document_root当前请求的文档根目录或别名/home/xiaowu/github/echo.xuexb.com
request_filename当前连接请求的文件路径,由 rootalias指令与 URI 请求生成/home/xiaowu/github/echo.xuexb.com/api/dump/path
request_completion如果请求成功,值为”OK”,如果请求未完成或者请求不是一个范围请求的最后一部分,则为空
pid工作进程的PID1234
msec当前的Unix时间戳1535872750.954
limit_rate用于设置响应的速度限制0
pipe如果请求来自管道通信,值为“p”,否则为“.”.
connection_requestsTCP连接当前的请求数量1
connectionTCP 连接的序列号363861
realpath_root当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径/home/xiaowu/github/echo.xuexb.com
阅读全文 »