首页 > ATS核心, ATS调优, 插件开发 > ATS??�a��a?�a?�aY?c?�

ATS??�a��a?�a?�aY?c?�

2013年6月13日     浏览数:638 发表评论 阅读评论

ATS??�a��a?�a?�aY?c?�

ATS??�a��a?�a?�e?�e�????a�?a?�e�?ATScs�??�a��cs�a?�a?�e�?e�??�????i??a�?a?Sc?�c�Y???a?�cs�a?�a?�a??a???�?a?�a��??�a��a��a?sa��c�?ATScs�aY?c?�a?�a?�cY?e?�i??a�?a?�a?Za?Zc��cs�??�a��a?�a?�e??c?�e�?e�?a��

ATScs�SDK?��???i?????a?�e�?ATScs�?�?a??e�?e�?a�??Z?a??e�?e�?cs�a??e�?e�?e��?��i??c�se�????e�?cs�PDFc�???�?��???i??e?????e?za??e?za????�c�?cs�e��?��a��a�?e�?a?Z??�c�?a??a�?e��a�?a�?a??a?�e�?ATS?�?a??a�?c�?cs�a??a��e��a?Ya??a??c?�c?�SDK?��???i??e?�e�?e�?cs�a??a�saY?c?�cY?e?�i????�a?�a?Za???�?a??cs�?��a�?c?�e�?a��ATScs�APIa�?a?S?�?a????�a��?Z?a??e�?e�????a?�a??a??a?za��cs�a�?c?�i??a��e�?e�??�??????�a��a??es?a?�a?�?�?a?�?Z�i??e?�e�?c�?a�?a?�a?�cY?e?�c�?a?�a��a��a?�e�?a��a��??�c?�???a�?e��e??a?�a��i??a�?SDK?��???a�?a�?c�????e�Sa�?a�?c�?a??a��a��

a�??�?SDK?��???

aZ�a??cs�SDK PDF?��a��

a?�a?�c?�i?s?��?SS?��?��a?�a��plugin

ATSa?�a?�cZ?a??

a??e??e�?e�S

  • HTTP Transaction

    HTTP Transaction ???ATSc�???�httpcs�a��c?�?�?c?�i??a??ATSa?�i??a?�a??HTTPcs�e?�?��cs�a��c?�e?�c?�i??a?�a?sa?�a??HTTP Transactiona��ATScs�a??a�sAPI???a�?Transactiona???�?a??cs�a�??��a��c?�e?�c?�i??a?Ya��e��a??a?�e?�a??e?�c?�a�?c�??�Scs�?�?a?�a��a??c�?a�?cs�APIa�??��a?�i??TSHttpTxn?��??�c��?z�i??a�?a?Sa�?TSHttpTxna?�a�?cs�APIa�??��e?????a�?c��e?�a??a��c?�?�?c?�???cs�a��

  • HTTP SM

    HTTP SM ???a?�e?�?????�ATScs�a?�?�?c?�cS�?�????i??a??ATSa?�i??a��c?�cs�?�?c?�???e�se?�HTTP Transactiona?�cs�a�??��a��c?�cs�i??e�?cS�?�??��??�???a�?a�?a??HTTP SMa?�cs�a��ATS?�?a??a?�?�?c?�a��???HTTP Transactiona�?HTTP SMcs�a?�a?�e?�c?�a��

  • HTTP session

    HTTP session?????�httpa?se??i??a?�e?�??�a?�a??e?�?��a?�a?�e?�c?�i??c�???�a��a�???�c�?cs�a?�a??e?�?��i??a�z???cs�a?�a??e?�?��i??a?�a?�a??a?�a�???�c�?a�????aS?a�?c�?HTTP sessiona��a??c��HTTP Transactioni????�a��a??a?�cs�ATSa?�a??c�???�e?�?��a?�e��cs�ATS HTTP Transactioni??a??a�?a?�a?�a?�a??a�???�c�? HTTP Sessioni??0a????�1a??c�se�?a�sa??a�z??? HTTP Sessiona��

  • remap

    remap???ATSa?sURL rewritecs�?�?a??i??a?Y???ATSa??e�?c?�?��a��e�?e�??�?e??cs�c�??�Se??a?�a��a�ZaSYe??a?S???e�?i??ATScs�remap?�?a??a?�a??c??c��c�???�cs�Apache Httpdcs�rewrite???a?�a��remapa?�?��a�?e�?e�?i?????a��a??a�?a�sa?�a?�a?�a??a???�?a??cs�APIa�?a??i????�a��a??a�?e�se?�remapc?�c�Yi??c?�a��remap??�a��a��

aY?c?�cY?e?�i?s

  • Continuation

    Continuationi??a�Za��???a?Sa?�e?????a?�a?sContinuationcs�c?�c?�???az�i???�???�i?�i??e?�a???S�???c�?a?�a?�e�?i??a?Z???a?�e??a�?c��e?�a???�????i???�?e?�a�?a?�coroutinecs�c?�c?�???az�i???�???�i?�i??a?�a�sc?�a?�a?S???e�?Continuation????�?a??a?�?�?a�ze�????a?�cs�a�sc??c?�a?�a��c?�c?�aY?c?�a��a??a?�ATSa?�i??Continuation???a?�a????�??�aY?c?�cs�?S?e�?c��?z�i??a?Zc��cs�?��??�e�?c?�c��?z�i??a��Action Event VCc��e??a�?e?�Continuation?��??�c��?z�i????�a��a�?c?�Continuationc��?z�cs�a�ze��a�?c�?i?s

    class Continuation: private force_VFPT_to_top
    {
    public:
        ContinuationHandler handler;
        Ptr<proxymutex> mutex;
        LINK(Continuation, link);
    
        int handleEvent(int event = CONTINUATION_EVENT_NONE, void *data = 0) {
        return (this->*handler) (event, data);
        }
    
        Continuation(ProxyMutex * amutex = NULL);
    };
    

    Continuationa?�e�?a?�a?�i?s

    • handleri?sa?�a�?cs�Continuationa��c?�a�??��a��
    • mutexi?sContinuationcs�e�?a��
    • linki?se�??Z?a?�a��a��Continuationcs�a??e�?e??a��
    • handleEventi?s?Z??��eventcs�a�?c�?a�??��??�i??a?�a?�c��a?�a�?cs�a��c?�a�??��a��c?�a��

    c��?z�e?za??c??c�?i??a?�a??a�?e??c�??�Sa?�a?�a��

    Continuationa??APIa?�cs�c��?z�a?�TSConti???????�a��a?�a?�a?�??�a??c�?a?�cs�?S?e�?a?�a?�i?????a�s?��APIe�??��cs�a?�?��c��?z�a��a????�a��c?�c?�a?�cs�a?�e�?c�?a?�cs�a��blacklit-0a?�cs�a�?c�?i?s

    TSHttpHookAdd(TS_HTTP_OS_DNS_HOOK, TSContCreate(blacklist_plugin, NULL));
    

    e?�???a?�a??hooka�??��i??a??TS_HTTP_OS_DNS_HOOKe?�?��i??hooke?�aZ�a?�blacklist_plugini??e�?a?�e??a�?c�?i?�i??e�?blacklist_plugin a�??��a?�a�za?Sa?????a?�a??a?�a��a��c?�cs�handlere�?a�?i??e?�e�?e�se?�TSContCreatee?�a?�a??TSContc��?z�a��e�se?�e?�a?�APIi????�a��a?�a?�e��a??a�??�?a�????a?saS??�?c?�a�zcZ�i??c�se�?e??a??a�?a??c�?aZ�c?�e�?ATS?�?a??cs�a�???�a?�?�?a?�a��a?�???a?�i??a??e?�e�?c��c?�a?�a�????a��a�?c�?a��a??a��a��

    static int
    blacklist_plugin(TSCont contp, TSEvent event, void *edata)
    {
      TSHttpTxn txnp = (TSHttpTxn) edata;
    
      switch (event) {
      case TS_EVENT_HTTP_OS_DNS:
        handle_dns(txnp, contp);
        return 0;
      case TS_EVENT_HTTP_SEND_RESPONSE_HDR:
        handle_response(txnp);
        return 0;
      default:
        break;
      }
      return 0;
    }
    

  • Action

    Action???a?�a???S?e�?a�????cs�i??c��a��c?�???a��c?�cs�a?�?�?a��aS????az�a��e?�a??a��aS????a??a�?a??a?�?�?a��c?�cZ?a??a?�a�?e�??��e��cs�a��c��a?�cs�a�?a??a??a�?e?????a?�a??a??a�??��e��cs�a�??��???a?�i?Y

    e?�a??c��?z�cs�a?�e�?c�?a��???c�?????z�a�?c�Ya?�cs�Eventc?�c�Yi??c�?a??a?�a��cs�iocore/a?�cs�c?�c�?a�?a?Sc??c�?IOc��?�?e??a��a?�c��i??ATScs�a?Sa��a�?c��?�????a??e��a?Za�?a?�a��

    class Action
    {
    public:
        Continuation * continuation;
        Ptr</proxymutex><proxymutex> mutex;
        volatile int cancelled;
    
        virtual void cancel(Continuation * c = NULL) {
        if (!cancelled)
            cancelled = true;
        }
    
        void cancel_action(Continuation * c = NULL) {
        if (!cancelled)
            cancelled = true;
        }
    
        Continuation *operator =(Continuation * acont)
        {
        continuation = acont;
        if (acont)
            mutex = acont->mutex;
        else
            mutex = 0;
        return acont;
        }
    
        Action():continuation(NULL), cancelled(false) {
        }
    
        virtual ~ Action() {
        }
    };
    

    a�?a?ZActioni????�a��a??e?�e�?????�?cs�a?�?�?i?s

    • Action???a??a�?a�?a�?cs�
    • ?��e��a?�e?�???c��a��aS?cs�callbacka��c?�??????a?s
    • e�??��e��a?�e?�a�??�?a?�e�?
    • Action???c��a��c?�???a?�a�?cs�i??a??a�??????�?��e��cs�?��a��i??a?Y???c��a��c?�???e?Ye??cs�a��cS�?�????a??e??a??Actiona�??????�?��e��a?Za�?e�?e��a�?
  • Event

    Event???c��Eventa��c?�???e?�a�zcs�a?�c�?Actiona��???a??a�?c�????e�?a?�a�?aZ�a�Ze�?a?�?�?a��c?�cs�a��aS?i??Actioni?�a��event???a??a??a�?a�?cs�a��c��a?Za�?c��?�?e�?Actioni??a��?��a?Ya��??�a??a�??��e��cs�???a?�i??a???��?�?a??a�?a???��a?�Eventa?Za��c?�??�a??a��c?�e�?a�?e�?a?�a�?aZ�i??e?�a??a??a?�a�S:D

    Eventcs�e�?a?�a?�a??4c�?i?s

    • _immi?sc��a???��e??i??e?�a?????a??e�?a?sc�??Z?e��Evente?�a�?a?�?��e??e?Ya?�
    • _ati?sa?????????Y?a??a��a?�?��e�?i????�a�sa��a?�a?�a��?��e??
    • _ini?sa?????????Y??��?��e�?a?Zi????�a�sa��a?�a�sa?�a?�a?Z?��e??
    • _everyi?s???es�a�se�?a?�a��i??e��a?�a��a??cZ??��e??i??c��a??cronc��a�s?��a��aS?

      class Event:public Action
      {
      public:
      void schedule_imm(int callback_event = EVENT_IMMEDIATE);
      void schedule_at(ink_hrtime atimeout_at, int callback_event = EVENT_INTERVAL);
      void schedule_in(ink_hrtime atimeout_in, int callback_event = EVENT_INTERVAL);
      void schedule_every(ink_hrtime aperiod, int callback_event = EVENT_INTERVAL);
      void free();

      EThread *ethread;

      unsigned int in_the_prot_queue:1;
      unsigned int in_the_priority_queue:1;
      unsigned int immediate:1;
      unsigned int globally_allocated:1;
      unsigned int in_heap:4;
      int callback_event;

      ink_hrtime timeout_at;
      ink_hrtime period;

      void *cookie;

      Event();
      Event *init(Continuation * c, ink_hrtime atimeout_at = 0, ink_hrtime aperiod = 0);
      private:
      void *operator new(size_t size);
      Event(const Event &);
      Event & operator =(const Event &);

      public:
      LINK(Event, link);
      };

    a�?a?ZEventc��?z�i????�a��a?�a��c�?e?�e�?????�?i?s

    • cS�?�????a??e??a??e�?a??call-backc??c?�a?�i??a?�e��e�?a?�i??a?�a?�e?�e�??�?a?�continuationcs�e�?a��
    • ?��e��???a?�a?ZActionc��a??i??a?Ye?�e�?a??call-backcS�?�?????�?a?�e�?cs�??�a��a?�a?sa��
    • cS�?�????a?�i??Eventa?�a��cs�a�?c�????e?�e�?a�?a��c�Ya?�cs�
  • VC

    VConnection???ATS?�?a??a�???�a��e??a??c�?cs�a?�c�?e??a?�streamcs�?��??�?S?e�?c��?z�a��a?�e�?a??a�?c?�e�?a??a?�a???��??�e?�a��c�?e?�i??a???Y?a?�a???�?a?�i????�c�?c��a??FDcs�?�??z?a��VConnectionc��?�?e�?continuationi??a?Y???a?scall-backa?�a��c?�???a��c?�cs�a��e?�a??aY?c��???a�?e?�a?Sa��e�sa??c�?e?�cs�aY?c?�a��

    VConnection???a?�a�?e��cs�a��a???Z?a??i?s

    • do_io_read
    • do_io_write
    • do_io_close
    • do_io_shutdown
    • reenable c�????e�scY?a?�a?�c�?a??a�?a�z?�?a?�a?�?�?aS?a??
    • set_continuation

      class VConnection:public Continuation
      {
      public:

      virtual ~ VConnection();

      virtual VIO *do_io_read(Continuation *c = NULL, int64_t nbytes = INT64_MAX, MIOBuffer *buf = 0) = 0;
      virtual VIO *do_io_write(Continuation *c = NULL,
      int64_t nbytes = INT64_MAX, IOBufferReader *buf = 0, bool owner = false) = 0;
      virtual void do_io_close(int lerrno = -1) = 0;
      virtual void do_io_shutdown(ShutdownHowTo_t howto) = 0;

      VConnection(ProxyMutex *aMutex);
      virtual void set_continuation(VIO *vio, Continuation *cont);
      virtual void reenable(VIO *vio);
      virtual void reenable_re(VIO *vio);

      virtual bool get_data(int id, void *data)
      {
      (void) id;
      (void) data;
      return false;
      }
      virtual bool set_data(int id, void *data)
      {
      (void) id;
      (void) data;
      return false;
      }

      public:
      int lerrno;
      };

    VConnectiona�sa?�a?�a?�a??a??a�?a??e?�cs�e�s?�Yc�?e?�i??a??a�?e��ATSa??c?�c�?a�?cS�?�????a�?c??c�?e�?a??????�?a???��??�e�sa??i?????a?Sa��e�sa?????a?�cs�a??a�?e��a?�cZ?a��

e?�e?�a?Z?Z?a??

  • C API

    ATSe�?e��cs�API???C APIi??a??ts.hi??e?�???Ccs�APIi????�?Y?a??e??c�?C++c?�a??a�?e?�a�?C APIa??a??a��i??a????Ze��aZ�a��

    ATSa???��e????�a?�a?�a??e?zc??a�scs�APIi??a�sa?�a??i?sexperimental.h

    e????�2a??API?��a��i??e�?e��a?�?????�???a?�c��a��a��

    • InkAPIHughes.h a??Hughese�?e�?cs�Prefetch APIi??c�?a?�PrefetchaSYe??cs�a??a�?c?�c?�a��
    • InkAPIPrivateIOCore.h a??a?�a��cs�APIi??a��e�?a�?Buffera�?c?�c�?a?�c��i??a?�e???????�e?�e�?c�?a?�cs�a?�e�?a��
  • C++ API

    LinkIn a��a??a??ATS?��aS�a?�a?�a?�C++cs�APIi??e?�e�?a??c?�e?�cs�?��a��aS� --with-cpp11api e��e??configure?�?e??a��

    C++ APIa?�a?�i?s

    • ts-cpp11.h
    • ts-cpp11-headers.h

    e?�a??APIa??e??a??a�Ya�?a��

ATS??�a��cZ?a??

  • ATS ??�a��???a??

    • globali?se?�c�????a??cs�??�a��i?????a?sa??a�?a��??�?�?i??a??a�???�?�??��????�?a???�?c?�i??a?�?��a�???�c�?a�?e?ze?�c?�a��
    • remapi?sa??c�???�e?�?��c�?e?�remapa�????a?Zcs�e?�?��hooke?�aZ�i?????a?�a???��aS�c?�c��a?�c�?e��e?�cs�a?�?�?a��
  • ATS ??�a��??????
    • global
      • TBD ??�a????�e??a�Yc�?tsxse?�a??a�?a��e??a�Yc�Y???a?�a?�??????a�?c�?i???�?a???�?c?�a?�
    • remap
      • TBD

ATS?�?a???�?c?�

  • ?�?c?�
  • hookc�?

a�?a?ZcS�?�????

  • a?�HttpSM

    HttpSM?????�ATScs�?�?a??http?�?c?�cS�?�????i??a??proxy/http/HttpSM.cc(.h)a?�a�sa?�cs�cS�?�????i??e?�????�?a??proxya?saS?cs�a��cS�?�????i???��??�cs�a��a��?�?c?�e?????a??e��a?Zi????�a�?e?�a?Zi?�e?�a??cS�?�????a?Scs�a��a��a�z???a�?e?�a��cachec��a��a?�c��e?�a???��a��a?Y???c��a�?ATSa?�??�a��cs�2a???��a��a?�a?�i??a�?e?�a?�e??cs�a�?c�???�???a?�cs�e??aS�a��

    HttpSMc�?a????�a��a?�a?�e��???e??i??a��a?Z???a??a??e�?cs�i??a��a???��??�cs�??�a��e?????hooka?�?�?a??http?�?c?�a?�e�????cs�a��a????�???c?�?�?a??a�?c�?cs�a??a��?�???�?�?a?�a��

  • a�?cS�?�????

    ?��e��a�?cS�?�????i??a��a�za??ATScs�a?�a��c?�c�Ye�?i??a?�a��e?????i??a??e�????a?sa?�a??c??a?�a�???�c�?cs�a?�?�?a��c?�a?�c��e�?a?�a�?a?�a??cS�?�????(processor)???a?si??c�?a?????e??e?�a?�e????�e??a?�az�a?�a��

    ATScs�a?�HttpSMcS�?�????a?�a?????a�?a�?a??a???Z�a?�cs�i??ATSa�?e�?a?�a??a��c?�a?�cs�e�?a��a�sa?�e�?a��cs�cS�?�????i??c�se�?c��e?�c�?a��a�s?��HttpSM?�?c?�i??e?�e�?a??a�?a?�e�?cs�a�?c�???�i?s

    • Prefetchi?sproxy/Prefetch.cci??.hi?�i??e?�???a?�a??a?sa?�?�?a??a?�cs�transform??�a��i??a??c�???�e�?e��htmlcs�?��a��i??e�??z?htmla?�???a?�?��??�e?�e??a�?c?�i??a?�aS?a?�e��a�z???a�?e?�a?�i?????e�?c�???�?�Ya?�a��e?�e�?cs�?�?a?????a?�a??a?Za?�a�z???cS�?�????i??a�?az�cs�e�?e�?a??a�?a?�e�?a��
    • example/protocoli??e?�???a?�a??a�?a�?e��c��HttpSMcs�a??e��a�?c�?a?�a�?i??e?�e�?a�sa?�a?�a?�a??protocol??�a��i??c�??Z?accepta?�a?�e�?a��a�?c��a?�e�?a��cs�SMcS�?�????i??e��e�?a��cs�c��c��?�?c?�(TxnSM.c)a��

ATSa�?c�??��

  • iocore

    IOcorec?�c�Y???a�sa?�??�?�?a??cs�ATSaY?c?�???a?�i??a�sa?�a?�a?�a��cs�?��??�a�?e��??�?z�i??e?�a?�???a?�a�???�?z�a?Za?saS?c?�c�Yc�?a??c��c��i??a��a?�a?�?��i?s

    • eventsystem a?�a��c?�c�Yi??a�sa?�a?�a?�a��c?�c�Ycs�e�?a?�???a?�a�?bufferc�?c?�c?�c�Yc��c��
    • net c?�c�?a��i??a�sa?�a?�c?�c�?a��c?�cs�aY?c?�??�?z�
    • aio a?�?�?IOcs�a�zcZ�i??a�zcZ�a?�c��a??a?Zlibccs�AIOc??c?�?�????
    • cache c?�a�?a?Z?��a��c?�c�Yi??c�?c?�c??c�?a�?a�?a�?a��a�?cachec��
    • cluster e��c?�e�sa??c?�c�Yi??e�?a�?e��c?�?��??�a?�a?�a??e��RPC
    • dns DNSe�??z?a�?c�?i????�a��e?�e�?a??a?�?�?cZ?a??a?�a?sDNScs�e�??z?a�???�c�?
    • hostdb DNSc?�a�?c?�c�Yi??e�?a�?a?�DNScs�a?�e�?cache

    IOcorec?�c�Yi??a�?c�?e��e?�c�?a??es�c��cs�e?????a??e��cs�i??a��?��a?�a?????a?�???e??a�Y??�e??c��c��cs�c?�e�?a�?a��a?�cs�a��

  • proxy

    Proxy???a?�a??a�?e?????ATScs�a?saS?e��e?�i??a?Y???traffic_servercs�a?�a�?c�??��a??a?�a��

    Proxya?�??�a��a????�e??a�?e��cs�???a?�i?s

    • loggingi?s?��e��cs�access?�?a?�???a?�
    • apii?s??�a��?��e??cs�APIe?????a�sa?�a??e?�e�?cs�a��i??C++API?�?a??libc��a?�a?�i?�
    • configi?sATScs�e�?c?�?��a��????��a��c��a?�
    • httpi?se?�???a�?e��cs�cS�?�????c��a?�

    a��a��a?�c�?aSYe??i??e???�?a??proxy/c��a?�a?�i??e?�e�?a?Y???aSYe????�a�sa�???�a?�cs�a?�?��a�?a��a��

  • cop

    cop???c�????a�??�?traffic_copa�?c�?cs�i??c�?a?????e???????�c��a?�cs�a�?c�?a��a��

  • mgmt

    e?�e�?a�??�?cs�???traffic_managera�?c�?a��a��a?�a�???�e�?a�se?�e�???�c?�cs�e�?a�?c�??��???a��

  • lib

    e?�e�?a�??�?cs�???ATScs�aY?c?�a?�i??c��?�?e�?aZYInktomi++cs�a�?C++?��a��a?�i??ATSa??a��e??a?�a??e��??�e??a��cs�a��e?�a??a?�???az�??�e???��i??a?�a?�e��c��e????�e??a�?e??a��?Y?a??e??e?�a??a��???C++?��a��a?�a�Sa��e??e??a?�a??i??95-99a??i?�ATSa?�a?�cs�?��a��i??C++?��a��e??a??a??e?Za?�a?�i?Y

    liba?�??�a��a??a�?e��???a?�i?s

    • tsi?sa???��e??cs�ATS C++?��a��a?�
    • recordsi?se?�a??c��a?�???stats|recordsc?�c�Ycs�a�?e��
  • example

    a�??�?SDKa��c�?cs�i??a�?a?S???a��c�?cs�?��??�??�a��a?�e�?a�?c�?a��a??a�??�?a??cs�e??i??ATSe??a�Ya?scs�a???�?i??a??e?�a??c��a?�a?�e??a??a�??�?a?�??�e???Z?e?�cs�a?�a�?a��a�Ze?�e�?cs�a�?c�?a?�a��a?saS?c?�c?�???a??a??cs�e��?��a��

  • tools

    a�??�??��e???��e?�a�?a��a��http_load jtesta�?a��a�?a?ScS�?�?e�Ye??a�?a��tstopc��

  • plugins

    a�??�??��??�a��a?�a?�a?�a�?c�?cs�??�a��c?�c�Ya�?c�?i?s

    • esi
    • cacheurl
    • regex_remap
    • a��a��experimental??�a��
  • doc

    a�??�?Admin?��a�?a�?man?��a�?c��

  • rc

    inite�s??�c��

分类: ATS核心, ATS调优, 插件开发 标签:
  1. 2013年6月13日18:40 | #1

    正在看代码,又学到不少东西。

  2. 2013年6月24日14:34 | #2

    豪哥,看了几遍官方文档VIO,VCONNECTION这些的使用还是不太明白。每个插件好像都用到了这些东西。能否再详细的介绍一下使用方法?

  3. tao_627
    2014年2月10日20:13 | #3

    很感谢豪哥心血积累的无私共享,有些东西说的很精辟,对很多关键而又易含混的概念说的很浅显易懂,比如这句,VConnection定义了一个可以串联的虚拟管道,可以让ATS在网络、状态机、磁盘间形成流式数据通信,是上层通信机制的很关键一环。至于领悟的程度,就只能靠个人的悟性和勤奋程度了。

  4. 2015年12月4日12:18 | #4

    很不错的分享,正在做ats的开发,很不错的分享;

  5. 木小南
    2016年10月10日15:22 | #5

    正在ats的入门阶段,很棒的资料,谢谢了。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.