这里想总结下一些概念。
什么是RPC?
RPC(Remote Procedure Call)是指远程过程调用,就是系统和系统之间的调用。
如:支付宝和银行系统是两个不同的系统,如果支付宝要转钱到银行卡中,就涉及到两个系统的之间的调用。
RPC 主要用于解决两个问题:
- 解决分布式系统中服务之间的调用问题
- 解决远程调用时,能像本地调用一样方便,让调用者感知不到远程调用的逻辑
RPC 远程调用过称如下:
- A(client)与B(server)建立TCP连接
- A把方法名如 add 以及参数方法 (1,2) 序列化成字节流发送出去
- B接受到发送过来的字节流,然后反序列化得到目标方法名,方法参数,并执行相应的方法调用 (add(1,2)) 并把3返回
- A接受远程调用结构,输出3
RPC 与 REST 有什么区别?
- REST 基于HTTP协议, RPC有多种通信方式如HTTP, TCP/IP, 操作系统带的管道等
- RPC是面向过程,Restful是面向资源。REST 的协议可能是
Get /order?id=123
,RPC 的协议可能是/queryOrder?id=123
- RPC 可以获得更好的性能,比如可能省去了 HTTP 报头等内容
几个性能指标
- 吞吐量:每秒钟处理的请求和事务数
- 延时:请求的处理延时
- 成功率、稳定性
- 系统资源、CPU、内存、磁盘、网络的负载情况
持续集成、持续部署、持续交付
- CI:持续集成(CONTINUOUS INTEGRATION)
- CD:持续部署(CONTINUOUS DEPLOYMENT)
- CD:持续交付(CONTINUOUS DELIVERY)
URL 和 URI 的关系
- 统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来,像人的身份证一样。所以叫做标识符
- 统一资源定位符URL就是通过某系一列的查找,能查到某个资源,比如 人类住址协议://深圳/南山区/南山文体中心/座位号FO4125
所以URL这个字符串也同样标识出了唯一的一个人,起到了URI的作用。因此URL是URI的子集。
因此https://www.xxxx.com/question/id
这个叫做URL。
几个内核技术名词
浏览器内核分为两部分:渲染引擎
(render engin)
、js引擎(js engin)
渲染引擎:负责对网页语法的解释(HTML、XML)
,并渲染(显示)网页
js引擎:负责javaScript
的解释、编译、执行
小程序的Javascript
运行环境:
- 在
iOS
上, 小程序的Javascript
代码运行在JavascriptCore
中 - 在
Android
上,小程序的Javascript
代码通过X5
内核解析 - 在 开发者工具上,小程序的
Javascript
代码运行在nwjs
中
关于JavascriptCore
:Webkit
由苹果开发->后苹果在其之上开发成为了JavaScriptCore
。
JavascriptCore
= WebKit
的 JavaScript
引擎用 Objective-C
封装,提供了简单,快速以及安全的方式接入世界上最流行的语言。
关于 X5 内核:X5
内核,是Tencent
自己的浏览器解析内核。比如安卓微信上,就是用的X5内核,再比如QQ浏览器。
关于NW.JS
:
NW.js (原名 node-webkit
)是一个基于 Chromium 和 node.js 的应用运行时,通过它可以用 HTML 和 JavaScript 编写原生应用程序。它还允许您从 DOM 调用 Node.js 的模块 ,实现了一个用所有 Web 技术来写原生应用程序的新的开发模式。
几个常用的浏览器内核:
Trident(IE)、Gecko(FireFox)、Webkit/JavascriptCore(Safari)、blink(Chrome)Webkit
苹果开发->后被chrome
复制并独立运作成blink
,成为chrome
的内核。
RBAC模型
RBAC(Role-Based Access Control)即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。
看了这篇文章,才了解到之前工作项目里用的是 RBAC0 中的:用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当。
一个基本的用户权限系统,开始就要从下面两个方向去考虑:
- 确认角色管理列表,可以快速创建一个角色,并且创建角色的同事可以为角色配置权限。
- 确认用户管理列表,再用户管理列表中可以快速添加一个用户,并且为其关联好相关的角色。
文章里,还有个用户组的概念,我觉得以后可以用到:
当平台用户基数增大,角色类型增多时,如果直接给用户配角色,管理员的工作量就会很大。这时候我们可以引入一个概念“用户组”,就是将相同属性的用户归类到一起。
IaaS、PaaS、SaaS
- IaaS(Infrastructure as a Service),基础架构服务
- PaaS(Platform-as-a-service),平台服务
- SaaS(Software-as-a-service),软件服务
看了一些资料,知乎上有比较多的回答-John Wang,这里记录下最好理解的答案:
如果你是一个网站站长,想要建立一个网站。不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序。现在你追随潮流,采用流行的云计算。
如果你采用IaaS服务,那么意味着你就不用自己买服务器了,随便在哪家购买虚拟机,但是还是需要自己装服务器软件
如果你采用PaaS的服务,那么意味着你既不需要买服务器,也不需要自己装服务器软件,只需要自己开发网站程序
如果你再进一步,购买某些在线论坛或者在线网店的服务,这意味着你也不用自己开发网站程序,只需要使用它们开发好的程序,而且他们会负责程序的升级、维护、增加服务器等,而你只需要专心运营即可,此即为SaaS。
总结
主要是对一些比较模糊的概念,进行了下记录。希望自己能多了解写后台的知识,对别人在做的事情有认识,成为虽然可能不熟悉,但是可以很愉快沟通的人。📚🌲