grpc 备忘
grpcui 绑定调整
grpcui 默认是绑定在127.0.0.1上,如果需要外网访问 可以通过-bind设置
例如
grpcui -bind '0.0.0.0' -plaintext 127.0.0.1:8104
grpc 状态码
状态码 | 描述 | 说明 |
---|---|---|
0 | Ok | 返回成功 |
1 | Canceled | 操作已取消 |
2 | Unknown | 未知错误。如果从另一个地址空间接收到的状态值属于在该地址空间中未知的错误空间,则可以返回此错误的示例。 没有返回足够的错误信息的API引发的错误也可能会转换为此错误 |
3 | InvalidArgument | 表示客户端指定了无效的参数。 请注意,这与FailedPrecondition不同。 它表示无论系统状态如何(例如格式错误的文件名)都有问题的参数 |
4 | DeadlineExceeded | 意味着操作在完成之前过期。 对于更改系统状态的操作,即使操作成功完成,也可能会返回此错误。 例如,服务器的成功响应可能会延迟足够的时间以使截止日期到期 |
5 | NotFound | 表示找不到某个请求的实体(例如文件或目录) |
6 | AlreadyExists | 表示尝试创建实体失败,因为已经存在 |
7 | PermissionDenied | 表示调用者没有执行指定操作的权限。它不能用于因耗尽某些资源而引起的拒绝(使用ResourceExhausted代替这些错误)。如果调用者无法识别,则不能使用它(使用Unauthenticated代替这些错误) |
8 | ResourceExhausted | 表示某些资源已耗尽,可能是每个用户的配额,或者整个文件系统空间不足 |
9 | FailedPrecondition | 表示操作被拒绝,因为系统不处于操作执行所需的状态 |
10 | Aborted | 表示操作被中止,通常是由于并发问题(如序列器检查失败,事务异常终止等)造成的 |
11 | OutOfRange | 表示操作尝试超过有效范围 |
12 | Unimplemented | 该方法未实现 |
13 | Internal | 意味着底层系统预期的一些不变量已被打破。 如果你看到其中的一个错误,那么事情就会非常糟糕 |
14 | Unavailable | 内部Grpc服务不可用,请求不到 |
15 | DataLoss | 指示不可恢复的数据丢失或损坏 |
16 | Unauthenticated | 表示请求没有有效的操作认证凭证 |
常见状态码
- 4 超时过期
- 14 不可用(rpc服务没有开启 端口异常)
推荐阅读
GO 实现优先队列
在php中提供了SplPriorityQueue来实现优先队列操作。在Go中,虽然没有直接提供优先队列的实现,不过通过标准库container/heap可以很方便的实现一个简单的优先队列。
tim_xiao阅读 599
写给go开发者的gRPC教程-protobuf基础
本篇为【写给go开发者的gRPC教程】系列第一篇第一篇:protobuf基础 👈第二篇:通信模式第三篇:拦截器第四篇:错误处理本系列将持续更新,欢迎关注👏获取实时通知gRPC是谷歌开源的一款高性能、支持多种开发语言的服...
liangwt赞 3阅读 1.3k评论 1
Golang如何优雅接入多个远程配置中心?
本地配置文件的接入能很快速的完成,那么对于远程apollo配置中心的接入,是否也能很快速完成呢?如果有多个apollo实例都需要接入,是否能支持呢?以及apollo远程配置变更后,是否能支持热加载,实时更新呢?
王中阳Go赞 1阅读 1.4k
写给go开发者的gRPC教程-通信模式
本篇为【写给go开发者的gRPC教程系列】第二篇第一篇:protobuf基础第二篇:通信模式 👈第三篇:拦截器第四篇:错误处理上一篇介绍了如何编写 protobuf 的 idl,并使用 idl 生成了 gRPC 的代码,现在来看看如何编写...
liangwt赞 2阅读 1.2k
使用 go kit进行微服务开发
go-kit 是一个 Golang 编写的开发框架,可以帮助开发者更快捷地构建可伸缩的微服务架构。它提供了一系列模块化的组件,可以帮助开发者更轻松地构建和维护微服务。go-kit的设计理念是可组合的,它可以与各种服务发...
stillfox赞 1阅读 597
微服务拆分治理最佳实践
部门中维护了一个老系统,功能都耦合在一个单体应用中(300+接口),表也放在同一个库中(200+表),导致系统存在很多风险和缺陷。经常出现问题:如数据库的单点、性能问题,应用的扩展受限,复杂性高等问题。
京东云开发者赞 2阅读 358
公司的这种打包启动方式,我简直惊呆了!
大家都知道,SpringBoot应用最终会打出一个Fat Jar, 里面包含了用到的全部依赖,启动也非常简单,java -jar xxx.jar即可。
码猿技术专栏赞 2阅读 731
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。