和朋友聊天時被問到中間件是什么?一時有點語賽,感覺熟悉這個概念,但又完全不知道如何清楚的向別人講這些。
網絡上搜了一下,也沒找到讓自己很認可的說法,有的說非業務的技術類組件,是操作系統之上和業務邏輯之下的中間層都可以稱之為中間件,有說用於解耦底層邏輯和業務應用的組件,也有說是一些可復用的后台組件,似乎有點道理但又沒完全講清楚這個概念。
中間件就是在大型網站中,幫助各子模塊間實現互相訪問,消息共享或統一訪問等功能的軟件產品。常見的有:
遠程服務框架中間件:主要解決各子模塊之間互相訪問的問題。 如分布式服務框架Dubbo,RPC框架等
消息隊列中間件:主要解決各子模之間消息共享的問題。 是一種EDA架構(event driven architecture):通過在低耦合的模塊之間傳輸事件消息來完成模塊之間的合作。大型網站中,消息隊列采用發布/訂閱模式。消息發布者發布消息到消息隊列,消息消費者只要對該類消息感興趣,就可以訂閱該消息,對其他的業務沒有任何的影響。
數據訪問中間件:用於簡化應用層對數據層的訪問。
從草稿箱中翻出這篇文章,再看這個問題,覺得中間件其實也有兩個層面不同理解。狹義中間件如常見的遠程服務框架、消息隊列、緩存等;廣義的中間件是操作系統之上業務邏輯之下的所有可復用的后台組件。
今天是教師節,向所有曾教過自己的教師表示感恩!