zoukankan      html  css  js  c++  java
  • 架构笔记[一]:通信技术路线

    请求/应答通信

    第一阶段:同步

      所有操作顺序执行,阻塞调用,函数执行完后再进行下一步操作。

    第二阶段:完全异步

      问题:同步操作中,有些函数执行比较耗时,导致程序整体可用性的降低,用户体验差。

      解决:通过异步方式,不阻塞,不等待函数返回即执行下一步。等到函数执行完成后通过某些机制触发,使相应的结果的到继续处理。

    第三阶段:部分异步

      问题:在完全异步中,会存在有些操作可能耗费时间过长,或异步函数在执行中出现错误导致不能正常返回等情况。使得调用者白白耗费某些异步触发机制的资源,尤其是在大型软件中,会导致服务器性能浪费,性能降低。

      解决:通过部分异步方式,阻塞一定时间,设定异步操作等待的时间,如果超时则返回错误,释放异步触发机制的资源。

      举例:WCF

    ======================================

    异步机制

    思想:

      另启动一个线程,使主线程(通常是UI线程不受阻塞),通过线程间通信通知结果。

    .NET中:

      分类:

        APM模式(Asynchronous Programing Model)     其他         

        EAP模式(Event-based Asynchronous Pattern)  事件驱动  

        对比  http://www.cnblogs.com/dctit/archive/2013/01/13/2853853.html 

      举例:

        APM:  beginXXX / endXXX

        EAP:  XXXAsync / XXXComplete 以及EventArgs / EventHandler 

    Java中:

      AsyncTask;以及其他通过线程方式实现异步 

      MessageQueue + Looper  + Handler

      NIO(New IO) Selector+SocketChannel

    实时通信

      TCP/IP协议中,通信链接均有超时关闭机制

      为了实现双方的实时通信,采用长链接+心跳包+断开重连等思路,实现链接保持

      协议举例如下

    TCP层:

      MQTT

      XMPP

      AMQP

    HTTP层:

      Websocket

  • 相关阅读:
    window下eclipse4.5+hadoop2.6.1开发环境配置
    sqoop1.4.6从mysql导入hdfshivehbase实例
    sqoop1.9.7安装和使用
    sqoop1.4.6导出oracle实例
    sqoop1.4.6配置安装
    java 操作hbase1.2
    hbase-1.2.5完全分布式部署
    hadoop2.6环境中部署hive1.2.2的错误
    hive 创建表和导入数据实例
    hive1.2.2部署
  • 原文地址:https://www.cnblogs.com/the-owl/p/5627913.html
Copyright © 2011-2022 走看看