Akka

[复制链接]
寻找机会 发表于 2023-9-3 11:13:23|来自:中国 | 显示全部楼层 |阅读模式
1.Akka框架?
Akka是一个用Scala编写的,能兼容Scala和Java的,用于编写高并发和高容错的基于Actor模型的框架。
Akka应用是由消息驱动的,消息是除Actor之外最重要的核心组件。在Actor之间传递的消息应该满足不变性,即不变模式,可变的消息无法高效的在并发环境中使用。在Akka中推荐使用不可变对象。如再Scala中推荐使用immutable类型构造消息。
2.Actor模型?
在Actor模型中,一切都可以抽象为Actor。
Actor是一个容器,它包含了状态,行为,属于它一个邮箱,child Actor和一个监管策略。所有这些封装在一个Actor引用里,当Actor销毁时这些资源都会被释放。
不同的Actor之间的通讯方式就是交换消息,交换的消息放在接收方的邮箱(Inbox)里,每一个Actor都把它要做的事情都封装在了它的内部。
每个Actor都是一个潜在的监管者:如果它创建了Child Actor来委托处理子任务,它会自动地监管它们。
邮箱默认使用的是java.util.concurrent.ConcurrentLinkedQueue,它是线程安全的无界队列。
3. Actor与传统thread?
4.rpc at most once?
每个请求都应附加一个唯一的ID。因此,即使客户端发送的两个请求具有完全相同的命令,服务器也可以通过请求的唯一ID进行过滤和区分。(可能)
5.rpc与grpc?
gRPC 是 RPC协会的一员,gRPC是一种支持多语言的 RPC 框架。
gRPC运行于OSI七层网络参考模型的第七层:应用层,使用HTTP/2协议。
6.HTTP1.0、HTTP1.1和HTTP2.0 的区别?
HTTP是可靠的请求-响应模式的双向通信协议。
1.0 与1.1
1.http1.0中会存在一些性能浪费,比如我们的只需要对象中的一部分,但是每次请求返回的却是整个对象;http1.1则不然,它可以通过在请求头处设置range头域,就可以返回请求资源的某一部分
2.http1.1版本新增了24个错误状态响应码;
3.http1.1中请求消息和响应消息都支持Host头域,而且,如果我们不传这个字段还会报一个400(bad request)的状态码;
4.http1.1支持长连接和请求的流水线(pipelining),在一个TCP链接上可以传送多个http请求和响应.这样就不用多次建立和关闭TCP连接了.
2.0与1.x
Http2.0的核心优势有
1、采用二进制格式传输数据,而非http1.1文本格式,二进制格式在协议的解析和优化扩展上带来了跟多的优势和可能
2、对消息头采用Hpack进行压缩传输,能够节省消息头占用的网络流量,http1.1每次请求,都会携带大量冗余的头信息,浪费了很多宽带资源。
3、异步连接多路复用
4、Server Push,服务器端能够更快的把资源推送到客户端。
5、保持与HTTP 1.1语义的向后兼容性也是该版本的一个关键。
https://zhuanlan.zhihu.com/p/111946824
7.
全部回复0 显示全部楼层
暂无回复,精彩从你开始!

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则