0%

背景

前段时间同事碰到一个问题,需要在 SpringCloud 的 Feign 调用中使用自定义的 URL;通常情况下是没有这个需求的;毕竟都用了 SpringCloud 的了,那服务之间的调用都是走注册中心的,不会需要自定义 URL 的情况。

Read more »

介绍

我猜测大部分长期使用 Java 的开发者应该较少会接触 gRPC,毕竟在 Java 圈子里大部分使用的还是 Dubbo/SpringClound 这两类服务框架。

我也是近段时间有机会从零开始重构业务才接触到 gRPC 的,当时选择 gRPC 时也有几个原因:

  • 基于云原生的思路开发部署项目,而在云原生中 gRPC 几乎已经是标准的通讯协议了。
  • 开发语言选择了 Go,在 Go 圈子中 gRPC 显然是更好的选择。
  • 公司内部有部分业务使用的是 Python 开发,在多语言兼容性上 gRPC 支持的非常好。
Read more »

不知不觉年终总结就像每个人的 KPI 一样,年底不总结一下感觉今年就白过了似的。

今年时间真的感觉过的特别快,经常感觉工资刚发不久结果没几天又到了发薪日;再也没有小时候一个暑假都能过一年的感觉。

Read more »

前言

最近实现某个业务时,需要读取数据然后再异步处理;在 Go 中实现起来自然就比较简单,伪代码如下:

1
2
3
4
5
6
7
8
9
10
list := []*Demo{{"a"}, {"b"}}
for _, v := range list {
go func() {
fmt.Println("name="+v.Name)
}()
}

type Demo struct {
Name string
}
Read more »

前言

早在几年前写过关于 LRU cache 的文章:
https://crossoverjie.top/2018/04/07/algorithm/LRU-cache/

当时是用 Java 实现的,最近我在完善 ptg 时正好需要一个最近最少使用的数据结构来存储历史记录。

ptg: Performance testing tool (Go), 用 Go 实现的 gRPC 客户端调试工具。

Go 官方库中并没有相关的实现,考虑到程序的简洁就不打算依赖第三方库,自己写一个;本身复杂度也不高,没有几行代码。

Read more »

go-grpc-client-gui.md---008i3skNly1gwuz3q9a2nj30rs0rs3z1.jpg

前言

平时大家写完 gRPC 接口后是如何测试的?往往有以下几个方法:

  1. 写单测代码,自己模拟客户端测试。
    go-grpc-client-gui.md---008i3skNly1gwv0138u2ij31eq0lwn07.jpg

  2. 可以搭一个 gRPC-Gateway 服务,这样就可以在 postman 中进行模拟。

Read more »