摘要: protobuf使用规范 翻译自 官网 一个简单示例 //指定语法为proto3 syntax = "proto3"; //定义一个名为SearchRequest的消息 message SearchRequest { optional string query = 1; required int32 阅读全文
posted @ 2023-11-23 18:24 longan55 阅读(504) 评论(0) 推荐(0)
摘要: RPC基本原理-使用GRPC实现来讲解 RPC原理架构 基本概念 1.什么是RPC ​ RPC远程过程调用(Remote Procedure Call),就是调用另一个进程上的函数,一般是调用另一台主机上进程的函数。RPC是一个应用层协议,底层要依赖其他协议传输数据,如http,tcp,websoc 阅读全文
posted @ 2023-11-23 18:22 longan55 阅读(80) 评论(0) 推荐(0)
摘要: 2.1 Go V1.3标记清除法 V1.3之前: (1)停止业务(STW),标记可达对象 (2)清除 (3)继续业务 缺点:1.卡顿;2.标记需要扫描整个Heap;3.产生Heap碎片 V1.3优化: 缩小STW范围,相比之前,现在STW不包含Sweep清除了 2.2 Go V1.5的三色标记法 G 阅读全文
posted @ 2023-11-21 21:53 longan55 阅读(81) 评论(0) 推荐(0)
摘要: 分组加密(对称加密是一种分组加密) 特点:加密解密使用同一个秘钥 优点:加解密简单,速度快 缺点:秘钥传输问题,只要秘钥未被泄露,这是最快的加密方式 DES对称加密算法 - des包 AES对称加密算法 - aes包 分组密码算法五种标准分组模式 - cippher包 公钥密码(非对称加密) 特点: 阅读全文
posted @ 2023-11-21 20:41 longan55 阅读(26) 评论(0) 推荐(0)
摘要: sync包 一、sync还是channel ​ Go语言提倡“不要通过共享内存来通信,而应该通过通信来共享内存”。正如在前文阐述的那样,建议大家优先使用CSP并发模型进行并发程序设计。但是在下面一些场景下,我们依然需要sync包提供的低级同步原语。 (1)需要高性能的临界区同步机制场景。 在Go中, 阅读全文
posted @ 2023-11-10 20:47 longan55 阅读(29) 评论(0) 推荐(0)
摘要: 一、channel特性 无缓冲channel特性 1. 通信和同步(单方面的读或写会阻塞) 2. 一发送,多接受,只有一个goroutine能接收到 3. 一接收,多发送,发送端goroutine只能阻塞,一个一个goroutine抢占式发送 4. 关闭一个channel,所有接收端都会收到停止阻塞 阅读全文
posted @ 2023-11-10 20:20 longan55 阅读(471) 评论(0) 推荐(0)
摘要: HTTP协议原生支持的认证 1.基本认证 Basic Authentication 基本认证只需要将用户名密码-简单方便但是明文传输不安全 未认证响应 状态: 401 头部: WWW-Authenticate 值: Basic realm="IP Camera(L4236)" 客户端具体做法: 1. 阅读全文
posted @ 2023-10-27 20:25 longan55 阅读(354) 评论(0) 推荐(0)
摘要: 1.BCD码和字符串互转 //字符串utf-8编码兼容ASCII //案例:传输32010600019240,BCD码传输,转储字符串数字 //1.将32 01 06 00 01 92 40 BCD编码后[50 1 6 0 1 146 64] src := "32010600019240" data 阅读全文
posted @ 2023-10-25 21:04 longan55 阅读(177) 评论(0) 推荐(0)
摘要: 编码相关总结 一:基础 字符集:字符的集合,如ASCII是英文字符集,Unicode是最全的字符集, GB2312 是汉字字符集。 编码方式:字符集的字节表示方式,定义了一个字符用几个字节,用那些字节(码点)表示这个字符。 关系:一个字符集至少有一种编码方式,如Unicode有utf-8和utf-1 阅读全文
posted @ 2023-10-17 22:04 longan55 阅读(44) 评论(0) 推荐(0)
摘要: 什么情况下写测试? 1、当代码修改了内存结构时要写test测试,如切面的append会创建新的切面,尤其是存在切片嵌套(多维切片)时的append。 2、复杂算法,一般算法也会修改数据结构,所以也要写test测试。 3、共用代码,当一段代码或一个方法根据不同的情况有不同的结果时可能要写test测试。 阅读全文
posted @ 2023-03-20 14:15 longan55 阅读(39) 评论(0) 推荐(0)