1 同步索引庫分析 方案一:在taotao-manager中,添加商品的業務邏輯中,添加一個同步索引庫的業務邏輯。spring
缺點:業務邏輯耦合度高,業務拆分不明確apache
方案二:業務邏輯在taotao-search中實現,調用服務在taotao-manager實現。業務邏輯分開。服務器
缺點:服務之間的耦合度變高。服務的啓動有前後順序。ide
方案三:使用消息隊列。MQ是一個消息中間件。性能
MQ是一個消息中間件,ActiveMQ、RabbitMQ、kafka測試
2.1. 什麼是ActiveMQ設計
ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個徹底支持JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出臺已是好久的事情了,可是JMS在當今的J2EE應用中間仍然扮演着特殊的地位。code
主要特色:中間件
多種語言和協議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, PHP。應用協議: OpenWire,Stomp REST,WS Notification,XMPP,AMQP對象
徹底支持JMS1.1和J2EE 1.4規範 (持久化,XA消息,事務)
對Spring的支持,ActiveMQ能夠很容易內嵌到使用Spring的系統裏面去,並且也支持Spring2.0的特性
經過了常見J2EE服務器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的測試,其中經過JCA 1.5 resource adaptors的配置,能夠讓ActiveMQ能夠自動的部署到任何兼容J2EE 1.4 商業服務器上
支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
支持經過JDBC和journal提供高速的消息持久化
從設計上保證了高性能的集羣,客戶端-服務器,點對點
支持Ajax
支持與Axis的整合
能夠很容易得調用內嵌JMS provider,進行測試
2.2. ActiveMQ的消息形式
對於消息的傳遞有兩種類型:
一種是點對點的,即一個生產者和一個消費者一一對應;
另外一種是發佈/訂閱模式,即一個生產者產生消息並進行發送後,能夠由多個消費者進行接收。
JMS定義了五種不一樣的消息正文格式,以及調用的消息類型,容許你發送並接收以一些不一樣形式的數據,提供現有消息格式的一些級別的兼容性。
• StreamMessage -- Java原始值的數據流 • MapMessage--一套名稱-值對 • TextMessage--一個字符串對象 • ObjectMessage--一個序列化的 Java對象 • BytesMessage--一個字節的數據流
進入http://activemq.apache.org/下載ActiveMQ
使用的版本是5.12.0
11.1. 安裝環境:
一、須要jdk
二、安裝Linux系統。生產環境都是Linux系統。
11.2. 安裝步驟
第一步: 把ActiveMQ 的壓縮包上傳到Linux系統。
第二步:解壓縮。
第三步:啓動。
使用bin目錄下的activemq命令啓動:
[root@localhost bin]# ./activemq start 關閉: [root@localhost bin]# ./activemq stop 查看狀態: [root@localhost bin]# ./activemq status
注意:若是ActiveMQ整合spring使用不要使用activemq-all-5.12.0.jar包。建議使用5.11.2
進入管理後臺:
http://192.168.25.168:8161/admin 用戶名:admin 密碼:admin