最新要闻
- 湖南工学院与衡阳师范学院联合举办2023年“一校一书”阅读推广暨读书节活动开幕式 焦点消息
- 售价接近110万 网友绘制比亚迪仰望U8改装版:高低也得整一辆|天天热消息
- 微头条丨安卓之光!小米连续做了4代Ultra:米粉评价“方向对了”
- 要闻:研究表明咖啡+茶效果更佳:可降低死亡风险 但要适量
- 热点聚焦:买硬座票跑卧铺睡男子引发热议!他还教育乘务员:提高服务意识
- 主摄硬件无升级!三星Galaxy S24 Ultra将依靠软件优化拍摄质量
- 楚天科技:一次性耗材领域已完成质量体系认证,目前已有销售订单
- 全球看点:4月26日西南地区乙醇市场行情震荡整理
- 大范围降雨将重启 暴雨袭击6省:覆盖五一假期 环球即时看
- 特斯拉Autopilot每917万公里才一起事故:比人驾安全性高773% 世界新动态
- 旅美大熊猫“丫丫”将于当地4月26日归国:身体健康状态相对平稳
- 三星Exynos 2400回归!性能爆发 剑指高通骁龙8 Gen3-世界快讯
- 世界视点!撕掉油腻 三重功效:凯迪克男士洗面奶280g装19.9元
- 天天观天下!剪窗花的来历和故事_剪窗花的来历
- 市场监管总局:对明显违法违规的主播和商家要依法严厉处罚-全球最资讯
- 旅游不怕价格刺客!淘宝上线海淘“外挂”:拍照找同款比价 热点聚焦
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
读书笔记丨远程服务调用和RESTful,如何分析和抉择?
摘要:相信未来REST规范将会变得更加流行和普及。
本文分享自华为云社区《云原生时代,远程服务调用和RESTful,如何分析和抉择?》,作者:breakDawn 。
随着云原生的概念越来越火,服务的架构应该如何发展和演进,成为很多程序员关心的话题。大名鼎鼎的《深入理解java虚拟机》一书作者于21年推出了新作《凤凰架构》,从这本书中可以看到当前时下很多最新的技术或者理念。
(资料图片仅供参考)
本博文将沉淀发布这本书的学习笔记和思考。 如果希望了解更加详细的内容,欢迎购买该书继续详细学习。
访问远程服务
1 远程服务调用
这一个章节主要讲解rpc的设计理念和发展历史。先是讲解了IPC(进程间通信)所需要的各个必要因素接着解释RPC 是IPC的一种特例(这是最初科学家们的想法)但PRC存在很多可靠性的问题,并不能直接等同IPC的扩展。
接着提出了RPC的三个基本问题:
- 如何表示数据即序列化协议, 有grpc的proto-buffer、json、xml、java-rmi基于java自带序列化之列的
- 如何传递数据基于什么网络协议传输java-rmi的远程协议JSON-RPC协议SOAP协议(web service 简单对下访问)
- 如何表示方法如何定义方法,如何在不同语言、不同系统环境中保证 方法签名唯一。需要对接口描述定义语言有一个选型
再后面讲解了rpc的发展历史CORBA的使用过于复杂,被抛弃SOAP使用xml很简单,但是性能奇差可以看出RPC想同时满足简单、普适、高性能是很难的于是得出一个结论:
不存在完美的RPC框架
最近几年的RPC框架更倾向于往高层次、插件化发展。即不再独立解决RPC的所有问题,而是提供一些扩展点由用户自己选择(比如dubbo)可以任意切换json或者fastjson等序列化方式可以切换传输协议等。
2 REST
rest并不是一种远程调用协议, 他只能说是一种风格。REST的传输效率提升潜力有限,但是可以简化调用。
2.1 REST核心概念(基于HTTP超文本传输协议)
- 资源资源指你希望获取或者修改的东西、信息本身,他的表现形式可以不同,但是里子是相同的
- 表征就是表现资源的形式,用html还是pdf来返回
- 状态指的是服务端对某次会话是否持有状态。例如读下一篇文章时,当前文章id由服务端存储还是浏览器存储,这就是有状态和无状态的区别。
- 转移就是服务端提供的行为逻辑, 通常叫做 资源的转移
- 统一接口就是HTTP协议里提供的GET\HEAD\POST\PUT\DELETE\TRACE\OPTIONS这七种操作,通过这些操作触发转移
- 超文本驱动浏览器的行为经常是通过服务端返回的url或者各种信息触发了驱动行为
- 自描述消息为了方便客户端识别表征,返回类似于Content-Type等内容,方便用何种字符集处理
2.2 REST核心设计原则
- 客户端与服务端分离服务端不处理渲染, 由客户端来处理
- 无状态尽可能希望服务端不要存储rest会话状态,达到分布式的高价值回报。但是不太可能特别是客户端持有会话数量级很大的情况下,所以仍旧会持有一定状态
- 可缓存服务端的应答中要直接或者间接告知客户端是否可以缓存,缓存多久
- 分层系统客户端不需要知道是否真的连接到了最终的服务器代表是CDN内容分发网络
- 统一接口面向资源编程系统设计时聚焦在资源而不是行为上例如面向行为时, 登录就是login接口,注销就是logout接口而面向资源时,登录就是PUT Session, 注销就是DELETE Session
- 按需代码客户端的代码可以有一部分让服务端发回进行装载。
2.3 REST的好处
- 降低服务接口的学习成本
- 资源天然具有集合与层次接口这样很多资源可以很容易组合在一起并让使用者想到接口url是什么例如获取 用户 icyfenix的购物车中的第2本书,这个是有层次的,那么接口就是GET /user/icyfenix/cart/2
- REST绑定于HTTP协议,HTTP又是大家非常熟悉的
2.4 RMM(Richardson提出的restful成熟度模型)
第0级:完全不rest
提供的api定义里总是包含了各种动作,例如/queryXXX/applyXXX类似于RPC的行为接口坏处是一旦要提供其他对XXX的操作,必须重新编写接口,无法对XXX的查询能力进行复用!
第1级:开始引入资源的概念
api的endpoint定义应该围绕名词+资源id而不是动词来定义。POST /doctors/mjones 获取医生的档期POST /schedules/{id} 触发对这个id的调度
第2级: 引入统一接口,映射到HTTP方法上
上面的method都是POST,实际上可以把HTTP方法的method、返回码都给利用上
- 对一个资源的增加用POST,删除用DELETE,更新用PUT
- 依赖HTTP的返回码定义资源可能的异常情况。例如201代表创建成功,409代表冲突(被人抢先预约)
- 利用HTTP自带的认证和授权信息。
第3级:超文本控制,转移行为通过响应控制
第2级里, 所有接口的定义仍然需要使用者自己查询文档来记忆和应用实际上应该只需要一个操作起始入口, 例如获取医生的档期接口这个接口要返回的body里,已经告知了对应资源的名称,例如档期资源的key就叫做schedules那么就能马上知道下一个接口查询用schedules了!这样代码里可以做好适配,当你要把档期的key名做修改时,客户端代码根本不用变动!
2.2.4 REST的不足和争议
1.restful面向资源编程只适合做CRUD,不适合过于复杂的业务逻辑
- 面向过程编程,以算法和处理过程为中心,这符合计算机世界中主流的交互方式
- 面向对象编程,将数据和对象行为统一起来,因为这符合现实世界的主流交互方式
- 面向资源编程,数据作为主体,行为看成统一接口,为了符合网络世界的主流交互方式
2.rest不利于事务支持作者不同意这个观点, 认为不会有阻碍,取决于系统的事务设计
3.rest没有传输可靠性支持虽然确实没有类似于重发等机制的保证,但rest接口一般尽可能要求幂等性,来做到应用代码做重发时可以不用担心重复的问题
4.缺少对资源做部分或者批量处理的能力rest语义里不能涵盖这种情况,得定义特殊的接口或者参数,那么低3级里面就不能涵盖了。
相关思考
基于REST的规范,调用者可以非常快速地理解自己需要的接口内容是什么样的,例如华为云当前的很多云服务公开接口都会基于REST理念进行开放,并且各云服务的开放接口都会集成到API Explorer和华为云SDK中心供开发者直接调用,这些平台提供了丰富的接口文档和示例代码,帮助开发者更快地上手和使用 REST 接口。
相信未来REST 规范将会变得更加流行和普及。随着云计算和大数据技术的不断发展,REST 接口将会被广泛应用于各种领域,例如医疗、金融、电商等。REST 接口的开放性、可扩展性和易用性,将会为开发者带来更加高效、便捷和可靠的开发体验。
点击关注,第一时间了解华为云新鲜技术~
关键词:
-
湖南工学院与衡阳师范学院联合举办2023年“一校一书”阅读推广暨读书节活动开幕式 焦点消息
开幕式现场。路博 摄红网时刻衡阳4月26日讯(通讯员邱丽霞李琪)近日,湖南工学院与衡阳师范学院联合举办的
来源: 读书笔记丨远程服务调用和RESTful,如何分析和抉择?
国内公路编码规则
收评:创业板指收涨1.54% 新能源赛道大幅反弹
湖南工学院与衡阳师范学院联合举办2023年“一校一书”阅读推广暨读书节活动开幕式 焦点消息
售价接近110万 网友绘制比亚迪仰望U8改装版:高低也得整一辆|天天热消息
微头条丨安卓之光!小米连续做了4代Ultra:米粉评价“方向对了”
要闻:研究表明咖啡+茶效果更佳:可降低死亡风险 但要适量
热点聚焦:买硬座票跑卧铺睡男子引发热议!他还教育乘务员:提高服务意识
主摄硬件无升级!三星Galaxy S24 Ultra将依靠软件优化拍摄质量
楚天科技:一次性耗材领域已完成质量体系认证,目前已有销售订单
MySQL 安装及配置 当前快看
四级英语冲刺高频500词
在毫秒量级上做到“更快”!DataTester 助力飞书提升页面秒开率
[译]在C#中使用IComparable和IComparer接口 每日短讯
(二)asyncio的简单使用,python异步高效处理数据,asyncio.get_event_loop(),loop.run_until_complete(
全球看点:4月26日西南地区乙醇市场行情震荡整理
大范围降雨将重启 暴雨袭击6省:覆盖五一假期 环球即时看
特斯拉Autopilot每917万公里才一起事故:比人驾安全性高773% 世界新动态
旅美大熊猫“丫丫”将于当地4月26日归国:身体健康状态相对平稳
三星Exynos 2400回归!性能爆发 剑指高通骁龙8 Gen3-世界快讯
世界视点!撕掉油腻 三重功效:凯迪克男士洗面奶280g装19.9元
天天观天下!剪窗花的来历和故事_剪窗花的来历
市场监管总局:对明显违法违规的主播和商家要依法严厉处罚-全球最资讯
旅游不怕价格刺客!淘宝上线海淘“外挂”:拍照找同款比价 热点聚焦
烧烤火出圈 淄博致游客的一封信:客流量已超出接待能力-天天微头条
悲痛!一名8岁女孩脸部遇手机爆炸后身亡 官方正调查
接单日记(一):理解浮点数运算的误差
物业业主联手助力孩子圆梦
俞敏洪:猪周期与人生周期相似 坚守最可贵
全球微动态丨寿司店疑现被煮熟蓝环章鱼 店家要求爆料网友删博:市监局已介入
Web3来了!蚂蚁链宣布开源跨链技术:数字资产互联互通
微软将以690亿美元收购动视暴雪:有望于本周获批|当前热闻
全面实行不动产统一登记制,房产税真的要来了? 全球要闻
【环球速看料】从数据库查询权限信息与自定义失败处理
每日观点:【Excel统计分析插件】上海道宁为您提供统计分析、数据可视化和建模软件——Analyse-it
亿级日活业务稳如磐石,华为云CodeArts PerfTest发布
深入思考右值引用
看点:Java中抽象类和接口的区别?
世界即时:宿州:全市采血点无休 库存现缺A型、o型血
传统车企掀桌子!20.89万起的别克E5太香了:累计订单已超8000份 每日焦点
小鹏P7停车礼让 随后看呆:老奶奶5秒跑过斑马线还竖大拇指-世界微速讯
手机创史上最大降幅 回收成香饽饽:“暴利”超乎想象 焦点消息
天天微头条丨年轻人的首台超联接笔记本 华为MateBook D 14开卖 首销购机享福利
五一小长假来了!滴滴宣布发2亿司机补贴:假期出车流水加速
dota如何踢人?dota怎么设置快捷键?
今日视点:4月26日浙江蓝苏氟化工氢氟酸价格暂稳
半成品加工是什么意思?半成品加工需要办什么证件?
nba fmvp是什么意思?fmvp是怎么评出来的?
50米自由泳世界纪录是多少?50米自由泳一二三级运动员标准
诺基亚5320当年多少钱?诺基亚5320手机参数
苹果一体机怎么开机?苹果一体机电脑型号大全列表
诺基亚820怎么连接电脑?诺基亚820手机参数
当前观点:使用pycuda替换字符串,使用cuda替换字符串
python 使用selenium 不开启浏览器
今日热议:C# 获取系统DPI缩放比例以及分辨率大小
TF-GNN踩坑记录(四) 全球报道
CentOS搭建squid正向代理|当前热门
全球即时:据说,有一群AI数字人将在AWE展会觉醒......
增城是哪里的城市?增城旅游必去十大景点
联通iphone合约机划算吗?联通iphone语音信箱怎么关闭?
电信网络模式有哪几种?电信网络模式怎么设置?
【金融街发布】财政部:3月全国发行地方政府债券8900亿元
守住“头顶上的安全”, 长征镇加强房屋高坠隐患排查整治|当前时讯
微信支付支持数字人民币支付了:视频号、小程序可用
【世界新视野】丰田社长体验中国顶级豪车红旗L5:满脸堆笑、不住称赞
99年女子疑过度劳累宿舍猝死 公司:逝者是临时工
280g新疆长绒棉:Caria Knar纯棉T恤29.99元(减110元)
【全球新视野】NVIDIA推出安全“护栏”:限制人工智能“一本正经的胡扯”
22家上市后备企业蓄势待发!永兴经开区优化营商环境促发展-新视野
Java基础之String字符串的底层原理,面试常见问题
当前速读:error: Your local changes to the following files would be overwritten by me
Java8 教程_编程入门自学教程_菜鸟教程-免费教程分享
天天观焦点:兰州高新区重点项目建设实现一季度开门红
中金湖北科投光谷REIT正式获批 全球信息
全球视讯!华为MateBook D14/D16今日开售:13代酷睿 4999元起
有人姓“苟”:担心孩子受嘲笑而改姓_环球新视野
天天日报丨五一假期用得着!冈本okamoto超薄安全套大促:立省60元
全球观热点:国产鼠标卷疯了 200元碾压千元国际大牌
黄海附近发生4.8级地震:上海等地有震感 焦点播报
天天热门:洞口县:刘玮到江口镇调研督导工作,与结对帮带年轻干部谈心谈话
记一次某应用虚拟化系统远程代码执行
【当前独家】JavaScript设计模式
每日速读!Pipelines
Spring Boot 项目代码混淆,实战来了,再也不用担心代码泄露了!
重庆警方破获特大制售假冒汽车安全气囊案 涉案金额逾2亿元|天天热文
世界即时:*ST蓝盾股债或被双双强退 蓝盾转债或成第一只退市可转债
【财经分析】山东高速、湖北科投两单REITs获批 常态化发行进入快车道
中大盘蓝筹股成调研重点 热点企业AI业务受机构关注
全球速讯:天涯社区已无法打开:网友掀悼念潮
《原神》开发商最新力作!米哈游《崩坏:星穹铁道》今日公测 每日报道
天天精选!卫星通信首次下放!华为nova 11系列首销:2499元起
网传眉山夜市有人偷小孩?警方:男子并非人贩,疑用假币引纠纷 正进一步调查
速看:百亿级新投资项目此起彼伏 光伏头部企业加速“垂直一体化”布局
【国际大宗商品早报】经济衰退担忧回升 原油基本金属全线下跌
长三角楼市:3月量价齐升
1台利润是安卓机10倍!iPhone翻新机全球卖爆:系统不卡 保值好|环球快播报
天天观热点:比OLED更香!苹果即将商用MicroLED技术:不烧屏
学系统集成项目管理工程师(中项)系列12_干系人管理-焦点消息
十四届全国人大常委会举行第三次委员长会议,赵乐际主持-环球观天下
千元以下投影仪最好别买!原因揭开 世界看热讯