分布式系统之通信技术学习
2019独角兽企业重金招聘Python工程师标准>>>
分布式系统之通信技术学习(导师leaderus)
1,几种常见的通信技术
1,RPC
RPC是建立在socket通信基础之上的,采用ascii编码代替普通的字节流,从图中可以看出RPC的过程
2,远程数据共享
常见的有FTP,到进来流行的zookeeper
3,消息队列
结构模型简单,可以轻松实现客户端多语言支持,在现在系统中运用很广,基本上每个分布式系统都存在消息队列。一般可以配合RPC使用
2,RPC通信技术原理
1,服务端设置监听端口,监听客户端发起的链接和调用
2,监听端口监听到请求,放到call队列
3,handler定时到call队列去处理请求
如果不能一次性发送完所有的数据,会将未发送完的响应发送给responder
客户端:
1, 客户端调用线程发起链接和call调用
2,同步等待响应
3 RPC架构图
1,服务提供这在远程调用管理组建注册信息
2,管理组建定时像服务提供者发送心检测和注册通知
3,服务调度者像管理组建发送请求,管理组建像服务调度者提供可供服务的远程服务
4,实现远程调度
这是一个RPC通信框架的核心,这是一个衡量RPC通信通信框架完整与否的重要考量
4 几种常用的RPC技术和框架
1,j2ee 采用RMI通信协议,不够通用
2,zeroc ice和阿里的duboo都采用custom socket通信(二进制传输性能较高)
备注:thrift支持多语言的一个高性能RPC通信框架,
dubbo,阿里开源的RPC平台,具有相对完善的生产环境组建,服务注册,负载均和,管理和监控工具,
但是只支持java于sping捆绑密切
zeroc ice,rpc平台,多语言跨平台,具有相对完善的生产环境组建,服务注册,负载均衡,管理和监控工具
5 几种RPC通信的技术实现
1 corba
corba用idl定义了客户端和服务的对象接口
2 webservice/soa
3 Rest
采用了http通信,传输的采用json,xml,atom,rss定义一个接口,不用像corba,webservice定义一个静态类生成大量的中间类,可以轻松实现多语言的调用
但是想比于传统的socket通信,效率不高,而且也不安全
3 zeroc ice rpc
跨平台/夸语言,性能较高,安全
6 zeroc ice
1,提供客户端和服务端的多语言注册
2,zeroc icegrid介绍
1,将部署和服务注册放到一起
2,zeroc ice的服务路由和负载均衡
每个node是一个独立进程组建,负责启动本机上的多个ice server
不同node上的相同的server服务实例组成一个Replication Group,并可以定义负载均衡策略,比较常用的是轮训方式以及基于机器负载的策略。
可以不同的服务定义不同定义不同的策略。
平台很具负载均衡策略返回一可用的地址列表,客户端缓存这个地址,供后继的服务访问中使用,当缓存超时或者地址不可用重新获取服务地址。
7,zeroc ice 运用到基于服务总线系统的常规框架
下图是服务总线的架构图
从上图可以看出有三个关键组建,负载均衡,服务目录组成,服务提供提供者。
转载于:https://my.oschina.net/osenlin/blog/518682
分布式系统之通信技术学习相关推荐
- 企业级互联网分布式系统应用架构学习
阿里云大学免费课程:企业级互联网分布式系统应用架构学习 课程介绍: 本课程主要讲解当前网络环境下互联网应用架构设计,课程针对阿里云平台所提供的分步式系统架构支持来分层说明如何搭建一个高可用的应用架构. ...
- 什么是分布式系统,如何学习分布式系统(转)
转载自:https://www.cnblogs.com/xybaby/p/7787034.html#_label_5 正文 虽然本人在前面也写过好几篇分布式系统相关的文章,主要包括CAP理论.分布式存 ...
- 什么是分布式_什么是分布式系统,如何学习分布式系统?
点击蓝色"架构文摘"关注我哟 加个"星标",每天上午 09:25,干货推送! 来源:https://www.cnblogs.com/xybaby/p/77870 ...
- 深入浅出Java开发!什么是分布式系统,如何学习分布式系统
欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦. 什么是分布式系统 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机 ...
- 什么是分布式系统,如何学习分布式系统?
点击蓝色"架构文摘"关注我哟 加个"星标",每天上午 09:25,干货推送! 来源:https://www.cnblogs.com/xybaby/p/77870 ...
- 什么是分布式系统?分布式学习入门基础
一.什么是分布式系统 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价的.普通的机器完成单个计算机无法完成的计算.存储任务.其目的是 ...
- 分布式系统简介和学习路线
什么是分布式系统 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价的.普通的机器完成单个计算机无法完成的计算.存储任务.其目的是利用 ...
- 无线通信技术学习笔记——概述
第0章 无线通信技术概述 简介 无线通信(WirelessCommunication)是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式,近些年信息通信领域中,发展最快.应用最广的就 ...
- 适合云计算开发者的企业级互联网分布式系统应用架构学习
课程介绍 本课程主要讲解当前网络环境下互联网应用架构设计,课程针对阿里云平台所提供的分步式系统架构支持来分层说明如何搭建一个高可用的应用架构. 讲师介绍: 石立勇,阿里云生态体系首席架构师,致力于阿里 ...
最新文章
- P1132 数字生成游戏
- 360金融沈赟:只有适配实践的技术才能实现价值掘金
- 450刀的eGPU vs 谷歌Colab,谁更划算?
- 《LeetCode力扣练习》第20题 有效的括号 Java
- 《JavaScript面向对象编程指南》——第1章 引言1.1 回顾历史
- [云炬创业基础笔记]第六章商业模式测试19
- WPF整理-为User Control添加依赖属性
- html 小于号 乱码,shell重定向(大于号,小于号,左右,21,)
- 十六、字符串和数组之间的转换
- linux内存管理之malloc
- Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)【转】
- hadoop fs ,hadoop dfs 和 hdfs dfs的区别以及HDFS的shell操作
- 【数据分析】基于matlab焊缝边缘检测算法对比分析 【含Matlab源码 260期】
- plsql 通过 excel 创建表
- 开发前期必须准备的利器:开发原型图、UI图工具pxCook、找图标、写接口文档、代码托管等...
- LaTex - 插入公式 (从MathType公式编辑器导入到LaTex中)
- html文件设置成mac屏保,如何将视频设置为Mac上的屏幕保护程序 | MOS86
- 每日新闻:麦肯锡:未来10年 人工智能为全球GDP贡献1.2%增长;工信部下发第19批CDN、云服务牌照...
- 简单图像滤镜功能的Java实现
- iPhone 越狱版本打包