带你读《Apache Dubbo微服务开发从入门到精通》—— 三、 Dubbo2协议(中)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 带你读《Apache Dubbo微服务开发从入门到精通》—— 三、 Dubbo2协议(中)

《Apache Dubbo微服务开发从入门到精通》——通信协议—— 三、 Dubbo2协议(上) https://developer.aliyun.com/article/1224599


2. 使用场景

 

适合大并发小数据量的服务调用,服务消费者远大于服务提供者的情景。

 

3. 使用方式

 

1) 配置协议

 

image.png

 

2) 设置默认协议

 

image.png

 

3) 设置某个服务的协议

 

image.png

 

4) 多端口

 

image.png

 

5) 配置协议选项

 

image.png

 

6) 多连接配置

 

Dubbo协议缺省每服务每提供者每消费者使用单一长连接,如果数据量较大,可以使用多个连接。

 

image.png

 

或表示该服务使用JVM共享长连接。缺省

 

或表示该服务使用独立长连接。

 

或表示该服务使用独立两条长连接。

 

为防止被大量连接撑挂,可在服务提供方限制大接收连接数,以实现服务提供方自我保护。

 

image.png

 

4. 常见问题

 

问:为什么要消费者比提供者个数多?

 

答:因dubbo协议采用单一长连接,假设网络为千兆网卡1024Mbit=128MByte,根据测试经验数据每条连接最多只能压满7Mbyte不同的环境可能不一样,供参考,理论上1个服务提供者需要20个服务消费者才能压满网卡。

 

问:为什么不能传大包?

 

答:因dubbo协议采用单一长连接,如果每次请求的数据包大小为500KByte,假设网络为千兆网卡1024Mbit=128MByte,每条连接最大7Mbyte不同的环境可能不一样,单个服务提供者的TPS每秒处理事务数最大为:128MByte/500KByte=262。单个消费者调用单个服务提供者的TPS每秒处理事务数最大为:7MByte/500KByte=14。如果能接受,可以考虑使用,否则网络将成为瓶颈。

 

问:为什么采用异步单一长连接

 

答:因为服务的现状大都是服务提供者少,通常只有几台机器,而服务的消费者多,可能整个网站都在访问该服务,比如Morgan的提供者只有6台提供者,却有上百台消费者,每天有1.5亿次调用,如果采用常规的hessian服务,服务提供者很容易就被压跨,通过单一连接,保证单一消费者不会压死提供者,长连接,减少连接握手验证等,并使用异步IO,复用线程池,防止C10K问题。


《Apache Dubbo微服务开发从入门到精通》——通信协议—— 三、 Dubbo2协议(下) https://developer.aliyun.com/article/1224595

相关文章
|
1天前
|
监控 Java 开发者
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第13天】随着现代应用的复杂性日益增加,传统的单体应用架构已不足以满足快速迭代和可扩展性的需求。本文将探讨如何通过微服务架构来提升后端开发的效率和系统的可靠性,涵盖微服务设计原则、技术栈选择、部署策略以及维护实践。我们将分析微服务的优势与挑战,并提供一系列实施建议,帮助开发者在构建和维护分布式系统时做出明智决策。
|
1天前
|
存储 监控 API
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第13天】在现代软件开发中,随着业务需求的多样化和开发流程的复杂化,传统的单体应用架构逐渐显得笨重且难以适应快速变化。微服务架构作为一种新兴的分布式系统设计方式,以其灵活性、可扩展性和技术多样性受到广泛关注。本文旨在探讨微服务架构的核心概念、设计原则以及实施策略,为后端开发人员提供一种提升系统性能和开发效率的有效途径。
16 2
|
1天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。
|
1天前
|
API 持续交付 开发者
构建高效微服务架构:后端开发的新视角
【5月更文挑战第8天】 随着现代软件开发的演变,微服务架构已经成为了企业追求敏捷、可扩展和灵活部署的重要解决方案。本文将深入探讨如何构建一个高效的微服务架构,包括关键的设计原则、技术栈选择以及持续集成与部署的最佳实践。我们还将讨论微服务带来的挑战,如数据一致性、服务发现和网络延迟,并提出相应的解决策略。通过本文,后端开发者将获得构建和维护微服务系统所需的深度知识,并了解如何在不断变化的技术环境中保持系统的健壮性和可维护性。
43 8
|
1天前
|
监控 测试技术 持续交付
构建高效可靠的微服务架构:后端开发的现代实践
【5月更文挑战第14天】 随着数字化转型的浪潮,企业对于灵活、可扩展且高效的后端系统的需求日益增长。本文旨在探讨如何通过微服务架构来实现这些需求,涵盖微服务设计原则、开发流程以及持续集成和部署(CI/CD)的最佳实践。文中还将讨论监控、日志管理与容错机制,以确保系统的可靠性和性能。
|
1天前
|
设计模式 API 持续交付
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第14天】在现代软件开发的快速迭代与多变需求中,传统的单体应用架构逐渐显露出其局限性。微服务架构作为一种新兴的分布式系统设计模式,以其灵活性、可扩展性及容错性受到广泛关注。本文将深入剖析微服务架构的核心概念,探讨其在后端开发中的应用,并提出一系列实施策略和最佳实践,以期帮助企业和技术团队更好地应对复杂多变的业务挑战。
|
1天前
|
负载均衡 JavaScript Java
构建高效微服务架构:后端开发的新视角
【5月更文挑战第13天】在现代软件开发中,微服务架构已经成为一种流行趋势。它通过将应用程序拆分为一组小型、独立的服务来提高可扩展性、弹性和可维护性。本文将探讨如何构建一个高效的微服务架构,包括选择合适的技术栈、设计良好的服务接口、确保数据一致性以及实现有效的服务发现和负载均衡。
|
1天前
|
监控 持续交付 数据库
构建高效可靠的微服务架构:后端开发的新范式
【5月更文挑战第13天】 在当今软件开发的世界中,微服务架构已经成为了一种流行且有效的设计模式。它通过将大型复杂系统分解为一组独立的、可部署的服务来提高系统的可维护性、可扩展性和敏捷性。本文将探讨如何构建一个高效且可靠的微服务架构,包括关键的设计原则、技术选型以及可能面临的挑战。我们的目标是为后端开发者提供一套实用的指南,以便在构建现代化应用程序时做出明智的决策。
|
1天前
|
监控 API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第12天】 在现代软件开发的浪潮中,微服务架构已经成为了设计复杂系统的首选模式。它通过将大型应用程序拆分成一组小而专注的服务来增强系统的可维护性和可扩展性。本文将探讨微服务架构的关键概念、优势以及如何在后端开发中实现一个高效的微服务系统。我们还将讨论一些常见的挑战和最佳实践,以帮助开发者避免陷入常见的陷阱。
17 6
|
1天前
|
Kubernetes API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第11天】 在现代软件开发的快速演变中,微服务架构已成为企业追求敏捷性、可扩展性和技术多样性的关键解决方案。本文旨在探讨如何构建高效的微服务架构,并分析其对后端开发的影响。我们将通过一系列最佳实践和策略,展示如何优化服务的独立性、弹性和性能,同时确保系统的整体稳定性和安全性。文章还将介绍容器化、API网关、服务发现和分布式追踪等关键技术的应用,为后端开发者提供一份全面的微服务实施指南。

推荐镜像

更多