hybris內(nèi)容知識(shí)包括:Cockpit(ZK)/CockpitNG/CMS/Solr/Promotion/Mobile/OMS/Catalog design/PCM/OMS/Datahub/Accelerator。
WikiHybris 所有的資料都在hybris的wiki上,所以從high level上來(lái)說(shuō),比較好的一個(gè)途徑是看wiki,做trail。hybris的trail 其實(shí)應(yīng)該做幾遍,知道每一步的流程具體是做什么的。
Project Implementation做hybris項(xiàng)目,會(huì)非常辛苦,我見(jiàn)過(guò)partner從早上8點(diǎn)多做到晚上12點(diǎn)。這對(duì)于某一個(gè)領(lǐng)域的能力會(huì)增加很快,不過(guò)對(duì)于hybris知識(shí)的廣度可能未必。
Source Code我們都知道hybris的source code是可以被反編譯的,可以大概看看其中的代碼結(jié)構(gòu)。wiki上很多資料寫(xiě)的其實(shí)并不全,并且由于資料多,很容易看過(guò)前面就忘了后面。
具體實(shí)現(xiàn)細(xì)節(jié)還需要看源代碼來(lái)了解,例如hybirs core和core plus 的底層細(xì)節(jié)(如類型系統(tǒng)type system的啟動(dòng)和初始化),以及spring context scope等,這些細(xì)節(jié)都是需要看源代碼來(lái)了解的。還包括一些正在發(fā)展的component, 如datahub的實(shí)現(xiàn)細(xì)節(jié),在wiki上基本沒(méi)有,必須看源代碼才能知道其內(nèi)部邏輯。
注:反編譯的源代碼不一定保證能和源source code一一對(duì)應(yīng),我就見(jiàn)過(guò)exception stack trace 和反編譯出來(lái)的代碼對(duì)應(yīng)不上,到時(shí)候可能會(huì)一頭霧水。閱讀源代碼的時(shí)候還可以用關(guān)系圖來(lái)理解各個(gè)package之間的聯(lián)系,從而將自己的知識(shí)網(wǎng)格化,這樣不同的知識(shí)點(diǎn)能夠互相連接起來(lái)。
Lucene是一個(gè)開(kāi)放源代碼的全文檢索引擎工具包,即它不是一個(gè)完整的全文檢索引擎,而是一個(gè)全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語(yǔ)言)。Lucene的目的是為軟件開(kāi)發(fā)人員提供一個(gè)簡(jiǎn)單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎.
Solr是一個(gè)高性能,采用Java5開(kāi)發(fā),基于Lucene的全文搜索服務(wù)器。同時(shí)對(duì)其進(jìn)行了擴(kuò)展,提供了比Lucene更為豐富的查詢語(yǔ)言,同時(shí)實(shí)現(xiàn)了可配置、可擴(kuò)展并對(duì)查詢性能進(jìn)行了優(yōu)化,并且提供了一個(gè)完善的功能管理界面,是一款非常優(yōu)秀的全文搜索引擎。它對(duì)外提供類似于Web-service的API接口。用戶可以通過(guò) 下面主要說(shuō)說(shuō)需要注意的地方。 Solr的安裝非常簡(jiǎn)單,下載solr的zip包后解壓縮將dist目錄下的war文件改名為solr。
war直接復(fù)制到tomcat5。5的webapps目錄即可。
注意一定要設(shè)置solr的主位置。有三種方法。
我采用的是在tomcat里配置java:comp/env/solr/home的一個(gè)JNDI指向solr的主目錄(example目錄下),建立/tomcat55/conf/Catalina/localhost/solr。 xml文件。
觀察這個(gè)指定的solr主位置,里面存在兩個(gè)文件夾:conf和data。其中conf里存放了對(duì)solr而言最為重要的兩個(gè)配置文件schema。
xml和solrconfig。xml。
data則用于存放索引文件。 schema。
xml主要包括types、fields和其他的一些缺省設(shè)置。 solrconfig。
xml用來(lái)配置Solr的一些系統(tǒng)屬性,例如與索引和查詢處理有關(guān)的一些常見(jiàn)的配置選項(xiàng),以及緩存、擴(kuò)展等等。 上面的文檔對(duì)這兩個(gè)文件有比較詳細(xì)的說(shuō)明,非常容易上手。
注意到schema。xml里有一個(gè)url 的配置,這里將url字段作為索引文檔的唯一標(biāo)識(shí)符,非常重要。
三、加入中文分詞 對(duì)全文檢索而言,中文分詞非常的重要,這里采用了qieqie庖丁分詞(非常不錯(cuò):))。集成非常的容易,我下載的是2。
0。4-alpha2版本,其中它支持最多切分和按最大切分。
以下資料整理自網(wǎng)絡(luò),以及查看solr幫助文檔。
主要分為兩部分,第一部分是對(duì)《db-data-config.xml》的配置內(nèi)容的講解(屬于高級(jí)內(nèi)容),第二部分是DataImportHandler(屬于基礎(chǔ)),第三部分是對(duì)db-data-config.xml的進(jìn)階 第一部分是對(duì)《db-data-config.xml》 query是獲取全部數(shù)據(jù)的SQL deltaImportQuery是獲取增量數(shù)據(jù)時(shí)使用的SQL deltaQuery是獲取pk的SQL parentDeltaQuery是獲取父Entity的pk的SQL Full Import工作原理:執(zhí)行本Entity的Query,獲取所有數(shù)據(jù);針對(duì)每個(gè)行數(shù)據(jù)Row,獲取pk,組裝子Entity的Query;執(zhí)行子Entity的Query,獲取子Entity的數(shù)據(jù)。 Delta Import工作原理:查找子Entity,直到?jīng)]有為止;執(zhí)行Entity的deltaQuery,獲取變化數(shù)據(jù)的pk;合并子Entity parentDeltaQuery得到的pk;針對(duì)每一個(gè)pk Row,組裝父Entity的parentDeltaQuery;執(zhí)行parentDeltaQuery,獲取父Entity的pk;執(zhí)行deltaImportQuery,獲取自身的數(shù)據(jù);如果沒(méi)有deltaImportQuery,就組裝Query 限制:子Entity的query必須引用父Entity的pk 子Entity的parentDeltaQuery必須引用自己的pk 子Entity的parentDeltaQuery必須返回父Entity的pk deltaImportQuery引用的必須是自己的pk 第二部分是DataImportHandler 關(guān)于DataImportHandler的具體使用方法,詳見(jiàn)下文,如果你英文超級(jí)好,那看這個(gè)鏈接吧:.mysql.jdbc.Driver" url="jdbc:mysql://localhost/dbname" user="db_username" password="db_password"/> 數(shù)據(jù)源也可以配置在solrconfig.xml中 屬性type 指定了實(shí)現(xiàn)的類型。它是可選的。
默認(rèn)的實(shí)現(xiàn)是JdbcDataSource。 屬性 name 是datasources的名字,當(dāng)有多個(gè)datasources時(shí),可以使用name屬性加以區(qū)分 其他的屬性都是隨意的,根據(jù)你使用的DataSource實(shí)現(xiàn)而定。
當(dāng)然 你也可以實(shí)現(xiàn)自己的DataSource。 多數(shù)據(jù)源 一個(gè)配置文件可以配置多個(gè)數(shù)據(jù)源。
增加一個(gè)dataSource元素就可以增加一個(gè)數(shù)據(jù)源了。name屬性可以區(qū)分不同的數(shù)據(jù)源。
如果配置了多于一個(gè)的數(shù)據(jù)源,那么要注意將name配置成唯一的。 例如: 然后這樣使用 ..<entity name="one" dataSource="ds-1" 。
> .. .... 配置JdbcDataSource JdbcDataSource中的屬性有 driver(必需的):jdbc驅(qū)動(dòng)名稱 url(必需的):jdbc鏈接 user:用戶名 password:密。
Solr是一個(gè)Java應(yīng)用,可以部署在Web容器中。
如果使用的是 Sun Java 1。6, 在啟動(dòng)命令行加上 -Dcom。
sun。management。
jmxremote 即可啟用 JMX 監(jiān)控。例如: java -Dcom。
sun。management。
jmxremote -jar start。jar配置時(shí),需要JMX的用戶名,口令,和jmx_url。
如果是本地相同用戶監(jiān)控,只要制定進(jìn)程號(hào)即可,這種方式不需要用戶名和口令,(只對(duì)Sun Java 1。6 有用),具體寫(xiě)法可參考,另一個(gè)開(kāi)源工具sigar的文檔。
監(jiān)控時(shí)首要關(guān)注的是Java虛擬機(jī)的配置,包括堆空間大小,當(dāng)前堆的使用大小等。然后關(guān)注的應(yīng)該是索引文檔的數(shù)量,最大值,以及各種查詢,緩存的命中率,使用率等,具體如下: JVM 指標(biāo) activeThreadCount:活躍線程數(shù)量 CurrentHeapSize:當(dāng)前堆大小 TotalHeapSize: 堆的總大小 Searcher 監(jiān)控 Searcher Number of Docs Searcher Max Docs Query監(jiān)控 Query Result Cache Evictions Query Result Cache Hit Ratio Query Result Cache Hits Query Result Cache Inserts Query Result Cache Lookups Query Result Cache Sizes Document監(jiān)控 Document Cache Evictions Document Cache Hit Ratio Document Cache Hits Document Cache Inserts Document Cache Lookups Document Cache Sizes Filter 監(jiān)控 Filter Cache Evictions Filter Cache Hit Ratio Filter Cache Hits Filter Cache Inserts Filter Cache Lookups Filter Cache Sizes Update 監(jiān)控 Update Handler Adds Update Handler Commits Update Handler Autocommits Update Handler Optimizes Update Handler Rollbacks Update Handler ExpungeDeletes Update Handler DocsPending Update Handler DeletesById Update Handler DeletesByQuery Update Handler Errors 監(jiān)控Solr后,可使用Hyperic HQ豐富功能,對(duì)采集的數(shù)據(jù)進(jìn)行查看,展示,報(bào)警。
作為一個(gè)真正的IT人員,我們不僅要懂得高級(jí)語(yǔ)言的編程使用,更要懂得電腦基礎(chǔ)的知識(shí)。這是我們成為杰出的IT人員的基石,只有踏上這些基礎(chǔ)知識(shí)我們才能走的更高。
首先我們要懂得電腦是如何工作的?電腦的工作原理就是開(kāi)和關(guān)兩種狀態(tài),這是由其中的部件只有開(kāi)和關(guān)這兩種狀態(tài)最穩(wěn)定決定的。
而我們用0和1去表示他們,電腦將0和1進(jìn)行了充分的組合,也就是部件的串聯(lián),造就了豐富多變各種各樣的事物,也就是我們看電腦功能的強(qiáng)大。
可以通過(guò)0和1進(jìn)行編碼輸入計(jì)算機(jī),也可以通過(guò)解碼將其還原成原來(lái)的事物。這就是電腦工作最基本的原理。
0和1編碼也就是我們說(shuō)的二進(jìn)制Binary,二進(jìn)制的出現(xiàn)正是伴隨著計(jì)算機(jī)的誕生而出現(xiàn)的,計(jì)算機(jī)的一切工作計(jì)算都是由二進(jìn)制編碼完成的。就像十進(jìn)制Decimal正是專門(mén)為我們?nèi)祟愂褂梅奖愣a(chǎn)生的。另外還有十六進(jìn)制Hexadecimal,由于人類研究二進(jìn)制比較復(fù)雜,才引出了十六進(jìn)制去方便研究二進(jìn)制。
而這些簡(jiǎn)單的二進(jìn)制是如何和世界轉(zhuǎn)變的呢?這里又引出了ASCII碼,BCD碼,國(guó)標(biāo)碼等這些都是幫助計(jì)算機(jī)實(shí)現(xiàn)其功能的必需品。
這些東西都是電腦正常工作的必備條件,只有我們把這些東西,弄明白了我們才能在計(jì)算機(jī)方面走的更高更遠(yuǎn)。
IT 人員必學(xué)的基礎(chǔ)知識(shí)(二)——進(jìn)制相互轉(zhuǎn)化
二進(jìn)制是計(jì)算機(jī)處理數(shù)據(jù)的工具。單位有位(bit),字節(jié)(Byte),千字兆(KB),兆字節(jié)(MB),千兆字節(jié)(GB)。
相互轉(zhuǎn)換關(guān)系:1B=8bit,1KB=1024B,1MB=1024KB,1GB=1024MB。
二進(jìn)制,八進(jìn)制,十進(jìn)制,十六進(jìn)制之間的轉(zhuǎn)換圖:
其中二進(jìn)制可以作為這幾種之間相互轉(zhuǎn)化的基礎(chǔ),通過(guò)二進(jìn)制很多可以變得很簡(jiǎn)單:
IT人員必學(xué)基礎(chǔ)知識(shí)(三)——編碼理解
上篇說(shuō)的二進(jìn)制等之間的轉(zhuǎn)換,而要完成這些轉(zhuǎn)換,需要人為的定制一些規(guī)則,這就是第一篇提到的ASCII碼,BCD碼和國(guó)標(biāo)碼。
1、ASCII碼,即美國(guó)標(biāo)準(zhǔn)信息交換碼(American Standard Code for Information Interchanger), 包括了32個(gè)通用字符,10個(gè)十進(jìn)制數(shù)碼,52個(gè)英文大小寫(xiě)字母和34個(gè)專用符號(hào)。這是沒(méi)有拓展的,最常用的。圖:
2、BCD(Binary-Coded Decimal)碼,又稱為“二-十進(jìn)制編碼”專門(mén)解決用二進(jìn)制數(shù)表示十進(jìn)制數(shù)的問(wèn)題。BCD制編碼的方法有很多,通常有8421碼,5421碼等等。
例:13可以寫(xiě)作8421碼0001 0011
3、國(guó)標(biāo)碼(GB2312),主要是編碼漢字的,有兩個(gè)7位二進(jìn)制編碼表示,即每個(gè)編碼需要占兩個(gè)字節(jié),是針對(duì)中國(guó)一些信息編制的一些編碼。
IT人員必學(xué)基礎(chǔ)知識(shí)(四)——補(bǔ)充總結(jié)
這是計(jì)算機(jī)計(jì)算十進(jìn)制運(yùn)算時(shí)的大致過(guò)程,它將幾種進(jìn)制和幾種編碼運(yùn)用到了極致。這就是計(jì)算機(jī)運(yùn)用簡(jiǎn)單的事物早就不簡(jiǎn)單的事情。計(jì)算機(jī)中任何一個(gè)過(guò)程都需要運(yùn)用到這些知識(shí),另外還有原碼,反碼,補(bǔ)碼等等。
在計(jì)算機(jī)內(nèi),定點(diǎn)數(shù)有3種表示法:原碼、反碼和補(bǔ)碼。原碼(true form)就是二進(jìn)制定點(diǎn)表示法,即最高位為符號(hào)位,“0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小。
反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外。補(bǔ)碼(two's complement)表示法規(guī)定:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:2.745秒