SpringCloud与Dubbo深度对比:架构、性能与生态全解析

引言

在微服务架构盛行的今天,服务治理框架的选择成为企业技术栈决策的关键环节。Spring Cloud和Dubbo作为Java生态中最具代表性的两大微服务框架,各自拥有独特的优势和适用场景。本文将从架构设计、服务治理、性能表现、生态系统等多个维度进行深度对比,结合代码示例、流程图和实际应用场景,帮助开发者做出更合理的技术选型。

1. 架构设计对比

1.1 整体架构

Spring Cloud采用"全家桶"模式,提供了一整套微服务解决方案:

graph TB
subgraph Spring Cloud Architecture
A[API Gateway] --> B[Service A]
A --> C[Service B]
B --> D[Service Registry<br/>Eureka/Consul]
C --> D
B --> E[Config Server]
C --> E
B --> F[Circuit Breaker<br/>Hystrix/Sentinel]
C --> F
B --> G[Load Balancer<br/>Ribbon]
C --> G
B --> H[Message Queue<br/>RabbitMQ/Kafka]
C --> H
end

Dubbo则采用更轻量级的RPC框架设计:

graph TB
subgraph Dubbo Architecture
A[Consumer] --> B[Registry<br/>Zookeeper/Nacos]
A --> C[Provider]
B --> C
A --> D[Monitor]
C --> D
A --> E[Config Center]
C --> E
end

1.2 核心组件对比

组件类型Spring CloudDubbo
服务注册发现Eureka, Consul, NacosZookeeper, Nacos
服务调用OpenFeign (HTTP/REST)Dubbo RPC (高性能二进制协议)
负载均衡Ribbon内置负载均衡
熔断降级Hystrix, Sentinel, Resilience4j内置熔断机制
配置中心Spring Cloud Config, ApolloApollo, Nacos
网关Spring Cloud Gateway, Zuul无内置网关(需集成)
链路追踪Sleuth + Zipkin集成Pinpoint, SkyWalking

1.3 通信协议对比

Spring Cloud

  • 主要基于HTTP/REST协议
  • 文本协议,可读性强
  • 跨语言支持好
  • 性能相对较低

Dubbo

  • 自定义二进制RPC协议
  • 高性能二进制协议
  • 跨语言支持较弱(需适配)
  • 性能优异
// Spring Cloud服务调用示例(Feign)
@FeignClient(name = "user-service")
public interface UserServiceClient {@GetMapping("/users/{id}")User getUserById(@PathVariable("id") Long id);
}// Dubbo服务调用示例
@Reference
private UserService userService;public User getUser(Long id) {return userService.getUserById(id);
}

2. 服务治理能力对比

2.1 服务注册与发现

Spring Cloud

// 服务提供者配置
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}// 服务消费者配置
@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}

Dubbo

<!-- 服务提供者配置 -->
<dubbo:application name="user-provider"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:protocol name="dubbo" port="20880"/>
<dubbo:service interface="com.example.UserService" ref="userService"/>

<!-- 服务消费者配置 -->
<dubbo:application name="user-consumer"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:reference id="userService" interface="com.example.UserService"/>

2.2 负载均衡策略

Spring Cloud Ribbon提供多种负载均衡策略:

  • RoundRobinRule:轮询
  • WeightedResponseTimeRule:权重响应时间
  • RetryRule:重试机制
  • BestAvailableRule:最小并发请求
@Configuration
public class LoadBalancerConfig {@Beanpublic IRule ribbonRule() {return new WeightedResponseTimeRule();}
}

Dubbo内置负载均衡策略:

  • RandomLoadBalance:随机
  • RoundRobinLoadBalance:轮询
  • LeastActiveLoadBalance:最少活跃调用数
  • ConsistentHashLoadBalance:一致性哈希

<dubbo:reference interface="com.example.UserService" loadbalance="leastactive"/>

2.3 熔断与降级

Spring Cloud Hystrix

@HystrixCommand(fallbackMethod = "getDefaultUser",commandProperties = {@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "4"),@HystrixProperty(name = "circuitBreaker.errorThresholdPercentage", value = "50"),@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000")})
public User getUserById(Long id) {return userServiceClient.getUserById(id);
}public User getDefaultUser(Long id) {return new User(id, "Default User", "default@example.com");
}

Dubbo熔断降级:

// 服务提供者
public class UserServiceImpl implements UserService {public User getUserById(Long id) {if (id == null) {throw new RuntimeException("Invalid ID");}return userDao.getUserById(id);}
}// 服务消费者配置
<dubbo:reference interface="com.example.UserService" mock="com.example.UserServiceMock"/>

graph TD
A[客户端请求] --> B{调用次数<br/>是否达到阈值?}
B -->|是| C{错误率<br/>是否超过阈值?}
B -->|否| D[正常调用]
C -->|是| E[熔断开启<br/>直接返回降级结果]
C -->|否| D
E --> F[半开状态<br/>尝试放行一个请求]
F --> G{请求是否成功?}
G -->|是| H[关闭熔断]
G -->|否| E

3. 性能对比

3.1 基准测试数据

测试场景Spring Cloud (TPS)Dubbo (TPS)响应时间差异
简单对象查询3,50012,000Dubbo快3.4倍
复杂对象传输2,8009,500Dubbo快3.4倍
高并发场景2,2008,000Dubbo快3.6倍
大数据量传输1,5006,000Dubbo快4倍

3.2 性能差异原因分析

  1. 协议层面

    • Spring Cloud基于HTTP/REST,文本协议开销大
    • Dubbo使用自定义二进制协议,序列化效率高
  2. 序列化方式

    • Spring Cloud默认JSON序列化
    • Dubbo支持Hessian2、Kryo等高效序列化
// Dubbo高效序列化配置
<dubbo:protocol name="dubbo" serialization="kryo"/>
  1. 网络模型
    • Spring Cloud基于HTTP,每次请求建立新连接
    • Dubbo支持长连接,减少连接建立开销

graph LR
subgraph Spring Cloud
A[Client] -->|HTTP请求| B[Load Balancer]
B -->|HTTP请求| C[Service Instance 1]
B -->|HTTP请求| D[Service Instance 2]
end

subgraph Dubbo
E[Client] -->|长连接| F[Provider 1]
E -->|长连接| G[Provider 2]
end

4. 生态系统对比

4.1 技术生态全景

Spring Cloud生态

graph TD
SC[Spring Cloud] --> SCG[Spring Cloud Gateway]
SC --> SCF[Spring Cloud Function]
SC --> SCC[Spring Cloud Config]
SC --> SCS[Spring Cloud Security]
SC --> SCT[Spring Cloud Task]
SC --> SCStr[Spring Cloud Stream]
SC --> SCH[Spring Cloud Sleuth]
SC --> SCB[Spring Cloud Bus]
SC --> SCCl[Spring Cloud Commons]
SC --> SCN[Spring Cloud Netflix]
SC --> SCO[Spring Cloud OpenFeign]
SC --> SCCu[Spring Cloud CircuitBreaker]
SC --> SCZ[Spring Cloud Zookeeper]
SC --> SCCo[Spring Cloud Consul]
SC --> SCN[Spring Cloud Nacos]

Dubbo生态

graph TD
D[Dubbo] --> DR[Dubbo Registry]
D --> DC[Dubbo Config]
D --> DM[Dubbo Monitor]
D --> DRP[Dubbo RPC]
D --> DRemoting[Dubbo Remoting]
D --> DF[Dubbo Filter]
D --> DCI[Dubbo Cluster]
D --> DS[Dubbo Serialization]
D --> DX[Dubbo Extensions]
DX --> DXA[Apache Shenyu]
DX --> DXS[Seata]
DX --> DXN[Nacos]
DX --> DXA2[Arthas]
DX --> DXS2[Sentinel]

4.2 社区活跃度对比

指标Spring CloudDubbo
GitHub Stars21.5K39.2K
贡献者数量650+550+
Release频率每月更新每季度更新
Stack Overflow问题35K+12K+
中文文档完善度非常高
企业采用率非常高

4.3 与云原生技术集成

Spring Cloud

  • 与Kubernetes集成良好
  • 支持Service Mesh架构
  • 云原生配置管理
  • 容器化部署友好
# Spring Cloud Kubernetes配置示例
spring:cloud:kubernetes:discovery:enabled: trueconfig:enabled: truename: user-servicenamespace: default

Dubbo

  • 正在加强云原生支持
  • Dubbo Kubernetes Operator
  • 与Service Mesh集成(如Istio)
  • 容器化部署支持
# Dubbo Kubernetes Operator示例
apiVersion: dubbo.apache.org/v1alpha1
kind: DubboApplication
metadata:name: user-service
spec:replicas: 3template:spec:containers:- name: user-serviceimage: apache/dubbo-demo:user-serviceports:- containerPort: 20880

5. 代码实现对比

5.1 服务提供者实现

Spring Cloud

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class UserServiceProvider {@GetMapping("/users/{id}")public User getUser(@PathVariable Long id) {return new User(id, "John Doe", "john@example.com");}public static void main(String[] args) {SpringApplication.run(UserServiceProvider.class, args);}
}

Dubbo

@Service // Dubbo的Service注解
public class UserServiceImpl implements UserService {@Overridepublic User getUser(Long id) {return new User(id, "John Doe", "john@example.com");}public static void main(String[] args) throws Exception {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");context.start();System.in.read();}
}

5.2 服务消费者实现

Spring Cloud

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class UserConsumer {@Autowiredprivate UserServiceClient userServiceClient;@GetMapping("/consume/{id}")public User consumeUser(@PathVariable Long id) {return userServiceClient.getUserById(id);}public static void main(String[] args) {SpringApplication.run(UserConsumer.class, args);}
}

Dubbo

public class UserConsumer {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("consumer.xml");UserService userService = context.getBean(UserService.class);User user = userService.getUser(1L);System.out.println(user);}
}

5.3 配置方式对比

Spring Cloud

# application.yml
spring:application:name: user-servicecloud:nacos:discovery:server-addr: 127.0.0.1:8848sentinel:transport:dashboard: 127.0.0.1:8080

Dubbo

<!-- provider.xml -->
<dubbo:application name="user-provider"/>
<dubbo:registry address="nacos://127.0.0.1:8848"/>
<dubbo:protocol name="dubbo" port="20880"/>
<dubbo:service interface="com.example.UserService" ref="userService"/>
<bean id="userService" class="com.example.UserServiceImpl"/>

6. 实际应用场景对比

6.1 电商系统场景

Spring Cloud适用场景

  • 复杂业务流程
  • 多语言混合开发
  • 快速迭代需求
  • 需要丰富中间件支持

graph TD
A[用户请求] --> B[API Gateway]
B --> C[用户服务]
B --> D[商品服务]
B --> E[订单服务]
C --> F[数据库]
D --> F
E --> F
C --> G[缓存]
D --> G
E --> G
C --> H[消息队列]
E --> H

Dubbo适用场景

  • 高性能要求场景
  • 内部服务调用
  • 单一语言开发
  • 对响应时间敏感

graph TD
A[前端] --> B[API网关]
B --> C[订单服务]
B --> D[支付服务]
C --> E[库存服务]
D --> E
C --> F[物流服务]
D --> F

6.2 金融系统场景

Spring Cloud优势

  • 完善的安全机制
  • 丰富的监控能力
  • 审计追踪支持
  • 合规性工具

Dubbo优势

  • 高性能交易处理
  • 低延迟通信
  • 高可用性保障
  • 精细化流量控制

6.3 Prompt示例

Spring Cloud开发Prompt

请设计一个基于Spring Cloud的微服务架构,包含以下组件:
1. 使用Spring Cloud Gateway作为API网关
2. 服务注册发现使用Nacos
3. 配置中心使用Spring Cloud Config
4. 熔断降级使用Sentinel
5. 链路追踪使用Sleuth+Zipkin
6. 服务间调用使用OpenFeign
7. 负载均衡使用Ribbon要求:
- 提供各服务的核心配置
- 实现一个用户服务和一个订单服务
- 展示服务间调用的完整流程
- 包含熔断降级示例代码

Dubbo开发Prompt

请设计一个基于Dubbo的分布式服务系统,要求:
1. 使用Zookeeper作为注册中心
2. 实现用户服务和订单服务
3. 配置负载均衡策略为最少活跃数
4. 实现服务熔断和降级机制
5. 使用Kryo序列化提高性能
6. 配置服务监控
7. 实现异步调用示例要求:
- 提供provider和consumer的完整配置
- 实现服务接口和实现类
- 展示服务调用过程
- 包含性能优化配置

7. 混合架构实践

在实际项目中,Spring Cloud和Dubbo可以混合使用,发挥各自优势:

graph TB
subgraph 混合架构
A[前端] --> B[Spring Cloud Gateway]
B --> C[Spring Cloud Service A]
B --> D[Spring Cloud Service B]
C --> E[Dubbo Service 1]
C --> F[Dubbo Service 2]
D --> G[Dubbo Service 3]
E --> H[数据库]
F --> H
G --> H
end

混合架构配置示例

// Spring Cloud服务中调用Dubbo服务
@Service
public class SpringCloudService {@Referenceprivate DubboService dubboService;public String process() {// Spring Cloud业务逻辑String result = dubboService.dubboMethod();// 处理结果return "Processed: " + result;}
}

8. 未来发展趋势

8.1 Spring Cloud发展方向

  • 更深度的云原生集成
  • 响应式编程支持增强
  • 服务网格架构融合
  • GraalVM原生镜像支持

8.2 Dubbo发展方向

  • 云原生架构全面适配
  • 多语言支持扩展
  • Service Mesh深度集成
  • 协议标准化(HTTP/3, gRPC)

8.3 融合趋势

graph LR
A[Spring Cloud] -->|融合| C[统一微服务平台]
B[Dubbo] -->|融合| C
C --> D[云原生适配]
C --> E[多协议支持]
C --> F[服务网格集成]
C --> G[统一治理能力]

9. 总结与选型建议

9.1 技术选型决策树

graph TD
A[开始选型] --> B{是否需要<br/>HTTP/REST API?}
B -->|是| C{是否需要<br/>高性能RPC?}
B -->|否| D[选择Dubbo]
C -->|是| E[混合架构<br/>Spring Cloud + Dubbo]
C -->|否| F{是否需要<br/>丰富中间件?}
F -->|是| G[选择Spring Cloud]
F -->|否| H{团队是否<br/>熟悉Spring生态?}
H -->|是| G
H -->|否| D

9.2 选型建议

选择Spring Cloud的场景

  1. 构建完整的微服务生态系统
  2. 需要REST API对外提供服务
  3. 团队熟悉Spring生态
  4. 需要丰富的中间件支持
  5. 多语言混合开发环境
  6. 快速迭代开发需求

选择Dubbo的场景

  1. 对性能有极高要求
  2. 内部服务调用为主
  3. 单一语言开发环境
  4. 需要精细化的服务治理
  5. 对响应时间敏感
  6. 已有Dubbo技术积累

混合架构适用场景

  1. 系统中同时存在内外部服务
  2. 不同服务有不同性能要求
  3. 逐步迁移现有系统
  4. 需要兼顾灵活性和性能
  5. 大型复杂分布式系统

9.3 最佳实践建议

  1. 新项目启动

    • 优先考虑Spring Cloud Alibaba
    • 使用Nacos作为注册/配置中心
    • 集成Sentinel进行流量控制
  2. 性能敏感场景

    • 核心服务使用Dubbo
    • 边缘服务使用Spring Cloud
    • 合理设置序列化方式
  3. 运维监控

    • 统一日志收集系统
    • 分布式链路追踪
    • 全方位监控指标
  4. 团队协作

    • 建立统一开发规范
    • 完善文档体系
    • 自动化测试流程

结语

Spring Cloud和Dubbo作为Java微服务领域的两大支柱框架,各有其独特的优势和适用场景。Spring Cloud以其完整的生态体系和丰富的中间件支持,适合构建复杂的微服务系统;而Dubbo则凭借其卓越的性能和精细化的服务治理能力,在高性能场景中表现突出。

在实际应用中,技术选型不应是非此即彼的选择,而应基于业务需求、团队技术栈和系统性能要求做出合理决策。随着云原生技术的发展,两大框架也在不断演进,未来可能会出现更多融合与互补的解决方案。

对于开发者而言,深入理解两大框架的架构原理和实现细节,掌握其核心组件的使用方法,才能在实际项目中做出最优的技术选择,构建出高性能、高可用的分布式系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/95200.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/95200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简历书写---自我评价怎么写

前言 今天一对一辅导了很多同学做简历&#xff0c;看到很多同学简历上都有一栏&#xff1a;自我评价 那我们就要思考一下&#xff0c;我们搞技术的&#xff0c;一份技术简历&#xff0c;自我评价上怎么写&#xff0c;才能算一个加分点呢&#xff1f; 观点分享 首先&#xff0c;…

嵌入式Linux学习 - 数据库开发

目录 一. 在终端的使用 1. 下载 2. 操作 3. 相关函数 1.增 2. 删 3. 改 4. 查 5. 补充函数 二. 在软件的使用 1. 下载 2. 操作 三. 在编程的使用 1. 下载 2. 相关函数 1. 打开 2. 读写执行sql语句 3. 关闭 一. 在终端的使用 1. 下载 sudo apt-get install …

产品运营必备的职场通用能力有哪些?如何一步步提升?

在流量红利消退的存量竞争时代&#xff0c;产品运营岗位正经历价值重构。单纯的活动策划与用户维护已无法满足发展需求&#xff0c;数据驱动的精细化运营成为行业分水岭。面对这场变革&#xff0c;复合能力建设与前瞻工具掌握是运营人突破天花板的密钥。推荐考取CDA数据分析师&…

ESPTimer vs GPTimer:ESP32 定时器系统深度解析

第十五章和第十六章分别学习了​​ESPTimer​​ 和 ​​GPTimer​​ &#xff0c;那这两种定时器有什么区别&#xff0c;如何使用呢&#xff0c;下面探讨下。1. 两种定时器对比介绍1.1 两种定时器设计在 ESP32 开发中&#xff0c;​​ESPTimer​​ 和 ​​GPTimer​​ 是两种完…

【70页PPT】WMS助力企业数字化转型(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/91806268 资料解读&#xff1a;【70页PPT】WMS助力企业数字化转型 详细资料请看本解读文章的最后内容。仓储管理在企业运营中占据关键地位&a…

[光学原理与应用-337]:ZEMAX - 自带的用于学习的样例设计

ZEMAX&#xff08;OpticStudio&#xff09;内置了大量样例设计文件&#xff0c;这些文件覆盖了从基础光学原理到复杂系统设计的全场景&#xff0c;是学习光学设计、掌握软件操作、理解像差理论的绝佳资源。以下是ZEMAX自带样例设计的详细分类、使用方法及学习价值分析&#xff…

下一波红利:用 #AI编程 闯入小游戏赛道,#看广告变现 模式正在崛起!

文章标题(可选,均包含核心关键词) 【主推标题】 #AI编程制作小游戏 的终极 #变现 指南:如何通过 #看广告变现 轻松赚钱 【疑问式标题】 #AI制作小游戏 真的能赚钱吗?揭秘 #AI编程赚钱 的四大核心路径与广告变现策略 【趋势型标题】 下一波红利:用 #AI编程 闯入小游戏赛道…

【git】add后不想commit怎么实现pull

本地有改动已 git add 到暂存区(stage)&#xff0c;但是还没 commit&#xff0c;同时远端有 28 个新提交需要拉取。 直接 git pull 会冲突或被拒绝&#xff0c;因为你本地有 staged 修改。 处理步骤有几种方案&#xff0c;我给你推荐最稳妥的几种&#xff1a;✅ 方法 1&#xf…

Unable to establish SSL connection. curl静态编译

博主有个老RHEL系统&#xff0c;内核2.6.18&#xff1b;ssl不管用了&#xff0c;最简单的wget也不行&#xff0c;下面编个静态编译的新版 curl 用用&#xff08;不影响yum源&#xff0c;不然的话系统自带的旧版 OpenSSL 受影响得得不偿失&#xff09;&#xff0c;来最优化解决下…

Redis-08 SpringBoot集成Redis常见问题

SpringBoot集成Redis的教程网上很多&#xff0c;总体来说就是三个步骤&#xff1a;添加依赖、修改配置文件、自定义Redis配置类&#xff08;自定义序列化器&#xff09;&#xff0c;具体步骤可自行搜索&#xff0c;本文主要解惑集成中的常见疑问。 1&#xff0c;选择什么依赖&…

数据结构:选择排序 (Selection Sort)

目录 从学生排队开始 算法的初始状态和核心操作 代码的逐步完善 第一阶段&#xff1a;定义函数框架和外层循环 第二阶段&#xff1a;实现“寻找最小元素”的逻辑&#xff08;内层循环&#xff09; 第三阶段&#xff1a;完成“交换”操作 复杂度与特性分析 时间复杂度 (…

Django Admin 管理工具

一、简介Django Admin 是 Django 框架最受欢迎和强大的特性之一。它是一个自动生成的管理后台&#xff0c;允许开发者无需或仅需编写少量代码&#xff0c;就能对网站的数据模型&#xff08;数据库中的表&#xff09;进行直观的增、删、改、查&#xff08;CRUD&#xff09;操作。…

园区智慧水电管理系统:让能源管理从“成本黑洞”变“利润引擎”

园区智慧水电管理系统&#xff0c;是一套专为产业园区、科技园、企业总部等大型空间设计的集智能计量、远程管控、自动计费、能耗分析于一体的数字化能源解决方案。它用技术手段解决水电管理中的“抄表难、收费乱、浪费多、数据缺”四大顽疾&#xff0c;真正实现降本、提效、控…

DeepSeek应用技巧-通过MCP打造数据分析助手

本文章将通过MCP服务来打造一个数据分析助手&#xff0c;可以直接读取本地的excel或csv的文件&#xff0c;然后生成可视化的报告并保存在本地&#xff0c;十分有应用和实践的价值&#xff0c;话不多说&#xff0c;我们开始手把手搭建。一、知识应用&#xff08;1&#xff09;Fu…

React Hooks 完全指南:从基础到高级的实战技巧

概述 React Hooks 是 React 16.8 引入的新特性&#xff0c;允许在函数组件中使用状态和其他 React 特性。根据数据的使用场景和更新机制&#xff0c;可以将 Hooks 分为三大类&#xff1a; 1. 保存只读数据 useMemo 用途&#xff1a; 缓存计算结果&#xff0c;避免重复计算 …

PCIe 6.0 vs 5.0:带宽翻倍背后的技术革命

PCIe 6.0 vs 5.0&#xff1a;带宽翻倍背后的技术革命在数据中心、AI计算和高速存储需求爆炸式增长的今天&#xff0c;传统接口带宽已成为系统性能提升的瓶颈。PCIe 6.0的推出正是为了解决这一挑战&#xff0c;它通过革命性的技术创新&#xff0c;在保持向后兼容的同时实现了带宽…

突破传统企业组网瓶颈:某科技公司智能组网服务项目深度解析

在现代企业的数字化转型过程中&#xff0c;稳定、高效、安全的网络基础设施已成为业务发展的关键。然而&#xff0c;传统组网方案往往面临诸多挑战&#xff0c;如网络性能不足、组网复杂度高、扩展性不佳、以及安全防护薄弱等问题。为了解决这些痛点&#xff0c;某科技公司通过…

ubuntu单机实现10000个连接同时在线测试

连接前 成功连接后 前端测试连接脚本: c_5k.sh !/bin/bash ulimit -n 100000 # client_simulator.sh SERVER_IP="192.168.0.106" SERVER_PORT=8080 MAX_CLIENTS=5000 BATCH_SIZE=100echo "Starting $MAX_CLIENTS clients to $SERVER_IP:$SERVER_PORT"…

防护墙技术(一):NAT

###源NAT基本原理 NAT&#xff08;Network Address Translation&#xff09;网络地址转换技术 源NAT技术对IP报文的源地址进行转换&#xff0c;将私有IP地址转换为公网IP地址&#xff0c;使大量私网用户可以利用少量公网IP地址访问internet&#xff0c;大大减少对公网IP的消耗 …

动态规划2(c++)

酒鬼#include <bits/stdc.h> using namespace std; int main() {int n;cin>>n;int a[10010];for(int i 1;i<n;i){cin>>a[i];}int dp[1010][5] {0};dp[0][0] 0;dp[1][0] 0;dp[1][1] a[1];dp[1][2] 0;dp[2][0] a[1];dp[2][1] a[2];dp[2][2] a[1]a[…