gRPC 搭配 Swagger 实现微服务文档化
gRPC 搭配 Swagger 实现微服务文档化 本文探讨了程序员对文档编写的矛盾态度,以及在微服务架构中接口文档的重要性。介绍了使用 protoc-gen-doc 方案生成 Protobuf 格式的 gRPC 服务文档,并提供了 Docker 部署示例。另外,还介绍了整合 Swagger 的方案,通过 GrpcSwaggerProvider 来实现 gRPC 与 Swagger 的结合,使得查阅和调试 gRPC 接口更加便捷。最后,作者分享了对服务治理中接口文档重要性的思考,并总结了两种针对 gRPC 的服务文档化方案的优缺点。
ASP.NET Core 搭载 Envoy 实现 gRPC 服务代理
ASP.NET Core 搭载 Envoy 实现 gRPC 服务代理 在构建以 gRPC 为核心的微服务架构中,作者介绍了通过 Envoy 的 gRPC-JSON Transcoder 功能实现将 gRPC 服务代理成 JSON API 的方案。通过配置 Envoy 过滤器实现 JSON 和 Protobuf 的转换,需要生成服务描述文件,然后配置 Envoy,即可像调用 JSON API 一样调用 gRPC。这种方案已在作者所在公司全面采用,通过 Docker-Compose 编排多个微服务,并通过 Envoy 统一入口。最终实现了 gRPC 与 Web 的无缝对接,为消费 gRPC 服务提供便利。
ASP.NET Core 搭载 Envoy 实现微服务身份认证(JWT) 在构建基于 gRPC 的微服务架构中,Envoy 对 gRPC 的支持使得可以通过转码实现对 gRPC 服务的调用,从而将其暴露为外部通信接口。为确保接口安全性,通过 Keycloak 搭建 JWT 身份认证功能,使得 Envoy 可以利用 JWKS 对接口调用方进行身份认证。文章介绍了 JWT 和 JWKS 的概念,以及如何利用它们实现容器级别的认证服务,在 Envoy 中配置了 JWT 认证过滤器,并说明了如何通过 Keycloak 获取 JWKS 进行 JWT 令牌验证,最终实现了一个通用的认证网关。
ASP.NET Core 搭载 Envoy 实现微服务的监控预警 本文介绍了如何利用 Envoy、Prometheus 和 Grafana 对微服务进行可视化监控。在 Envoy 的早期版本中,通常通过 statsd 来采集信息,而在最新版本中,Envoy 可以直接输出 Prometheus 需要的数据格式。使用PromQL 查询语言在 Grafana 中制作自定义图表,可以根据业务场景定制仪表板,并在 Prometheus 中定义告警规则。这种监控方案适用于集群化环境,帮助监控基础设施和及时发现问题。整体内容涵盖了监控方案的搭建步骤和关键概念,为读者提供了详细指导。
ASP.NET Core 搭载 Envoy 实现微服务的负载均衡 本文探讨了熵增定律和负载均衡的关系,指出负载均衡的目的是优化资源利用、提高吞吐量、降低响应时间以避免过载。通过类比现实生活中的排队现象,解释了负载均衡的重要性。介绍了负载均衡器的分类和算法,以及在Envoy 中的应用。最后,结合 ASP.NET Core 编写了一个实例来演示负载均衡的实际应用。
ASP.NET Core 搭载 Envoy 实现微服务的反向代理 本文介绍了作者对 Envoy 的学习历程和实践经验。Envoy 是一个专为原生云应用设计的开源边缘和服务代理,在大型现代服务导向架构中担任L7代理和通讯总线的角色。文章详细介绍了 Envoy 的架构、配置文件结构,以及如何通过 Docker-Compose 实现服务编排来搭建反向代理网关。通过对 Listeners、Clusters 以及管理/Admin 等部分的配置,作者展示了如何实现基于 Envoy 的反向代理功能。文章还提及了与 Nginx 和 Ocelot 的比较,以及对Envoy 特性的探讨。整体内容涵盖了对 Envoy 基本概念的介绍和实际操作,为读者提供了一份关于 ASP.NET Core 搭载 Envoy 实现微服务反向代理的指南。
ASP.NET Core gRPC 打通前端世界的尝试 在构建以 gRPC 为核心的微服务架构过程中,涉及到了 gRPC 的过滤器、健康检查、重试等内容。随着现代前端框架如React、Angular和Vue的兴起,以及前后端分离的趋势,将 gRPC 与前端打通成为一个复杂问题。文章介绍了四种打通 gRPC 和前端的方式:gRPC-Web、gRPC-Gateway、封装 Web API和编写中间件。其中,gRPC-Web提供了通过命令行工具生成强类型客户端代码的方案,而gRPC-Gateway则是将RESTful JSON API转换为gRPC服务的方案。另外,封装 Web API和编写中间件也是解决这一问题的方案。文章最后强调了通过编写中间件的方式,将 gRPC 服务转化为 Web API 的思路,并提供了相关的代码示例。
ASP.NET Core gRPC 健康检查的探索与实现 本文探索了gRPC服务健康检查的两种实现方式:基于IHostedService和Timer的轮询方案以及基于Consul的服务注册、服务发现、健康检查方案。对于Consul方法,还涉及到客户端负载均衡的原理和实现。此外,还介绍了gRPC客户端负载均衡和gRPC接口测试工具grpcurl和grpcui的使用方法。文章总结了这些内容并鼓励读者参与讨论。