微服务防火墙友好策略

简介: 在对比RPC与restful时,大致有几点:1. 协议:http相对更规范,更标准,更通用,无论哪种语言都支持http协议;RPC协议性能要高的多,例如Protobuf、Thrift、Kyro等,(如果算上序列化)吞吐量大概能达到http的二倍2. 安全性:基于Http更安全一些,默认80端口,防火墙友好

前言


在对比RPC与restful时,大致有几点:

  1. 协议:http相对更规范,更标准,更通用,无论哪种语言都支持http协议;RPC协议性能要高的多,例如Protobuf、Thrift、Kyro等,(如果算上序列化)吞吐量大概能达到http的二倍
  2. 安全性:基于Http更安全一些,默认80端口,防火墙友好

防火墙友好

In TCP/IP protocol, reply are always thanks to a dynamic port. The client communicate with the server with port 135 or 111 and answer in done by a port dynamically opened by the client.

说RPC防火墙不友好,主要是应用IP与port的变化,都需要改变防火墙策略

  1. 一台物理机可能部署多个应用,开放多个端口
  2. 应用服务自动伸缩,对调用方无感知
  3. 如果是容器,那IP是动态的

这些情况,都会造成运维频繁变更防火墙策略,增加维护成本

应对

为了应对维护成本,在有防火墙时,可以让客户端绕行到固定的堡垒机上,这样防火墙规则就相对固定,不需要动态维护

在安全级别或者不同区域的跨区访问,需要绕行;比如同机房,或者客户端的安全级别超过了服务端安全级别,那就不需要绕行

当然如果有了绕行,客户端就能访问防火墙后面的所有服务,导致访问权限过大,就需要加入鉴权

实践

之前在《Service Mesh之Sidecar》中有过对游戏架构的说明

image.gif

这儿更详细了点,加上了IDC与防火墙,就是当gameserver与跨服不在同一个IDC时,需要处理防火墙友好

对gameserver添加firewall配置项
规则格式为:
idc-proxy的域名:端口|绕行白名单ip或子网掩码(多个间用,分隔)
如:idcb-cluster.proxy.com:9090|10.199.188.66/20,10.200.123.66/20

核心思想就是让需要跨区访问的client走特定的proxy-cluster,通过proxy-cluster访问背后的服务

这样防火墙策略也相对固定

逻辑

  • 1.gameserver连接对应的跨服
  • 2.sidecar-proxy检查有没有firewall配置项,若有,查看配置的proxy-cluster是不是域名 (一般都是域名)
  • 3.通过域名nslookup找到LVS的所有IP列表
  • 4.调用服务到LVS的IP

nslookup可以借助java的dnsjava:http://www.dnsjava.org/

1. try {
2.     Lookup lookup = new Lookup(name, Type.A);
3.     lookup.run();
4.     if (lookup.getResult() == Lookup.SUCCESSFUL) {
5.         Record[] answers = lookup.getAnswers();
6.         if (answers != null && answers.length > 0) {
7.             String[] addrs = new String[answers.length];
8.             for (int i = 0; i < addrs.length; i++) {
9.                 addrs[i] = answers[i].rdataToString();
10.             }
11. 
12.             return Arrays.asList(addrs);
13.         }
14.     }
15.         } catch (TextParseException e) {
16.             e.printStackTrace();
17.         }
目录
相关文章
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
671 102
|
缓存 监控 API
电商API的微服务架构优化策略
随着电商快速发展,API成为连接用户、商家与系统的核心。本文探讨微服务架构下电商API的优化策略,分析高并发、低延迟与数据一致性等挑战,并提供服务拆分、缓存异步、监控容器化等实践方案,助力构建高性能、高可用的电商系统,提升用户体验与业务效率。
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
698 3
|
监控 安全 持续交付
构建高效微服务架构:策略与实践####
在数字化转型的浪潮中,微服务架构凭借其高度解耦、灵活扩展和易于维护的特点,成为现代企业应用开发的首选。本文深入探讨了构建高效微服务架构的关键策略与实战经验,从服务拆分的艺术到通信机制的选择,再到容器化部署与持续集成/持续部署(CI/CD)的实践,旨在为开发者提供一套全面的微服务设计与实现指南。通过具体案例分析,揭示如何避免常见陷阱,优化系统性能,确保系统的高可用性与可扩展性,助力企业在复杂多变的市场环境中保持竞争力。 ####
361 2
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
421 5
|
消息中间件 运维 Cloud Native
云原生架构下的微服务优化策略####
本文深入探讨了云原生环境下微服务架构的优化路径,针对服务拆分、通信效率、资源管理及自动化运维等核心环节提出了具体的优化策略。通过案例分析与最佳实践分享,旨在为开发者提供一套系统性的解决方案,以应对日益复杂的业务需求和快速变化的技术挑战,助力企业在云端实现更高效、更稳定的服务部署与运营。 ####
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
343 5
|
Ubuntu 安全 网络协议
ubuntu22.04防火墙策略
在Ubuntu 22.04中,配置防火墙策略是保障系统安全的关键。UFW提供了简便的界面,适合大多数用户,而iptables则提供了更为强大的功能,适合高级用户和复杂环境。通过合理设计防火墙策略,可以有效防止未经授权的访问,提升系统的安全性和稳定性。无论是通过UFW还是iptables,定期审查和更新防火墙规则都是必不可少的,以应对不断变化的安全威胁。
1268 3
|
监控 Cloud Native Java
云原生架构下微服务治理策略与实践####
【10月更文挑战第20天】 本文深入探讨了云原生环境下微服务架构的治理策略,通过分析当前技术趋势与挑战,提出了一系列高效、可扩展的微服务治理最佳实践方案。不同于传统摘要概述内容要点,本部分直接聚焦于治理核心——如何在动态多变的分布式系统中实现服务的自动发现、配置管理、流量控制及故障恢复,旨在为开发者提供一套系统性的方法论,助力企业在云端构建更加健壮、灵活的应用程序。 ####
479 10