osgi實戰項目(osmp)一步一步玩轉osgi之組件介紹(1)

好久沒有寫過博客了,最近osmp項目開源後,接到不少朋友的諮詢,現以osmp項目爲基礎一步一步介紹和帶領你們步入osgi的世界。php

 

適合入門的OSGI實戰項目:前端

http://git.oschina.net/wyuxiao729/osmpjava

 

osmp的起源:git

在上上家公司的時候和同事一塊兒完成某運營商的智能網管入圍測試項目,在他的帶領下一步一步的接觸osgi,同時被osgi靈活方便的部署和熱加載深深的吸引,在完成此項目後,離開了公司,進入到一家遊戲,娛樂,運營的公司,因爲公司的不少項目是經過php開發的,在我進入公司後,公司決定使用java開發將原來不少項目重寫一次,因爲被osgi深深打動,因而決定使用osgi來搭建基礎架構,並提供服務給前端。和上上家一塊兒過來的同事一塊兒基於osgi開發,並慢慢演進成現有框架。雖然說已經離開了上家公司,步入到現今這家互聯網公司,也從之前的osgi和傳統開發轉變爲如今的基礎設施組,搞devops方面的開,容器雲方面的開發,一直仍是放不下osgi,故將原來代碼框架中的業務剝離出來開源出來。以供你們一塊兒入門和交流!!!!web

 

OSMP組件介紹:redis

osgi環境下的組件(servicemix部署)算法

osmp-http:經過cxf對外發布統一請求入口,提供restful和soap兩種協議的通信,將接收到的請求解析後路由到業務bundle去執行並返回給調用方sql

osmp-intf-define:抽像出來的核心框架的接口定義,基中最主要是兩個接口 BaseDataService.java(定義的基本服務接口)、ServiceInterceptor.java(定義的基本攔截服務接口)緩存

osmp-service:服務組件,實現osgi的BundleListener和ServiceListener監聽器,當有bundle被安裝、升級時,將服務註冊到zookeeper上,同時提供給osmp-http來查詢服務將調用服務tomcat

osmp-jdbc:數據持久層組件,提供基於druid數據源的動態建立和消毀,同時提供了一套基於jdbc-template並模仿mybatis的數據持久層接口,sql的動態管理功能等。

osmp-resource:提供全局的資源配置管理

osmp-log:全局的日誌監控和管理

osmp-cache-define:osgi環境下全局組件業務cache定義

osmp-osgi-cache:osgi環境下基於ehcache的業務緩存,能夠經過osmp-web實時動態的修改緩存策略,好比開啓基於方法的緩存,動態調整失效、存活時間,也能方便的擴展爲經過redis的分佈式緩存。

osmp-config:全局配置管理,配置osmp-web(管理後臺)下發配置和參數

osmp-monitor:使用camel寫的一個簡單的性能監控組件,主要用到了camel-http,camel-quartz,定時將服務器cpu、memory信息推送到osmp-web(管理後臺)

osmp-util:工具組件

osmp-tools:工具組件

osmp-zookeeper:zookeeper工具組件

 

osmp-demo:簡單的基於osmp下業務開發的demo

 

管理後臺

osmp-web:osmp的管理後臺,這個很少說,直接跑在tomcat,jetty裏。

osmp-cache:web工程下的cache組件,能夠經過頁面動態修改緩存策略,開啓,關閉基於方法級別的業務緩存。

 

提供給業務方的sdk

osmp-client:提供給業務方的sdk client,經過此組件監聽zk上註冊的服務,服務器的狀態,及osmp-web發佈的策略,進行服務發佈、服務路由、負載均衡算法,基於參數級別的灰度等。

 

 

各基礎業務組件有相互依賴關係,最小部署單元以下:

osmp-http、osmp-intf-define,osmp-service、osmp-utils、osmp-tools

 

因爲提交的代碼當中要跑起來,其餘組件達到ppt當中的效果,因此其它組件也必需要部署,若是隻想單機跑的話。以上組件就ok了,可是可能要稍微的註釋掉一些代碼才行!

 

基礎組件就介紹到這兒。若是有不太清楚的歡迎加qq:335898216 交流!

 

下一篇將介紹osmp-http 在osgi環境下經過 cxf發佈restful服務和webservice服務,將請求解析後調用業務組件提供的服務!

相關文章
相關標籤/搜索