0%

1. error

Go的处理异常逻辑是不引入exception,支持多参数返回,所以你很容易的在函数签名中带上实现了error interface的对象,交由调用者来判定。

如果一个函数返回了(value,eror),你不能对这个value做任何假设,必须先判定error。唯一可以忽略error的是,如果你连value也不关心。

阅读全文 »

1. gRPC

1.1 特性

  • 多语言:语言中立,支持多种语言。
  • 轻量级、高性能:序列化支持 PB(Protocol Buffer)和 JSON,PB 是一种语言无关的高性能序列化框架。
  • 可插拔:扩展插件。
  • IDL(约束):基于文件定义服务,通过 proto3 工具生成指定语言的数据结构、服务端接口以及客户端 Stub。
  • 基于标准的 HTTP2 设计,支持双向流、消息头压缩、单 TCP 的多路复用、服务端推送等特性,这些特性使得 gRPC 在移动端设备上更加省电和节省网络流量。
  • 流:Streaming API。
  • 阻塞式和非阻塞式:支持异步和同步处理在客户端和服务端间交互的消息序列。
  • 元数据交换:常见的横切关注点,如认证或跟踪,依赖数据交换。
  • 标准化状态码:客户端通常以有限的方式响应 API 调用返回的错误。
阅读全文 »

1. 微服务概览

1.1 单体架构

最主要问题就是这个应用太复杂,以至于任何单个开发者都不可能搞懂它。应用无法扩展,可靠性很低,最终,敏捷性开发和部署变的无法完成。

应对的思路:化繁为简,分而治之。

阅读全文 »

国内把tiktok限制的死死的,如果想看外面的世界,需要借助这个项目:https://github.com/Semporia/TikTok-Unlock。

需要自备的东西:1. Shadowrocket 2. 梯子节点 3. 美区appstore账号。

1. 操作流程

1.1 先降级tiktok版本

推荐 TikTok 21.1.0,如果不降级,高版本很可能不成功。

阅读全文 »

谈起音乐软件,只钟情网易云音乐。奈何版权太少,歌单里好多音乐涉及到版权的问题无法听,即使开了黑胶VIP也不行。

但是我们可以通过一些“奇淫技巧”来实现解锁灰色无版权歌曲,效果比开了黑胶VIP 还要强大。

声明:本工具只提供大家免费测试学习使用,请勿用作任何商业用途。

阅读全文 »

0. 为什么内网穿透

从公网中访问自己的私有设备向来是一件难事儿。

自己的主力台式机、NAS等等设备,它们可能处于路由器后,或者运营商因为IP地址短缺不给你分配公网IP地址。如果我们想直接访问到这些设备(远程桌面,远程文件,SSH等等),一般来说要通过一些转发或者P2P组网软件的帮助。

阅读全文 »

1. 介绍

1.1 对称加密算法

  • DES:DES 全称 Data Encryption Standard,是一种使用密钥加密的块算法。现在认为是一种不安全的加密算法,因为现在已经有用穷举法攻破 DES 密码的报道了。

  • 3DES(或称为 Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次 DES 加密算法。由于计算机运算能力的增强,原版 DES 密码的密钥长度变得容易被暴力破解;3DES 即是设计用来提供一种相对简单的方法,即通过增加 DES 的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。

  • AES 全称是 Advanced Encryption Standard,翻译过来是高级加密标准,它是用来替代之前的 DES 加密算法的。AES 加密算法的安全性要高于 DES 和 3DES,所以 AES 已经成为了主要的对称加密算法。+

  • 2000年代,DES逐渐被3DES替代。2010年代,3DES逐渐被更安全的高级加密标准(AES)替代。

阅读全文 »

在前后端数据传输的过程中, 如果没有对数据加密, 抓包软件直接能看到我请求发的是什么数据,服务端给我返回的数据是什么。

并且可以用抓包软件修改响应数据返回给客户端,这样一来,客户端实际上接收到的数据并不是服务端给我的源数据,而是被第三者修改过的数据,如此一来,数据传输的安全就很有必要了。

阅读全文 »

1. golang限流实现

1.1 实现方案

  1. uber 开源库中基于漏桶算法实现了一个限流器。https://github.com/uber-go/ratelimit

  2. 滴滴开源实现了一个对http请求的限流器中间件。可以基于以下模式限流。

    • 基于IP,路径,方法,header,授权用户等限流

    • 通过自定义方法限流

    • 还支持基于 http header 设置限流数据

    • 实现方式是基于 github/go/time 实现的,不同类别的数据都存储在一个带超时时间的数据池中。

    • 代码地址 https://github.com/didip/tollbooth

  3. golang 网络包中还有基于信号量实现的限流器。 https://github.com/golang/net/blob/master/netutil/listen.go 也值得我们去学习下。

阅读全文 »