1. rpr和http服务浅谈 rpc 是Remote Procedure Call ,远程过程调用。 http 是 HyperText
    Transfer Protocol ,超文本传输协议。 了解着两个,首先就要明白osi网络七层模型
    第一层:应用层。定义了用于在网络中进行通信和传输数据的接口; 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等;
    第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断; 第四层:传输层。管理着网络中的端到端的数据传输;
    第五层:网络层。定义网络设备间如何传输数据; 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输;
    第七层:物理层。这一层主要就是传输这些二进制数据。
    实际应用中是没有表示层和会话层的。可以说他们是合并了,我们应该将重点放在应用层和传输层这两个层面。因为HTTP是应用层协议,而TCP是传输层协议。
    流行的RPC框架 目前流行的开源RPC框架还是比较多的。下面重点介绍三种:
    gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言。
    我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持。
    这个RPC框架是基于HTTP协议实现的,底层使用到了Netty框架的支持。
    Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的IDL定义文件自动生成服务代码框架。用户只要在其之前进行二次开发就行,对于底层的RPC通讯等都是透明的。不过这个对于用户来说的话需要学习特定领域语言这个特性,还是有一定成本的。
    Dubbo是阿里集团开源的一个极为出名的RPC框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是及其鲜明的特色。同样
    的远程接口是基于Java
    Interface,并且依托于spring框架方便开发。可以方便的打包成单一文件,独立进程运行,和现在的微服务概念一致。
    偷偷告诉你集团内部已经不怎么使用dubbo啦,现在用的比较多的叫HSF,又名“好舒服”。后面有可能会开源,大家拭目以待。 HTTP服务
    其实在很久以前,我对于企业开发的模式一直定性为HTTP接口开发,也就是我们常说的RESTful风格的服务接口。的确,对于在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的http协议进行传输。我们记得之前本科实习在公司做后台开发的时候,主要就是进行接口的开发,还要写一大份接口文档,严格地标明输入输出是什么?说清楚每一个接口的请求方法,以及请求参数需要注意的事项等。比如下面这个例子:
    POST http://www.httpexample.com/restful/buyer/info/share
    接口可能返回一个JSON字符串或者是XML文档。然后客户端再去处理这个返回的信息,从而可以比较快速地进行开发。但是对于大型企业来说,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。
    RPC服务和HTTP服务还是存在很多的不同点的,一般来说,RPC服务主要是针对大型企业的,而HTTP服务主要是针对小企业的,因为RPC效率更高,而HTTP服务开发迭代会更快。总之,选用什么样的框架不是按照市场上流行什么而决定的,而是要对整个项目进行完整地评估,从而在仔细比较两种开发框架对于整个项目的影响,最后再决定什么才是最适合这个项目的。一定不要为了使用RPC而每个项目都用RPC,而是要因地制宜,具体情况具体分析。

借鉴与RPC服务和HTTP服务对比

rpr和http服务浅谈相关推荐

  1. 环信大学:业务互联网化与客户中心韧性服务 —— 浅谈12306十年填坑路对客户中心智能化变革的启示

    12306作为传统线下服务模式向线上互联网服务模式的重大服务创新,被认为是全球最忙碌的网站.无论火车订票服务还是其他的客户服务来说,服务请求和服务资源不匹配,是永恒的话题. 这些年,企业进行了很多的服 ...

  2. 浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务)

    浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) 参考文章: (1)浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) (2)https://www.cnblogs.com/ ...

  3. rsync命令_浅谈利用rsync服务的攻击

    本文将根据针对Linux操作系统上不安全的Rsync配置,浅谈如何利用rsync服务进行攻击. 1.什么是RSYNC? Rsync是用于在两个服务器(通常是Linux)之间传输和同步文件的实用程序.它 ...

  4. 微信平台第三方服务器,浅谈微信第三方服务平台的发展前景

    伴随着移动端的普及,移动互联网也在飞速的发展,同时也有越来越多的小商家开始抓住了移动互联网的这个渠道开展营销活动.而随着微信的不断更新和发展,微信用户也越来越多,而如今如雨后春笋般出现的各类微信第三方 ...

  5. 浅谈surging服务引擎中的rabbitmq组件和容器化部署

    1.前言 上个星期完成了surging 的0.9.0.1 更新工作,此版本通过nuget下载引擎组件,下载后,无需通过代码build集成,引擎会通过Sidecar模式自动扫描装配异构组件来构建服务引擎 ...

  6. 浅谈前后端分离与实践 之 nodejs 中间层服务

    一.背景 书接上文,浅谈前后端分离与实践(一) 我们用mock服务器搭建起来了自己的前端数据模拟服务,前后端开发过程中只需定义好接口规范,便可以相互进行各自的开发任务.联调的时候,按照之前定义的开发规 ...

  7. 浅谈服务治理、微服务与服务网格(Service Mesh)

    浅谈服务治理.微服务与Service Mesh Spring Cloud 之"出身名门望族" 作为当下最火热的微服务框架,Spring Cloud的名字可以说是无人不知.无人不晓, ...

  8. Spring Cloud浅谈个人尝鲜------Zuul 服务网关(五)

    Spring Cloud浅谈个人尝鲜------Zuul 服务网关(五) 前面几篇文章我们学习了Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止 ...

  9. 2019FME博客大赛——浅谈FME在国土空间规划技术服务中的实践和应用

    参赛单元:传统GIS数据处理 作者:施仲添 单位:杭州市城市规划信息中心(杭州市地理信息中心) [摘要] 随着规划行业对空间数据的利用分析和需求日益增加,在日常的国土空间规划技术服务中涉及空间数据的情 ...

最新文章

  1. python多线程输出_Python多线程
  2. Mysql之drop、truncate和delete的区别
  3. MTK深圳公司嵌入式软件工程师笔试题(含部分答案)
  4. 不管工作压力太大了,还是工作压力太小了;都容易引起开发人员的辞职风波...
  5. 【摩天好课推荐】1 Python简介
  6. LeetCode 80. 删除排序数组中的重复项 II
  7. c语言中的数据变量类型,大小
  8. 监听滚动条和浏览器大小变化
  9. php zhxing iptables,Linux iptables 扩展 ipset 使用教程
  10. fscapture设置中文_Fscapture是什么软件?有没有功能介绍?
  11. 【LeetCode】【字符串】题号:*520. 检测大写字母
  12. Jeff Atwood:软件工程已死?
  13. chrome应用程序无法正常启动0x0000005
  14. 模式识别和机器视觉智能方面的论文投稿---国际著名期刊杂志论文投稿
  15. 论文阅读笔记:Selecting Informative Contexts Improves Language Model Fine-tuning
  16. Ubuntu 安装 XDM 2018 ( Xtreme Download Manager 2018 )
  17. commvault oracle容灾,解析Commvault云管理解决方案如何实现数据的一体化管理
  18. 拼多多API接口,item_search - 按关键字搜索商品
  19. python是不是很简单_Python老师说Python是编程里最简单的还是两眼一抹黑咋办?
  20. configure配置脚本的使用

热门文章

  1. 新锐任务宝活动风险控制?
  2. python 报错:IndentationError: expected an indented block
  3. SQL DATEPART()函数
  4. select epoll原理分析
  5. CNN-SLAM:学习深度预测的实时稠密单目SLAM
  6. python发送QQ邮件报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER]和smtplib.SMTPAuthenticationError(已解决)
  7. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-979 移动
  8. 使用Lua执行一个Lua文件
  9. SqlZoo错题整理
  10. LeetCode刷题系列-- 174. 地下城游戏