foolscap实现rpc(四)
在foolscap中,每个可以被访问的Referenceable对象有一个或者多个FURLs,当然,必须是安全的,我们使用权限安全来定义,意味着这些FURLs有以下2个特征:
l 获取FURL的唯一方式是从已经有这个furl的人那里获取,或者是第一个发布它的人。
l 只有最初的FURL创始人才会决定连接到哪一个Referenceable对象。如果你的tub.getReference(url)调用成功,那么你连接的Referenceable是正确的。
为了实现第一个目标,FURLs必须是不可猜测的。你可以注册一个适合读取的引用reference,若你的意图是使得别人能轻松的访问,但是一般使用tub.registerReference生成一个随机的名字,这样就保证了不可猜测性。
为了实现第二个目标,使用加密后的TubID作为主ID,位置提示就是:hints。若DNS被破坏了,将hostname指向不同的机器,或者认为的中途***导致连接到错误的box,TubID将与远端的不匹配,连接将会被丢弃。这样一些***可能导致服务的中断,但是不能导致连上错误的目标。
显然,只要你使用SSL才会有第二个特征。如果你选择使用unauthenticated Tubs,所有的安全特性都丢失了。
FURL的形式,如:pb://abcd123@example.com::5901,backup.example.com:8800/math-server,组成如下:
Ø 以字符串pb://开头
Ø TubID
Ø @字符
Ø 以逗号分来的“location hints”列表。每一个按照以下方式:
u 使用IPV4的TCP,经过DNS:HOSTNAME:PORTNUM
u 使用IPV4的TCP协议,不经过DNS: A.B.C.D:PORTNUM
Ø 字符/
Ø 引用reference的名称
转载于:https://blog.51cto.com/3572607/961033
foolscap实现rpc(四)相关推荐
- 手写RPC(一) 絮絮叨叨
目录 前言 我的知识库 学会了? 学不动了? 前言 提到RPC(Remote Procedure Call)大家应该都不陌生,特别是像我一样做web开发的,可以说天天和rpc打交道.常见的rpc框架主 ...
- RPC 远程过程调用
RPC简介 RPC,英文全称: Remote Procedure Call. 中文名: 远程过程调用,是一个计算机通讯协议.借助RPC可以像调用本地服务一样地调用远程服务.比如两台服务器订单服务器和商 ...
- hadoop如何学习?
随着计算机网络基础设施的完善,社交网络和电商的发展以及物连网的推进,产生了越来越多的大数据,使得人工智能最近几年也有了长足的发展,大数据的存储和处理也越来越重要,国家对此也比较重视,学习大数据和人工智 ...
- openstack 逻辑构架真相
转载自:http://blog.csdn.net/u010305706/article/details/52206175 别以为真懂OpenStack!先别着急骂我,我也没有说我真懂Openstack ...
- 【阅读总结】Improving IPC by kernel design
该篇文章由Jochen liedtke所写,他发现自己L3操作系统还有很多可以提升的地方,主要就是IPC的效率提升,所以写了此文.该篇文章的确是引导做研究的好文章,在整体结构上,该篇文章首先抛出了 ...
- 第三十四期:花了一个星期,我终于把RPC框架整明白了!
RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想. 作者:李金葵 RPC(Remote Procedure ...
- 微服务之RPC(远程过程调用)的四种方式
微服务思想 微服务思想-注册中心zookeeper 微服务: 架构设计采用分布式思想,当服务器发生故障时,可以实现自动化的故障迁移.无需人为干预. 注册中心实现原理: ZK工作原理说明 Zookeep ...
- (三)四种流行的RPC框架(Dubbo/Motan/Thrift/Grpc)
目录 ● Dubbo ● Motan ● Thrift ● Grpc 上述四种流行RPC框架的对比 ● Dubbo 本来阿里2014年就不在维护Dubbo了,直到2017年9月份又恢复了维护,可能一来 ...
- 第四篇 - 手写RPC框架
Github源码下载地址:https://github.com/chenxingxing6/myrpc 一.前言 RPC(Remote Procedure Call)-远程过程调用,它是一种通过网络从 ...
最新文章
- 机器人流程自动化崛起,中国是否准备好迎接智能自动化时代?
- 装了mysql但是服务里没有反应_Mysql安装后在服务里找不到和服务启动不起来的解决方法...
- 数学建模_随机森林分类模型详解Python代码
- Winform中对DevExpress的RadopGroup的Description、Value、Tag、Text的理解与使用
- 伪类 选择器优先级
- GIt 从入门到放弃
- 嵌入式linux的驱动程序
- java中断线程_Java线程中断机制-如何中断线程
- 管理感悟:软件公司不加班还搞什么软件
- [源码和报告分享] 基于VC++的MFC类库实现的通讯录管理系统
- 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了
- 微信小程序前端登录模块设计
- Linux Backdoor
- 2021年中国消费金融行业贷款情况及发展趋势分析:互联网消费金融放款规模达到20.2万亿[图]
- amCharts使用方式
- Graham-Scan算法计算凸包的Python代码实现
- js判断数组,对象,是否为空,是否含有某个值,判断数组中对象是否有某个值
- Mybatis 之 二级缓存
- [翻译]C#和COM的互操作
- torch当中的MseLoss的reduction参数