8月总结

这里想总结下一些概念。


什么是RPC?

RPC(Remote Procedure Call是指远程过程调用,就是系统和系统之间的调用。

如:支付宝和银行系统是两个不同的系统,如果支付宝要转钱到银行卡中,就涉及到两个系统的之间的调用。

RPC 主要用于解决两个问题

  1. 解决分布式系统中服务之间的调用问题
  2. 解决远程调用时,能像本地调用一样方便,让调用者感知不到远程调用的逻辑

RPC 远程调用过称如下

  1. A(client)与B(server)建立TCP连接
  2. A把方法名如 add 以及参数方法 (1,2) 序列化成字节流发送出去
  3. B接受到发送过来的字节流,然后反序列化得到目标方法名,方法参数,并执行相应的方法调用 (add(1,2)) 并把3返回
  4. A接受远程调用结构,输出3

RPC 与 REST 有什么区别

  1. REST 基于HTTP协议, RPC有多种通信方式如HTTP, TCP/IP, 操作系统带的管道等
  2. RPC是面向过程,Restful是面向资源。REST 的协议可能是Get /order?id=123,RPC 的协议可能是/queryOrder?id=123
  3. RPC 可以获得更好的性能,比如可能省去了 HTTP 报头等内容

几个性能指标

  1. 吞吐量:每秒钟处理的请求和事务数
  2. 延时:请求的处理延时
  3. 成功率、稳定性
  4. 系统资源、CPU、内存、磁盘、网络的负载情况

持续集成、持续部署、持续交付

  1. CI:持续集成(CONTINUOUS INTEGRATION)
  2. CD:持续部署(CONTINUOUS DEPLOYMENT)
  3. CD:持续交付(CONTINUOUS DELIVERY)

URL 和 URI 的关系

  1. 统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来,像人的身份证一样。所以叫做标识符
  2. 统一资源定位符URL就是通过某系一列的查找,能查到某个资源,比如 人类住址协议://深圳/南山区/南山文体中心/座位号FO4125

所以URL这个字符串也同样标识出了唯一的一个人,起到了URI的作用。因此URL是URI的子集

因此https://www.xxxx.com/question/id这个叫做URL。


几个内核技术名词

浏览器内核分为两部分:渲染引擎(render engin)、js引擎(js engin)
渲染引擎:负责对网页语法的解释(HTML、XML),并渲染(显示)网页
js引擎:负责javaScript的解释、编译、执行

小程序的Javascript运行环境

  1. iOS 上, 小程序的 Javascript 代码运行在 JavascriptCore
  2. Android 上,小程序的 Javascript 代码通过 X5 内核解析
  3. 在 开发者工具上,小程序的 Javascript 代码运行在 nwjs

关于JavascriptCore
Webkit由苹果开发->后苹果在其之上开发成为了JavaScriptCore

JavascriptCore = WebKitJavaScript 引擎用 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 中的:用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当。

一个基本的用户权限系统,开始就要从下面两个方向去考虑

  1. 确认角色管理列表,可以快速创建一个角色,并且创建角色的同事可以为角色配置权限。
  2. 确认用户管理列表,再用户管理列表中可以快速添加一个用户,并且为其关联好相关的角色。

文章里,还有个用户组的概念,我觉得以后可以用到:

当平台用户基数增大,角色类型增多时,如果直接给用户配角色,管理员的工作量就会很大。这时候我们可以引入一个概念“用户组”,就是将相同属性的用户归类到一起。


IaaS、PaaS、SaaS

  1. IaaS(Infrastructure as a Service),基础架构服务
  2. PaaS(Platform-as-a-service),平台服务
  3. SaaS(Software-as-a-service),软件服务

看了一些资料,知乎上有比较多的回答-John Wang,这里记录下最好理解的答案:

如果你是一个网站站长,想要建立一个网站。不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序。现在你追随潮流,采用流行的云计算。

如果你采用IaaS服务,那么意味着你就不用自己买服务器了,随便在哪家购买虚拟机,但是还是需要自己装服务器软件

如果你采用PaaS的服务,那么意味着你既不需要买服务器,也不需要自己装服务器软件,只需要自己开发网站程序

如果你再进一步,购买某些在线论坛或者在线网店的服务,这意味着你也不用自己开发网站程序,只需要使用它们开发好的程序,而且他们会负责程序的升级、维护、增加服务器等,而你只需要专心运营即可,此即为SaaS。


总结

主要是对一些比较模糊的概念,进行了下记录。希望自己能多了解写后台的知识,对别人在做的事情有认识,成为虽然可能不熟悉,但是可以很愉快沟通的人。📚🌲