Vue.js 前端项目容器化部署实践极简教程
Vue.js 前端项目容器化部署实践极简教程 本文介绍了在「微雨燕双飞」的一天中,作者接到朋友询问前端容器化部署问题的电话。作者分享了使用 Docker 容器化部署前端项目的实践教程,以 Vue.js 为例。通过编写 Dockerfile 实现多阶段构建,包括使用 node.js 构建前端项目和部署到 Nginx 静态文件服务器等步骤。另外,还提及了 Nginx 的配置以及使用 OpenSSL 创建证书的过程。最后,作者鼓励读者根据教程进一步完善部署,并展望了未来将撰写关于 ASP.NET Core 测试的文章。
利用 ASP.NET Core 中的标头传播实现分布式链路追踪
利用 ASP.NET Core 中的标头传播实现分布式链路追踪 作者介绍了一种新的 ASP.NET Core 集成方案,通过安装 `Microsoft.AspNetCore.HeaderPropagation` 包,使用 `HeaderPropagation` 中间件,避免了以往在不同微服务或子系统中显式传递 HTTP 请求头的问题。在 `Startup` 配置中添加请求头,通过 `AddHttpClient` 配置 `HttpClient` ,并在请求管道中加入 `UseHeaderPropagation` 中间件,以自动传播请求头。这种方案不仅适用于分布式链路追踪,如 Envoy 和 Jaegers,还适用于认证等其他场景,提高了代码的整洁与可维护性。
Envoy 集成 Jaeger 实现分布式链路追踪
Envoy 集成 Jaeger 实现分布式链路追踪 当将应用架构从单体系统迁移到微服务时,业务逻辑被拆分到不同服务中,导致微服务实际上是不同服务间的互相请求和调用。随着容器/虚拟化技术的发展,传统物理服务器被云服务器或虚拟资源取代,使得分布式环境中的运维和诊断变得复杂。主要的分布式追踪方向有 Logging、Metrics 和 Tracing,其中 Tracing 涉及 Envoy、Jaeger 和 .NET Core 的实现。分布式追踪系统基于 Dapper 论文,如 Zipkin、Jeager、Skywalking、LightStep 等系统,采用代码埋点、数据存储和查询展示三个步骤。OpenTracing 规范定义了 Trace 由多个 Span 组成,而每个 Span 包含多个 Tag。Envoy 通过 Zipkin 或 Jeager 支持外部追踪服务,实现分布式追踪。通过 Envoy 的 Gateway 模式实现请求追踪,结合 ASP.NETCore 和 Jeager 实现示例,展示服务调用链的追踪和分析。
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 实现微服务反向代理的指南。