动态库查找路径及LD_LIBRARY_PATH问题
说到和动态库查找路径相关的问题,总体上可以分为两类:
- 第一类:通过源代码编译程序时出现的找不到某个依赖包的问题
- 第二类:就是在运行程序的时候,明明把那个程序需要的依赖包都已经安装的妥妥的了,可运行的时候人家就告诉你说
error while loading shared libraries: libxxx.so.y: cannot open shared object file: No such file or directory
。
为iterm2设置shadowsocks代理
shadowsocks是我们常用的代理工具,它使用socks5协议,而终端很多工具目前只支持http和https等协议,对socks5协议支持不够好,所以我们为终端设置shadowsocks的思路就是将socks协议转换成http协议,然后为终端设置即可。
1. 设置终端代理
最新的 ShadowsocksX-NG 已经支持终端代理, 我们可以如下图复制得出:
1 | export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087; |
protobuf3语法指南02
protobuf3语法指南
Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单。您可以定义数据的结构化,然后可以使用特殊生成的源代码轻松地在各种数据流中使用各种语言编写和读取结构化数据。
grpc的原理与实战
1. grpc原理
1.1 通信方式
gRPC 允许你定义四类服务方法:
简单RPC(Simple RPC)
即客户端发送一个请求给服务端,从服务端获取一个应答,就像一次普通的函数调用。
1
2rpc SayHello(HelloRequest) returns (HelloResponse){
}服务端流式RPC(Server-side streaming RPC):
一个请求对象,服务端可以传回多个结果对象。即客户端发送一个请求给服务端,可获取一个数据流用来读取一系列消息。客户端从返回的数据流里一直读取直到没有更多消息为止。
1
2rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse){
}客户端流式RPC(Client-side streaming RPC)
客户端传入多个请求对象,服务端返回一个响应结果。即客户端用提供的一个数据流写入并发送一系列消息给服务端。一旦客户端完成消息写入,就等待服务端读取这些消息并返回应答。
1
2rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {
}双向流式RPC(Bidirectional streaming RPC)
结合客户端流式rpc和服务端流式rpc,可以传入多个对象,返回多个响应对象。即两边都可以分别通过一个读写数据流来发送一系列消息。这两个数据流操作是相互独立的,所以客户端和服务端能按其希望的任意顺序读写。
1
2rpc BidiHello(stream HelloRequest) returns (stream HelloResponse){
}
ansible部署的实践
linux系统基础
linux命令02-解决方案
linux命令01-查看信息
1. 查看linux系统信息
1.1 查看系统版本
1 | #lsb_release -a |