Ⅰ 請用白話講解ActiveMQ的用途
用途就是用來處理消息,也就是處理JMS的。消息隊列在大型電子商務類網站,如京東、淘寶、去哪兒等網站有著深入的應用,隊列的主要作用是消除高並發訪問高峰,加快網站的響應速度。
在不使用消息隊列的情況下,用戶的請求數據直接寫入資料庫,高發的情況下,會對資料庫造成巨大的壓力,同時也使得系統響應延遲加劇,但使用隊列後,用戶的請求發給隊列後立即返回。
例如:不能直接給用戶提示訂單提交成功,京東上提示:「您提交了訂單,請等待系統確認」再由消息隊列的消費者進程從消息隊列中獲取數據,非同步寫入資料庫。
由於消息隊列的服務處理速度遠快於資料庫,因此用戶的響應延遲可得到有效改善。
(1)c語言activemq擴展閱讀:
ActiveMQ主要有以下幾種使用場景
1、非同步調用。
2、一對多通信。
3、做多個系統的集成、同構、異構。
4、作為RPC的替代。
5、多個應用相互解耦。
6、作為事件驅動架構的幕後支撐。
7、為了提高系統的可伸縮性。
Ⅱ 請問您之前問過的一個問題 在VC6.0中編譯ActiveMQ-cpp 出現C2555錯誤的問題後來解決了嗎
抱歉,沒解決。
從目前的資料上來看,ActiveMQ-app的應用都是在JAVA或VC2005下進行編譯的,ActiveMQ-app的examples示例代碼的語法也是VC2005下的語法規范,因此在VC6.0下會出現一些如:error C2555、error C2258等編譯錯誤。
Ⅲ activemq和jms是種什麼關系
JMS是一個用於提供消息服務的技術規范,它制定了在整個消息服務提供過程中的所有數據結構和交互流程。而activemq則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者。
jms 的一個標准或者說是一個協議. 通常用於企業級應用的消息傳遞. 主要有topic 消息(1 對多), queue 消息(1對1)。activemq 是一個jms 的實現, apache 出的.
另外還其它的實現 jboss 。
MQ簡介:
MQ全稱為Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通信方法。應用程序通過寫和檢索出入列隊的針對應用程序的數據(消息)來通信,而無需專用連接來鏈接它們。消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用於諸如遠程過程調用的技術。排隊指的是應用程序通過隊列來通信。隊列的使用除去了接收和發送應用程序同時執行的要求。其中較為成熟的MQ產品有IBMWEBSPHERE MQ。
MQ特點:
MQ的消費-生產者模型的一個典型的代表,一端往消息隊列中不斷的寫入消息,而另一端則可以讀取或者訂閱隊列中的消息。MQ和JMS類似,但不同的是JMS是SUN JAVA消息中間件服務的一個標准和API定義,而MQ則是遵循了AMQP協議的具體實現和產品。
使用場景:
在項目中,將一些無需即時返回且耗時的操作提取出來,進行了非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高了系統的吞吐量。
JMS簡介:
JMS即Java消息服務(Java Message Service)應用程序介面是一個Java平台中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分布式系統中發送消息,進行非同步通信。Java消息服務是一個與具體平台無關的API,絕大多數MOM提供商都對JMS提供支持。
定義:
JMS(Java Messaging Service)是Java平台上有關面向消息中間件(MOM)的技術規范,它便於消息系統中的Java應用程序進行消息交換,並且通過提供標準的產生、發送、接收消息的介面簡化企業應用的開發,翻譯為Java消息服務。
簡介:
JMS是一種與廠商無關的 API,用來訪問消息收發系統消息。它類似於JDBC(Java DatabaseConnectivity):這里,JDBC 是可以用來訪問許多不同關系資料庫的 API,而 JMS 則提供同樣與廠商無關的訪問方法,以訪問消息收發服務。許多廠商目前都支持JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,這只是幾個例子。 JMS 使您能夠通過消息收發服務(有時稱為消息中介程序或路由器)從一個 JMS 客戶機向另一個JMS客戶機發送消息。消息是 JMS 中的一種類型對象,由兩部分組成:報頭和消息主體。報頭由路由信息以及有關該消息的元數據組成。消息主體則攜帶著應用程序的數據或有效負載。根據有效負載的類型來劃分,可以將消息分為幾種類型,它們分別攜帶:簡單文本(TextMessage)、可序列化的對象 (ObjectMessage)、屬性集合 (MapMessage)、位元組流 (BytesMessage)、原始值流 (StreamMessage),還有無有效負載的消息 (Message)。
JMS和MQ的關系:
JMS是一個用於提供消息服務的技術規范,它制定了在整個消息服務提供過程中的所有數據結構和交互流程。而MQ則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者;MQ的實現可以基於JMS,也可以基於其他規范或標准。
支持JMS的開源MQ:
目前選擇的最多的是ActiveMQ。
ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息匯流排。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現,盡管JMS規范出台已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。
主要特點:
1. 多種語言和協議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, PHP。應用協議: OpenWire,Stomp REST,WSNotification,XMPP,AMQP
2. 完全支持JMS1.1和J2EE 1.4規范 (持久化,XA消息,事務)
3. 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裡面去,而且也支持Spring2.0的特性
4. 通過了常見J2EE伺服器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業伺服器上
5. 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
6. 支持通過JDBC和journal提供高速的消息持久化
7. 從設計上保證了高性能的集群,客戶端-伺服器,點對點
8. 支持Ajax
9. 支持與Axis的整合
10. 可以很容易得調用內嵌JMS provider,進行測試
11. ActiveMQ速度非常快;一般要比jbossMQ快10倍。
優點:是一個快速的開源消息組件(框架),支持集群,同等網路,自動檢測,TCP,SSL,廣播,持久化,XA,和J2EE1.4容器無縫結合,並且支持輕量級容器和大多數跨語言客戶端上的Java虛擬機。消息非同步接受,減少軟體多系統集成的耦合度。消息可靠接收,確保消息在中間件可靠保存,多個消息也可以組成原子事務。
缺點:ActiveMQ默認的配置性能偏低,需要優化配置,但是配置文件復雜,ActiveMQ本身不提供管理工具;示例代碼少;主頁上的文檔看上去比較全面,但是缺乏一種有效的組織方式,文檔只有片段,用戶很難由淺入深進行了解,二、文檔整體的專業性太強。在研究階段可以通過查maillist、看Javadoc、分析源代碼來了解。
Ⅳ 如果在程序中查看ActiveMQ中消費者是否在線
如果是C/S的結構,你的服務端和客戶端應該是Socket連接,可以利用心跳來保持服務端和客戶端的連接,已確定客戶端是否存在
Ⅳ c語言能讀取apache activeMQ隊列數據嗎請說的具體點
可以的,參見apache的網站。
Ⅵ 如何學習activemq
1)普通啟動
cd /home/manorage/ apache-activemq-5.3.0
bin/ activemq
(2).指定日誌文件的啟動方式
bin/activemq >tmp/smlog 2>&1 &
(3)後台啟動方式
nohup bin/activemq >tmp/smlog 2>&1 &
這里需要注意:前兩種啟動方式在linix命令行或者通過ssh客戶端啟動時在關閉對應的窗口時activemq會關閉,甚至直接輸入ctrl+c也會導致activemq退出;第三種則不會出現這中情況。
Ⅶ ActiveMQ工作原理
ActiveMQ工作原理:
首先來看本地通訊的情況,應用程序A和應用程序B運行於同一系統A,它們之間可以藉助消息隊列技術進行彼此的通訊:應用程序A向隊列1發送一條信息,而當應用程序B需要時就可以得到該信息。
其次是遠程通訊的情況,如果信息傳輸的目標改為在系統B上的應用程序C,這種變化不會對應用程序A產生影響,應用程序A向隊列2發送一條信息,系統A的MQ發現Q2所指向的目的隊列實際上位於系統B,它將信息放到本地的一個特殊隊列-傳輸隊列(Transmission Queue)。我們建立一條從系統A到系統B的消息通道,消息通道代理將從傳輸隊列中讀取消息,並傳遞這條信息到系統B,然後等待確認。只有MQ接到系統B成功收到信息的確認之後,它才從傳輸隊列中真正將該信息刪除。如果通訊線路不通,或系統B不在運行,信息會留在傳輸隊列中,直到被成功地傳送到目的地。這是MQ最基本而最重要的技術--確保信息傳輸,並且是一次且僅一次(once-and-only-once)的傳遞。
MQ提供了用於應用集成的松耦合的連接方法,因為共享信息的應用不需要知道彼此物理位置(網路地址);不需要知道彼此間怎樣建立通信;不需要同時處於運行狀態;不需要在同樣的操作系統或網路環境下運行。
Ⅷ 如何用C調用activemq通信
我有一次在MQ的官方網站上找東西的時候看到有C++調用MQ的說明,你去官方網站上看看
Ⅸ activemq 怎麼實現負載均衡
一、架構和技術介紹
1、簡介
ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息匯流排。完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現
2、activemq的特性
1. 多種語言和協議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, PHP。應用協議: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
2. 完全支持JMS1.1和J2EE 1.4規范 (持久化,XA消息,事務)
3. 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裡面去,而且也支持Spring2.0的特性
Ⅹ ActiveMQ 消息消費者不主動監聽消息隊列是否有消息,只監聽是是否有消息進去消息隊列
Queue模式獲取之後,消息隊列中消息就應該會被刪除:
Topic模式 在持久化之後,才可能被拿走之後,依然存在