中软国际Java机试,如何写出高效率的SQL?

天天熬夜敲代码 2021-09-15 04:14:43
java 后端 程序员


什么是 RPC?RPC原理是什么?

什么是 RPC?

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。比如两个不同的服务 A、B 部署在两台不同的机器上,那么服务 A 如果想要调用服务 B 中的某个方法该怎么办呢?使用 HTTP请求 当然可以,但是可能会比较慢而且一些优化做的并不好。 RPC 的出现就是为了解决这个问题。

RPC原理是什么?

中软国际Java机试,如何写出高效率的SQL?_程序员

  1. 服务消费方(client)调用以本地调用方式调用服务;
  2. client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
  3. client stub找到服务地址,并将消息发送到服务端;
  4. server stub收到消息后进行解码;
  5. server stub根据解码结果调用本地的服务;
  6. 本地服务执行并将结果返回给server stub;
  7. server stub将返回结果打包成消息并发送至消费方;
  8. client stub接收到消息,并进行解码;
  9. 服务消费方得到最终结果。

下面再贴一个网上的时序图:

中软国际Java机试,如何写出高效率的SQL?_后端_02

RPC 解决了什么问题?

从上面对 RPC 介绍的内容中,概括来讲RPC 主要解决了:让分布式或者微服务系统中不同服务之间的调用像本地调用一样简单。

常见的 RPC 框架总结?

  • RMI(JDK自带):?JDK自带的RPC,有很多局限性,不推荐使用。

  • Dubbo:?Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。目前 Dubbo 已经成为 Spring Cloud Alibaba 中的官方组件。

  • gRPC?:gRPC是可以在任何环境中运行的现代开源高性能RPC框架。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证。它也适用于分布式计算的最后一英里,以将设备,移动应用程序和浏览器连接到后端服务。

  • Hessian:?Hessian是一个轻量级的remotingonhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

  • Thrift:?Apache Thrift是Facebook开源的跨语言的RPC通信框架,目前已经捐献给Apache基金会管理,由于其跨语言特性和出色的性能,在很多互联网公司得到应用,有能力的公司甚至会基于thrift研发一套分布式服务框架,增加诸如服务注册、服务发现等功能。

最后

 CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

中软国际Java机试,如何写出高效率的SQL?_后端_03

中软国际Java机试,如何写出高效率的SQL?_后端_04

版权声明
本文为[天天熬夜敲代码]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15298521/3887956

  1. tomcat常见面试题,聊聊你对分布式锁技术方案的理解,
  2. spring源码视频教程,我是如何收割多家大厂offer的?
  3. spring框架教程推荐,2021最新爱奇艺Java社招面试题目,
  4. Spring事務擴展機制,2021大廠Java知識點總結 面試題解析!
  5. Java Development Interview Question with Answers, 2021 Big Factory Java Knowledge point Summary Interview Question Analysis!
  6. Java + SSM Maotai Liquor e - commerce Platform for Computer Graduation DesignVente d'alcool
  7. spring框架教程推薦,2021最新愛奇藝Java社招面試題目,
  8. Recommandé pour le tutoriel Spring Framework, 2021 dernière question d'entrevue d'embauche de la société aiqiyi Java,
  9. Spring source Video tutoriel, comment récolter plusieurs grandes usines?
  10. Springcloud learning notes (I)
  11. Basic knowledge of hive (III) complete collection of functions in hive
  12. spring源碼視頻教程,我是如何收割多家大廠offer的?
  13. 【微信小程序】,看看最新BTA大厂的Java程序员的招聘技术标准,
  14. 【工作经验分享】,2021最新百度、头条等公司Java面试题目,
  15. 【微信小程序】,看看最新BTA大廠的Java程序員的招聘技術標准,
  16. [Widget Wechat] pour voir les dernières normes techniques de recrutement des programmeurs Java de BTA.
  17. Video | Tencent cloud enterprise MySQL (CDB) - dynamic thread pool function
  18. Upgrade your Linux PC hardware using open source tools
  19. RTFM! How to read (and understand) the magic man pages in Linux
  20. [partage d'expérience de travail], 2021 les dernières questions d'entrevue Java de Baidu, Headlines, etc.
  21. Java 16 is coming online. You can't even use the features of Java 8, can you?
  22. Java (3) basic data types and their type conversion
  23. 一位Java大牛的BAT面试心得与经验总结,2021年Java春招面试经历,
  24. 一举拿下腾讯美团滴滴offer,快来瞧瞧这份Spring面试小抄!
  25. 一个Java应届生从上海离职,万字长文总结Java多进程,
  26. Seven design principles of java object-oriented design pattern
  27. 一個Java應届生從上海離職,萬字長文總結Java多進程,
  28. Un nouvel étudiant Java a quitté Shanghai et a résumé plusieurs processus Java.
  29. Prenez d'un coup l'offre de Tencent meituan et jetez un coup d'oeil à cette copie de l'entrevue de printemps!
  30. L'expérience et l'expérience d'un Maverick Java en matière d'entrevue sur les MTD, l'expérience de l'entrevue d'embauche du printemps Java en 2021,
  31. Interface graphique X: mise à jour des tables de rendu et optimisation du Code (compilation intégrée 10)
  32. Widget de vérification de fichiers personnalisés Linux
  33. Java thread pool - work queue
  34. [Part 7] - Summary of B2B2C e-commerce technology of spring cloud live mall managed by git branch
  35. Reflection type of Java Foundation
  36. Want to get started with data structures, but always fall under the pomegranate skirt of the linked list?
  37. Interviewer: do redis transactions satisfy atomicity?
  38. 一篇文章教你搞定计算机网络面试,350道Java面试真题分享,
  39. 一条正确的Java职业生涯规划,揭秘今年Java春招面试必问问题有哪些?
  40. 一名毕业三年的女程序媛面试头条经验,关于Redis主从节点数据过期一致性的思考,
  41. Huawei cloud guassdb (for redis) released a new version: Lua script and SSL connection encryption
  42. Java thread pool - work queue
  43. 一名畢業三年的女程序媛面試頭條經驗,關於Redis主從節點數據過期一致性的思考,
  44. Trois ans d'expérience d'entrevue avec une femme de programmation diplômée, une réflexion sur la cohérence de l'expiration des données de redis Master slave Node,
  45. Un plan de carrière Java correct, découvrez les questions que vous devez poser lors de l'entrevue d'embauche du printemps Java de cette année.
  46. 万字详解微服务的哨兵机制,架构师带你玩转Redis高性能缓存设计实战,
  47. Un article vous a appris à gérer les entrevues sur le Web, à partager 350 vraies questions d'entrevue Java,
  48. Jquery Tools Methodology collation, Sharing a little interview Experience
  49. Tutoriel de développement Java, compétences de base nécessaires pour interviewer un programmeur Java dans une grande usine,
  50. "Anti Mafia storm" has just finished, another criminal investigation play has come, and the supporting actor is more popular than the protagonist
  51. 萬字詳解微服務的哨兵機制,架構師帶你玩轉Redis高性能緩存設計實戰,
  52. L'architecte vous guidera dans la conception de cache haute performance de redis.
  53. Linux驱动开发: 杂项字符设备
  54. Jquery plug - in urianchor, app front end Development
  55. Linux驅動開發: 雜項字符設備
  56. Développement de pilotes Linux: périphériques de caractères divers
  57. Utilisez @ async dans Spring boot pour effectuer des appels asynchrones et accélérer l'exécution des tâches!
  58. $in jquery, Visualized Web Development Tool
  59. Le développement Java doit être fait. Les entrevues https demandent souvent une analyse complète.
  60. 不断提升自己创造溢价的能力,字节跳动 阿里 华为 腾讯等大厂Java面试题,