热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微服务架构实战学习(三):RPC框架

接上篇,上篇中对微服务间的通信方式进行了讲解,我们知道微服务间的通信方式主要是基于RPC协议。今天分享现如今主流的RPC框架RPC框架如上文我瞎举的示例(直到效果就好…),RPC框

接上篇,上篇中对微服务间的通信方式进行了讲解,我们知道微服务间的通信方式主要是基于 RPC 协议。今天分享现如今主流的 RPC 框架

RPC 框架

如上文我瞎举的示例(直到效果就好…),RPC 框架就类似于干了那些诸如派单、物流等等一系列事情的平台。而服务调用方只需要订阅另一个服务提供方的服务,RPC 框架就会把结果扔给服务调用方(粗糙地类似于用户点餐平台的流程)。

1.1 alibaba dubbo(Dubbox)

dubbo 是 alibaba 前几年开源的 RPC 框架,后来停止维护。Dubbox 是当当在 alibaba 停止维护后基于 Dubbo 而维护的 RPC 框架项目。现在,alibaba 又开始了对 dubbo 的维护,而且项目已经捐献给了 apache 基金会,期待 ali 为开源项目提供更多的支持以及维护。

1 dubbo 架构图

《微服务架构实战学习(三):RPC 框架》 Dubbo 架构图

从架构图上我们可以看到 0、1、2 这三步是服务启动时的初始化工作,其中 1 就类似于某咖啡店跟某点餐平台注册账号一样,2 就类似于需要点餐的用户也在点餐平台上来注册账号。

3 则表示如果服务提供者的地址发生了变化,就通知给服务调用者。这类似于咖啡店的的电话变了,平台会通知到用户。

4 服务调用者从注册中心拿到服务提供者的地址并调用服务。这其中包括负载均衡。

5 服务消费者与提供者和注册中心之间都使用的是长连接,在调用过程中,会在内存中对调用次数进行统计,然后定时反馈给监控中心对调用进行监控。

注:

  • 图中实线表示的是同步调用,而虚线则表示的是异步调用。
  • 消费者与提供者之间使用的是非阻塞IO(NIO)

2 dubbo github 地址

https://github.com/apache/incubator-dubbo

3 dubbox 官方中文文档地址

http://dubbo.apache.org/books/dubbo-user-book/

1.2 sina motan

motan 是新浪开源的服务治理框架,据说使用简单,我没使用过…

1 github 地址

https://github.com/weibocom/motan

2 中文文档地址

https://github.com/weibocom/motan/wiki/zh_overview

3 motan 架构

《微服务架构实战学习(三):RPC 框架》 motan 架构

1.3 apache thrift

thrift 是 facebook 开发,后来开源并捐献给了 apache 社区,且 thrift 是一个跨语言的 RPC 框架,且支持市面上的主要的编程语言。

1 thrift 官方

http://thrift.apache.org/

2 文档

http://thrift.apache.org/tutorial/

1.4 google grpc

grpc 是 Google 开源 RPC 框架,高性能、开源、将移动和 HTTP/2 放在首位的通用的 RPC 框架,基于 HTTP/2, netty4.1, proto3, 拥有非常丰富而实用的特性,堪称 RPC 框架的典范。

但 grpc 它本身它不是分布式的

1 grpc github 地址

https://github.com/grpc/grpc

2 文档地址

https://github.com/grpc/grpc/tree/master/doc

1.5 spring cloud

Spring Cloud 完全基于 Spring Boot,服务调用方式是基于 REST API。整合了各种成熟的产品和架构,并且基于 spring boot 也使得整体的开发、配置、部署都异常的方便。

1 官方地址

http://projects.spring.io/spring-cloud/

2 文档地址

https://spring.io/docs

接下来,会进一步对上方各框架进行一些横向对比。并且,会基于 spring cloud 来进行示例开发。敬请期待


推荐阅读
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 如何正确配置与使用日志组件:Log4j、SLF4J及Logback的连接与整合方法
    在当前的软件开发实践中,无论是开源项目还是日常工作中,日志框架都是不可或缺的工具之一。本文详细探讨了如何正确配置与使用Log4j、SLF4J及Logback这三个流行的日志组件,并深入解析了它们之间的连接与整合方法,旨在帮助开发者高效地管理和优化日志记录流程。 ... [详细]
  • 5分钟学会 gRPC
    5分钟学会gRPC-介绍我猜测大部分长期使用Java的开发者应该较少会接触gRPC,毕竟在Java圈子里大部分使用的还是DubboSpringClound这两类服务框架。我也是 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • Apache Hadoop HDFS QJournalProtocol 中 getJournalCTime 方法的应用与代码实例分析 ... [详细]
  • 提升Android开发效率:Clean Code的最佳实践与应用
    在Android开发中,提高代码质量和开发效率是至关重要的。本文介绍了如何通过Clean Code的最佳实践来优化Android应用的开发流程。以SQLite数据库操作为例,详细探讨了如何编写高效、可维护的SQL查询语句,并将其结果封装为Java对象。通过遵循这些最佳实践,开发者可以显著提升代码的可读性和可维护性,从而加快开发速度并减少错误。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 近年来,BPM(业务流程管理)系统在国内市场逐渐普及,多家厂商在这一领域崭露头角。本文将对当前主要的BPM厂商进行概述,并分析其各自的优势。目前,市场上较为成熟的BPM产品主要分为两类:一类是综合型厂商,如IBM和SAP,这些企业在整体解决方案方面具有明显优势;另一类则是专注于BPM领域的专业厂商,它们在特定行业或应用场景中表现出色。通过对比分析,本文旨在为企业选择合适的BPM系统提供参考。 ... [详细]
  • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • 了解_Istio是啥?一文带你彻底了解!
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Istio是啥?一文带你彻底了解!相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
tcystars_628
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有