美文网首页
系统间通信(1)-基本概要

系统间通信(1)-基本概要

作者: 介子推 | 来源:发表于2018-08-28 22:40 被阅读8次

系统间通信

一、人类的交流

  • 要理解系统服务间的交流,拿人类的交流来做类比是个不错的选择。想想人类交流时需要哪些要素呢?其实主要不外乎这几种:

    1. 相同的语言(即双方要基于相同的"协议"之下)
    2. 必要的传播介质(实在的物理介质,空气纸张等都行)
    3. 约定好的处理信息的方式(是一问一答 或是先记录后处理等,不然你老让人家等着你早晚被揍···)
  • 而这些都能抽象成计算机系统服务中对应的概念(行之有效的概念往往是简单且趋同的),大概有下面几种。其中很多知识现在还没掌握,不过慢慢来吧,总要拿下它们的~~~~~~~~

二、系统服务间的交流

1. 相同的语言(协议)

  就像人类互相需要使用相同的语言进行交流,计算机服务也必须使用互相能识别的消息格式进行交互,常用的消息格式有xml,json,TLV等。

2. 传播信息的介质

  人类交流时往往需要某种介质传播信息,如空气、纸张甚至是眼神.... 同样的,网络信息的传递也需要物理介质的帮助,以及工作在其上的一系列相关协议。这部分就是计算机网络通信了,简单来说有物理层,数据链路层,网络层(IP协议),传输层(TCP、UDP协议),应用层(HTTP、FTP、RTSP、SSH协议等等),具体的相关协议细节以后补充。

3. 处理信息的方式

  人类交流时可以是面对面直接问答形式的,也可能是邮件、短信等延时应答形式的,对应的是不同的业务场景。在计算机里进行通信时同样也有多种处理方式:

   BIO:即阻塞模式,通信时一直等待对方的响应,一个一个请求的处理,高并发时很可能造成后续的请求等待超时。虽然可以在服务端新启线程处理请求,当由于请求还是一个个接收的,所以本质上并没有解决阻塞。同时操作系统对线程的数量都是有限制的,线程数量过多时在不同线程间的切换也会浪费CPU资源。

  NIO:即IO复用模式、待研究。JAVA NIO框架(Channel,Buffer,Selection等概念)、Netty框架。

4. 通信方式

  不同的协议都能实现通信功能,最适合本系统的通信协议才是最好的。

  1、HTTP方式:简单易上手,开发快,速度还能接受------亢余数据的传输(多次握手,请求头数据),大量接口时难管理

  2、RPC调用:有多种实现,如JAVA RMI,Dubbo(包含服务治理功能),ESB(特点是代理)等

  3、MQ方式:包括多种消息协议(AMQP,STOMP,MQTT等),多种常用的消息队列软件(activeMQ,rabbitMQ,recketMQ等)

5. 各系统间通信的整合方式

  如何管理维护茫茫多的系统间的互相调用?有两种常见的实现:

  1、ESB方式:有服务顺序编排/定义,服务实现隔离、多协议支撑、协议翻译、转发代理、事务控制等功能

  2、服务注册中心(很多产品用zookeeper实现):和ESB最大的不同点是:“服务注册中心”主要提供各原子系统的服务注册、服务治理、服务隔离、权限控制。当客户端进行请求时,“服务治理”将告诉客户端到哪里去访问真实的服务,自己并不提供服务的转发。Dubbo就是一个典型的服务治理框架。

话说这markdown编辑器还挺有意思的!!!

相关文章

  • 系统间通信(1)-基本概要

    系统间通信 一、人类的交流 要理解系统服务间的交流,拿人类的交流来做类比是个不错的选择。想想人类交流时需要哪些要素...

  • 基本通信系统的运用

    基本通信系统的运用一、基本运用【由0到1】1.是基本单元,任何通信系统都可以分解成这样。2.可以借此抽象,找到自身...

  • vue.js系列三:组件间通信

    1.组件间通信基本原则 2.vue 组件间通信方式 2.1组件间通信 1: props(适用于父子组件传递属性) ...

  • 系统架构基本概要

    架构原理图 应用架构 业务架构 系统架构 数据架构 技术架构

  • 转: 架构设计:系统间通信——ActiveMQ的安装与使用

    1、前言 之前我们通过两篇文章(架构设计:系统间通信(19)——MQ:消息协议(上)、架构设计:系统间通信(20)...

  • 1.5.3 Python进程使用 -- Queue

    进程间通信-Queue Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。 1. Queu...

  • AIDL使用以及原理分析

    AIDL使用以及IPC原理分析(进程间通信) 概要 为了大家能够更好的理解android的进程间通信原理,以下将会...

  • Dubbo

    1、系统间通信 无论是soa(面向服务架构)还是分布式架构,每个独立的业务之间都需要系统间通信。比如实现商品列表查...

  • Android系统Java源码探索(5)—Binder通信机制

    一 前言 之前分析了Android系统线程间的通信机制(Handler),这篇看看Android系统进程间的通信—...

  • (一)ISO/OSI七层模型

    1、基本介绍 该模型是一个用于计算机或通信系统间互联的标准体系,其中: ISO表示国际标准化组织OSI表示开放系统...

网友评论

      本文标题:系统间通信(1)-基本概要

      本文链接:https://www.haomeiwen.com/subject/mfecwftx.html