- 博客(8)
- 收藏
- 关注
原创 使用Go和gRPC构建通信协议:实例教程
gRPC相对于传统的HTTP有几个优势:性能:gRPC使用了高效的二进制协议(Protocol Buffers)和基于HTTP/2的传输协议。这使得gRPC具有更小的消息体积和更高的传输效率,从而提供更好的性能和更低的延迟。可扩展性:gRPC支持双向流、流式传输和连接复用等特性,使得它非常适合构建实时应用程序和大规模的分布式系统。它可以轻松处理大量的并发请求,而不会对服务器资源造成过大的负担。
2023-12-28 09:18:05 1105 1
原创 升级 Go 模块版本的翻车事故及解决方案
在我的项目中,我决定将 Go 模块的版本升级到与我的编译版本一致的 Go 1.20。为了保持依赖项的一致性,我使用了 Jetbrains 提供的提示,将 beego 的版本升级到了安全版本 v2.0.3。经过测试,问题得到了解决,所有的接口恢复正常运行。在我的情况中,beego v2.0.3 与 Go 1.20 之间存在不兼容的问题,导致了应用程序的故障。通过我这次的翻车事故,我意识到在升级版本之前进行充分的测试和验证是至关重要的。及时将 beego 的版本降级到已知稳定的 v2.1.0,解决了我的问题。
2023-11-13 19:38:30 376 1
原创 iOS支付验证方式变更及Golang开发实践
首先,我们需要下载第三方包"github.com/golang-jwt/jwt",用于生成JWT Token。然后,我们需要生成一个JWT Token,用于请求验证接口"https://api.storekit.itunes.apple.com/inApps/v1/transactions"。然而,苹果公司宣布将弃用此接口,并提供了新的验证接口"https://api.storekit.itunes.apple.com/inApps/v1/transactions"
2023-11-09 15:48:07 1232 1
原创 解决Nginx错误:Upstream prematurely closed connection while reading response header from upstream
【nginx error log】 /var/log/nginx/error.log: 级别:error 类型: [other] 次数: 1 错误信息(只取第一条): upstream prematurely closed connection while reading response header from upstream, client: 50.30.156.24 server: xx requests: "GET x HTTP/1.1" upstream: "x。
2023-11-08 09:18:16 7325 2
原创 Nginx错误解决实战:SSL_do_handshake() failed
这意味着Nginx会尝试重用SSL会话,以提高性能。经过查看nginx相关文档发现默认情况下,服务器偶发报警错误日志。然后nginx修改配置。重新加载nginx配置。
2023-11-07 19:47:08 4634
原创 粘包和拆包怎么解决
解决方案:客户端在每个包的末尾使用固定的分隔符,例如\r\n,如果一个包被拆分了则等待下一个包发送过来之后找到其中的\r\n,然后对其拆分后的头部部分与前一个包的剩余部分进行合并,这样就得到了一个完整的数据包。原因:tcp在接受数据的时候,有一个缓冲区的大小,缓冲区满了就会把数据发送出去,因为每次发送的数据包的大小不是固定的,有时候比缓冲区大有时候比缓冲区小。发送数据量比较大的时候,超过了缓冲区的大小,tcp就会将其拆分为多次发送,这就是拆包,也就是将一个大的包拆分为多个小的包进行发送。
2023-11-07 14:12:36 215
原创 max_allowed_packet引发的血案
看了一下代码发现同样的推送业务逻辑,只有某个场景的推送出了问题,我就怀疑是sql问题了,查看了一下代码没发现那个sql有写报错的日志,然后我就本地模拟了一下查询sql,结果由于sql太大导致报错,没查出结果来,导致已经发送过的没拦截到。当五彩斑斓的太阳升起,我们迎接着充满希望和期待的新一天,本来准备要去钓鱼,结果收到了一个测试的消息,改变了我的计划。分片查询,尽可能让sql更精简,减少sql大小。随后百度了一下查看了一下mysql设置的值,然后开始优化代码。推送出问题了,导致玩家重复收到推送消息。
2023-11-06 11:14:56 128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人