微服务相关概念

1.怎么理解rpc框架

rpc 指远程服务调用技术

远程调用需要解决的问题:1.通讯问题 2.寻址问题 3.序列化问题

rpc框架的目标:让我们就像调用本地方法一样调用远程服务并且在性能,易用性方面有一定需求

rpc框架的一种实现 Netty=网络通信框架

让你用最少的代码完成网络通信这一过程。

常见的rpc框架:dubbo

2.dubbo的实现原理

dubbo作为rpc框架,实现的效果就是调用远程的方法就像在本地调用一样。如何做到呢?就是本地有对远程方法的描述,包括方法名、参数、返回值,在dubbo中是远程和本地使用同样的接口;然后呢,要有对网络通信的封装,要对调用方来说通信细节是完全不可见的,网络通信要做的就是将调用方法的属性通过一定的协议(简单来说就是消息格式)传递到服务端;服务端按照协议解析出调用的信息;执行相应的方法;在将方法的返回值通过协议传递给客户端;客户端再解析;在调用方式上又可以分为同步调用和异步调用;简单来说基本就这个过程

3.幂等性

HTTP幂等方法,是指无论调用多少次都不会有不同结果的 HTTP 方法。不管你调用一次,还是调用一百次,一千次,结果都是相同的。

幂等性指的是作用于结果而非资源本身

HTTP GET方法,用于获取资源,不管调用多少次接口,结果都不会改变,所以是幂等的。

HTTP POST方法是一个非幂等方法,因为调用多次,都将产生新的资源。

HTTP PUT方法因为它直接把实体部分的数据替换到服务器的资源,我们多次调用它,只会产生一次影响,但是有相同结果的 HTTP 方法,所以满足幂等性。

HTTP PATCH方法是非幂等的。PATCH请求是会执行某个程序的,如果重复提交,程序可能执行多次,对服务器上的资源就可能造成额外的影响,这就可以解释它为什么是非幂等的了

HTTP DELETE方法用于删除资源,会将资源删除。调用一次和多次对资源产生影响是相同的,所以也满足幂等性。

HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用

如何设计符合幂等性的高质量RESTful API

HTTP GET方法 vs HTTP POST方法

HTTP请求的GET与POST方式有什么区别?

GET方式通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

HTTP GET方法是幂等的,所以它适合作为查询操作,HTTP POST方法是非幂等的,所以用来表示新增操作。

有的时候可能需要把查询方法改造成HTTP POST方法。比如,超长(1k)的GET URL使用POST方法来替代,因为GET受到URL长度的限制。

HTTP POST方法 vs HTTP PUT方法

一般的理解是POST表示创建资源,PUT表示更新资源。

本质的差别是在幂等性

HTTP POST方法是非幂等,所以用来表示创建资源,HTTP PUT方法是幂等的,因此表示更新资源更加贴切。

HTTP PUT方法 vs HTTP PATCH方法

我们一般的理解是PUT表示更新全部资源,PATCH表示更新部分资源。

PATCH方法是非幂等的

如果,我们想要明确的告诉调用者我们的资源是幂等的,我的设计更倾向于使用 HTTP PUT 方法。

 

CPA

一个分布式系统最多只能同时满足Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性),

1.1 一致性(Consistency)

一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。

1.2 可用性(Availability)

可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。

1.3 分区容错性(Partition tolerance)

分区容错性指“the system continues to operate despite arbitrary message loss or failure of part of the system”,即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

BASE理论

基本可用(Basically Available)

基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。

软状态( Soft State)

软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值