Shuttle Bus體系架構的特徵
Request-responsepattern
Request-responseorrequest-replyis one of the basic methods computers use to talk to each other. When using request-response, the first computer requests some data and the second computer responds to the request. Usually there is a series of such interchanges until the complete message is sent. Browsing a web page is an example of request-response communication. One can think of request-response as being like a telephone call, where you call someone and they answer the call. Compare this withone-waycomputer communication, which is like the push-to-talk or "barge in" feature found on some phones and two-way radios, where a message is sent without waiting for a response. Sending an email is an example of one-way communication.
Request-response, also known as request-reply, is amessage exchange patternin which a requestor sends a request message to a replier system which receives and processes the request, ultimately returning a message in response. This is a simple, but powerful messaging pattern which allows two applications to have a two-way conversation with one another over a channel. This pattern is especially common in client-server architectures.[1]
For simplicity, this pattern is typically implemented in a purelysynchronousfashion, as inweb servicecalls overHTTP, which holds a connection open and waits until the response is delivered or thetimeoutperiod expires. However, request-response may also be implementedasynchronously, with a response being returned at some unknown later time. This is often referred to as "sync over async", or "sync/async", and is common inenterprise application integration(EAI) implementations where slowaggregations, time-intensive functions, orhuman workflowmust be performed before a response can be constructed and delivered.
Publish–subscribe pattern
Insoftware architecture,publish–subscribeis amessaging patternwhere senders ofmessages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers. Instead, published messages are characterized into classes, without knowledge of what, if any, subscribers there may be. Similarly, subscribers express interest in one or more classes, and only receive messages that are of interest, without knowledge of what, if any, publishers there are.
Pub/sub is a sibling of themessage queueparadigm, and is typically one part of a largermessage-oriented middlewaresystem. Most messaging systems support both the pub/sub and message queue models in theirAPI, e.g.Java Message Service(JMS).
This pattern provides greater networkscalabilityand a more dynamicnetwork topology.
-----------------------------------------------------------------------------------------------------------------------
PS:以上內容主要摘自維基百科。
Message Distribution
It is conceivable that an endpoint can start falling behind with its processing if it receives too much work. In such cases it may be changed to distribute messages to worker nodes.
The endpoint that you would like to have message distributed on would require a control inbox configuration since all Shuttle messages should be processed without waiting in a queue like the inbox proper behind potentially thousands of messages. Each worker is identified as such in its configuration and the control inbox of the endpoint performing the distribution is required。
Any message that is sent to the distributor will be sent on to an available worker. Each thread running on a worker will send aWorkerThreadAvailableCommandto the distributor's control inbox once it becomes idle. The distributor will then be able to send on a message for each available thread oo the worker.
========================== 分割線 ===================
Pipeline-based processing(管道,事件,觀察者)
Shuttle makes use of event-based pipelines for:
- Sending messages
- Receiving / handling messages
- Outbox processing
- Distributor processing
- Service bus startup
You can even add your own event anywhere in the pipeline. Various observers handle these events so you can add an observer to any event:
相關文章
- Shuttle Bus之Request/Response模式簡單示例模式
- Android系統架構-----Android的系統體系架構Android架構
- MySQL體系架構MySql架構
- SQLite體系架構SQLite架構
- Oracle體系架構Oracle架構
- 軟體體系架構的認識架構
- Tomcat 體系架構Tomcat架構
- JavaEE體系架構概述Java架構
- Solr體系架構圖Solr架構
- RAC體系架構理解架構
- 『網際網路架構』軟體架構-mybatis體系結構(14)架構MyBatis
- 微服務架構的特徵簡要介紹微服務架構特徵
- Oracle Data block 的物理結構-體系架構OracleBloC架構
- 2_指令集、體系架構、微架構架構
- 大型網站架構之:MySpace的體系架構一(轉載)網站架構
- 大型網站架構之:MySpace的體系架構二(轉載)網站架構
- JavaEE體系架構概述(續)Java架構
- zt_oracle體系架構Oracle架構
- 軟體系統架構有感架構
- GPU體系架構(二):GPU儲存體系GPU架構
- 大型網站架構體系的演變網站架構
- spring cloud微服務分散式雲架構-Spring Cloud BusSpringCloud微服務分散式架構
- 軟體體系架構課堂測試07 –邏輯架構設計架構
- 架構知識體系總結架構
- Kafka體系架構、命令、Go案例Kafka架構Go
- 高效研發體系的基本特徵特徵
- 分散式系統的那些事兒 - SOA架構體系分散式架構
- 談談公司中研發體系的架構架構
- 說說面向服務的體系架構SOA架構
- 基礎架構體系中介軟體學習架構
- 程式設計體系結構(09):分散式系統架構程式設計分散式架構
- 一文搞懂MySQL體系架構!!MySql架構
- 【DATAGUARD】Oracle Dataguard體系架構詳解Oracle架構
- 淺談Android os體系架構Android架構
- 論軟體系統架構風格架構
- Oracle Golden Gate體系架構詳解OracleGo架構
- ORACLE之常用FAQ:ORACLE構架體系Oracle
- 軟體架構與架構師架構