云原生技术:反向代理、Kubernetes与分布式系统可观测性
1. 反向代理的优势与服务发现
反向代理具有多种优势,为系统的灵活性、性能和安全性提供了有力支持。
1.1 反向代理的优势
- 灵活性和可扩展性 :可以根据需求随时修改代理背后的基础设施。
- 缓存 :若已知服务器的响应,可避免再次请求,减少服务器负担。
- 压缩 :压缩数据能降低带宽需求,对网络连接较差的移动用户尤为有用,还可降低网络成本,但可能消耗更多计算资源。
- SSL 终止 :减轻后端服务器加密和解密网络流量的负担。
常见的反向代理如 NGINX,它还具备负载均衡、A/B 测试和服务发现等功能。
1.2 服务发现
服务发现(Service Discovery,SD)可自动检测计算机网络中特定服务的实例。通过指向服务注册表,架构变得更加灵活,便于查找和使用服务。在微服务架构中,引入服务发现非常重要。
服务发现有两种主要方法:
- 客户端发现 :调用者直接联系 SD 实例。每个服务实例都有一个注册表客户端,负责注册、注销实例,处理心跳等。例如 Netflix Eureka 是常用的服务注册表。
- 服务器端发现 :调用者不直接联系服务注册表,而是连接到负载均衡器,如 AWS Elastic Load