protobuf 消息嵌套
我们在各种语言开发中类的定义是可以互相嵌套的,也可以使用其他类作为自己的成员属性类型。 在protobuf中同样支持消息嵌套,可以在一个消息中嵌套另外一个消息,字段类型可以是另外一个消息类型。 1.引用其他消息类型的用法 // 定义Result消息 message Result { string url = 1; ...
protobuf 数组类型
在protobuf消息中定义数组类型,是通过在字段前面增加repeated关键词实现,标记当前字段是一个数组。 1.整数数组的例子: message Msg { // 只要使用repeated标记类型定义,就表示数组类型。 repeated int32 arrays = 1; } 2.字符串数组 message ...
protobuf 枚举(enum)类型
当需要定义一个消息类型的时候,可能想为一个字段指定“预定义值序列”中的一个值,这时候可以通过枚举实现。 例子: syntax = "proto3";//指定版本信息,不指定会报错 enum PhoneType //枚举消息类型,使用enum关键词定义,一个电话类型的枚举类型 { MOBILE = 0; //p ...
protobuf 数据类型
Protobuf定义了一套基本数据类型,下表罗列出了protobuf类型和其他语言类型的映射表。 .proto Type Notes C++ Type Java Type Python Type[2] Go Type Ruby Type C# Type PHP Type double double d ...
protobuf 定义消息
消息(message),在protobuf中指的就是我们要定义的数据结构。 1. 语法 syntax = "proto3"; // 指定 proto3 语法版本,默认为 proto2 语法版本。 package test; // 设置包名 message 消息名 { 消息体 } syntax关键词定义使用 ...
ProtoBuf 入门教程
在网络通信和通用数据交换等应用场景中经常使用的技术是 JSON 或 XML,本教程介绍另外一个数据交换的协议的工具ProtoBuf。 1、简介 protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,详情访问protobuf的google官方网站。 protocol buffe ...
高并发相关技巧(待完善)
1.系统的稳定性 高并发业务中首先要考虑的是:系统的稳定性。是首先要保证的问题点。 就好比我一卖早点的,突然一千人冲过来了,咋办,为了保证我店面的安全,要么让排队,然后限制供应。要是油条半天做不出来,等的人等了很久了,咱就给它熔断掉,不卖了,大家也别等了,告辞了您嘞。还有就是卖豆浆的师傅扛不住了,太累了就休息休息,不 ...
PHP-FPM 进程模型
php-fpm 多进程模型,同步阻塞,异步io 进程模型 PHP-FPM 是一个 PHP FastCGI进程管理器,包含 master 进程和 worker 进程两种进程: master 进程只有一个,负责监听端口,接收来自 Web Server 的请求, worker 进程则一般有多个 (具体数量根据实际需要配置), ...
urldecode & rawurldecode 说明
区别: urlencode把空格编码为 '+', rawurlencode()把空格编码为 '%20' urldecode() 会把 '+' 解码为空格,rawurldecode() 不会 注意 因为'+' 号是 base64的编码字符,当urldecode与base64_decode配合使用时,要用rawurldec ...
利用 http_build_query 字符串拼接生成签名注意事项
在与第三方 api 对接时,我们经常会遇到将传参按照键名进行 ASCII 升序排序,然后 构建 key=value 格式的字符串,并用 & 连接,最终将得到的字符串进行 md5 加密得到签名。 遇到这种场景 在 PHP 语言中我么一般会使用 http_build_query 将传参转换为字符串,但这里有一个点要 ...
iptables 配合 ipset 进行大批量 IP 封禁
使用 iptables 批量封禁 IP 1、创建要封禁的IP配置文件 vim /path/iptables/deny_ip.conf 121.12.34.56 23.45.67.66 43.56.78.123 ... 2、创建脚本将要封禁的IP批量导入 iptables vim /path/deny_ip.sh # ...