1.±³¾°
Ó¦Óÿª·¢Ê±µÄ³£¹æ×ö·¨£¬Êǵ÷ÓÃÈÕ־ϵͳµÄAPI½øÐÐÈÕÖ¾µÄ¼Ç¼£¬ÈÕÖ¾µÄ¾ßÌå¼Ç¼·½Ê½£¬Í¨¹ýÈÕ־ϵͳʵÏÖ¿â¶ÔÓ¦µÄÅäÖÃÎļþ½øÐÐÅäÖ㬱ÈÈçʹÓÃlog4j2µÄ»°£¬¿ÉÄܾÍÊÇlog4j2.xmlÎļþ£¬ÈÕ־ͨ³£ÊǼǼµ½ÎļþÖеģ¬Èç¹ûÒª²é¿´ÈÕÖ¾£¬¾ÍµÃµÇ¼¸Ã·þÎñÆ÷½øÐÐʵµØ²é¿´¡£ÕâÑùÈç¹ûÓ¦ÓÃÒÔ¼¯ÈºµÄ·½Ê½½øÐв¿Êð£¬È»ºóÓÖ²»ÖªµÀÎÊÌâ³öÏÖÔÚÄĄ̈·þÎñÆ÷£¬Õâʱ¾ÍÐèÒªµÇ¼ÿһ̨·þÎñÆ÷£¬Õâ¸øÏµÍ³µÄ¿ª·¢¡¢²âÊÔºÍÔËά´øÀ´Á˺ܶàµÄÂé·³¡£
µ«ÊǺÍʱÏµĻ¥ÁªÍø¹«Ë¾²»Í¬£¬ÆóÒµ¼¶Ó¦ÓÃͨ³£²»ÐèÒª¶ÔÈÕÖ¾½øÐзÖÎö£¬Í¨¹ýÕý³£µÄÊý¾Ý´æ´¢£¬±ÈÈçÊý¾Ý¿â£¬¾Í¿ÉÒÔ»ñµÃ¾ø´ó²¿·ÖÏëÒªµÄÊý¾Ý¡£
2.Ä¿±ê
ÎÊÌâÊDZȽÏÃ÷È·µÄ£¬ÐèÇóÒ²±È½ÏÇåÎú£¬¾ÍÊÇÏ£ÍûÄÜÉè¼ÆÒ»Ì×½â¾ö·½°¸½â¾öÕâ¸öÎÊÌ⣬´óÖÂÕûÀíһϣ¬Ó¦¸Ã°üÀ¨Èçϼ¼Êõµã£º
¶ÔÓ¦ÓÃ͸Ã÷£º¶ÔÓ¦ÓõĿª·¢Õß¶øÑÔ£¬»¹ÊÇÏñÔÀ´ÄÇÑù¼Ç¼ÈÕÖ¾£¬²»ÐèÒª¹Ø×¢ÈÕÖ¾ÊÇÈçºÎ¼Ç¼¡¢ÒÔʲôÐÎʽ±£´æÔÚÄÄÀïµÄ£»
ÓÐÏ൱µÄÁé»îÐÔ£ºÏ£ÍûÊÇ¿ÉÒÔÁé»îÅäÖõ쬳ýÁË¿ÉÒÔ°´Õչؼü×Ö²éѯÍ⣬×îºÃ»¹¿ÉÒÔÁé»îµØ×Ô¶¨ÒåÆäËûµÄά¶È£¬·½±ã¸ù¾Ý¾ßÌåµÄÒµÎñ³¡¾°£¬½øÐÐÓÐÕë¶ÔÐԵIJéѯ£¬±ÈÈç°´ÕÕʱ¼ä¶Î½øÐвéѯ£¬°´ÕÕ¾ßÌåµÄÒµÎñÖ¸±ê½øÐвéѯµÈ£»
ÓÐͳһµÄ²éѯ½çÃæ£ºÍ¨¹ýÒ»¸öͳһµÄ½çÃæ£¬Äܹ»²éѯµ½Õû¸ö¼¯Èº·¶Î§ÄÚµÄÈÕÖ¾£¬±ÈÈçÊäÈëij¸ö¹Ø¼ü´Ê£¬ÎÞÐè¹Ø×¢ÈÕÖ¾±£´æÔÚÄĄ̈·þÎñÆ÷ÉÏ£»
ÓнϸߵÄÐÔÄÜ£º±£Ö¤ÓнϸߵIJéѯËÙ¶È£»
µÍ×ÊÔ´Õ¼ÓãºÕ¼ÓýÏÉÙµÄϵͳ×ÊÔ´£¬°üÀ¨CPU¡¢Äڴ棬ÉõÖÁ²»ÐèÒªµ¥¶ÀµÄ·þÎñÆ÷½øÐв¿Êð£»
²¿Êð¼òµ¥£º²»ÐèÒª¸´ÔÓµÄÅäÖ㬲¿Êð¼òµ¥¡£
3.¼Ü¹¹·½°¸
ÔÚ×ۺϿ¼ÂÇÁËǰÊö±³¾°¡¢Ô¼ÊøÒÔ¼°Éè¼ÆÄ¿±ê£¬×ۺϿ¼ÂÇÁËÏÖÓпªÔ´ÉçÇøµÄ½â¾ö·½°¸Ö®ºó£¬ÎÒÃǾö¶¨²ÉÓÃLucene+Ignite+Log4j2µÄ¼¼Êõ·½°¸£¬ÕûÌå¼Ü¹¹Í¼ÈçÏ£º

´óÖÂÃèÊöÏÂÉè¼ÆË¼Â·£º
¼¼ÊõÑ¡ÐÍ£ºÕû¸ö¼¼Êõ·½°¸£¬Éæ¼°ÁËÈý¸öÁ÷ÐеĿªÔ´¿â£¬·Ö±ðÊÇ£ºLucene¡¢Ignite¡¢Log4j2£¬ÎÒÃÇʹÓõİ汾·Ö±ðÊÇ5.5.4¡¢1.9.0ºÍ2.7£¬ËûÃÇÆðµÄ×÷ÓÃÈçÏ£º
Lucene£ºÓÃÓÚÈÕÖ¾µÄ´æ´¢¡¢Ë÷ÒýºÍ²éѯ£¬ËüΪ¿ª·¢ÕßÌṩÁ˼òµ¥Ã÷Á˵ÄAPI£¬Ê¹Ó÷dz£·½±ã£¬LuceneÔÚÕâ¸ö¼¼Êõ·½°¸ÖУ¬ÊÇʵÏÖÄ¿±êµÄ»ù´¡£»
Ignite£ºÔÚÕâ¸ö¼¼Êõ·½°¸ÖÐʹÓÃÁËIgniteµÄ·þÎñÍø¸ñºÍ¼ÆËãÍø¸ñ¼¼Êõ£¬ÕâÀIgniteµÄ·þÎñÓÃÓÚ¶Ô²éѯϵͳ±©Â¶½Ó¿Ú£¬IgniteÖлùÓÚMapReduce·¶Ê½µÄǶÈëʽ·Ö²¼Ê½¼ÆËãÓÃÓÚÈÎÎñµÄ·Ö·¢£¬²éѯ½á¹ûµÄ»ã×Ü¡£IgniteÔÚ±¾¼¼Êõ·½°¸Öв¢·Ç±ØÐ裬µ«ÊÇʹÓÃIgniteµÄ¼òµ¥API£¬¿ÉÒÔ´ó·ù½µµÍ±¾¼¼Êõ·½°¸µÄʵÏÖÄѶȺͿª·¢¹¤×÷Á¿£¬Ò²Ê¹±¾¼¼Êõ·½°¸±äµÃÓÅÑÅ£»
Log4j2£º±¾¼¼Êõ·½°¸ÖеÄÁíÒ»¸ö¹Ø¼üµã£¬¾ÍÊǶÔLog4j2½øÐÐÁËÀ©Õ¹£¬×Ô¶¨ÒåÁËÒ»Ì×»ùÓÚLuceneµÄAppenderʵÏÖÒÔ¼°¶ÔÓ¦µÄlog4j2.xmlÅäÖ÷½°¸£¬Ëü½â¾öÁ˶ÔÓ¦ÓÃ͸Ã÷µÄÎÊÌ⣬»¹ÊÇÕû¸ö·½°¸¾ßÓÐÁé»îÐԵĹؼü£¬¾ÍÊǾßÌå¶ÔÄÇЩÊôÐÔ½¨Á¢Ë÷Òý¡¢Êä³öÄÇЩÐÅÏ¢ÒÔ¼°Êä³öÐÅÏ¢µÄ¸ñʽ¡¢Êý¾ÝµÄÀàÐͶ¼ÊÇÔÚlog4j2.xmlÖнøÐÐÅäÖõġ£
Ö´ÐÐÁ÷³Ì£º
log4j2.xmlÅäÖãºÊ×ÏÈÒª½øÐÐlog4j2.xmlÎļþµÄÅäÖã¬ÅäÖ÷½Ê½ºóÃæ»á½éÉÜ£»
ÈÕÖ¾µÄ¼Ç¼£ºlog4j2.xmlÅäÖúÃÖ®ºó£¬¶ÔÓÚÓ¦ÓÃÀ´Ëµ£¬¾Í°´ÕÕÕý³£µÄÈÕÖ¾¼Ç¼·½Ê½Ð´´úÂë¼´¿É£¬Ã»ÓÐÌØ±ðµÄÒªÇó£¬Î¨Ò»ÌرðҪעÒâµÄÊÇ£¬Èç¹ûÒªÕë¶ÔÌØ±ðµÄÒµÎñÖ¸±ê½¨Á¢Ë÷Òý£¬ÒÔÃûΪidµÄ±äÁ¿ÎªÀý£¬ÄÇôÐèÒªÔÚ´úÂëÖжÔÏà¹ØµÄÉÏÏÂÎıäÁ¿½øÐи³Öµ£¬´óÌåΪ£ºThreadContext.put("id",
id);£»
Ignite·þÎñµÄµ÷ÓãºÓû§Í¨¹ý²éѯ½çÃæÊäÈë¹Ø¼ü´ÊÖ®ºó£¬ºǫ́»áͨ¹ýIgnite·þÎñ·¢²¼³öÀ´µÄ½Ó¿Úµ÷ÓÃÔ¶³ÌÒµÎñϵͳµÄ·þÎñʵÏÖ½øÐÐʵ¼ÊÈÕÖ¾µÄ²éѯ¡£ÕâÀïIgnite·þÎñµÄ²¿Ê𣬿ÉÒÔÊǼ¯Èºµ¥Àý£¬Ò²¿ÉÒÔÊÇÿ½Úµãµ¥Àý£¬Èç¹ûÊÇÿ½Úµãµ¥Àý£¬µ÷ÓÃʱIgnite»áÒÔ¸ºÔØÆ½ºâµÄ·½Ê½Ëæ»úµØÑ¡ÔñÒ»¸ö½Úµã£»
ÈÎÎñµÄ·Ö·¢£º·þÎñµÄʵÏÖ»áµ÷ÓÃIgnite¼ÆËãÍø¸ñµÄÈÎÎñ£¨Task£©£¬ÈÎÎñ»á°´ÕÕ¼¯Èº½ÚµãµÄÊýÁ¿Éú³É¶ÔÓ¦ÊýÁ¿µÄ×÷Òµ£¨Job£©£¬Èç¹û×÷ÒµÊýºÍ½ÚµãÊýÏàµÈ£¬Ignite»á½«ÕâЩ×÷ҵƽ¾ù·Öµ½Ã¿Ò»¸ö½ÚµãÉÏÈ¥Ö´ÐУ»
×÷ÒµµÄÖ´ÐУº×÷ÒµµÄÖ´Ðйý³Ì¾ÍÊǵ÷ÓÃLuceneµÄAPI½øÐÐʵ¼ÊµÄ²éѯÁË£¬ÕâÀïÃ»Ê²Ã´ÌØ±ðµÄ£¬Èç¹ûÖ»ÊÇͨ¹ý¹Ø¼ü×Ö½øÐвéѯ£¬»á±È½Ï¼òµ¥£¬Èç¹ûÏëͨ¹ý¶àά¶È½øÐо«È·µØ²éѯ£¬APIµ÷Ó÷½Ãæ»á¸´ÔÓÒ»µã£¬µ«ÊǶ¼²»ÊÇÄÑÊ£¬²»»áµÄ¿ÉÒÔ°Ù¶È£»
ÈÎÎñµÄ»ã×Ü£º¸÷¸ö½Úµã²éѯµÄ½á¹û¼¯£¬ÐèÒª»ã×ܺ󷵻ظøµ÷Óöˣ»
4.¹Ø¼ü¼¼Êõµã
4.1.Ignite
Apache IgniteÄÚ´æÊý¾Ý×é֯ƽ̨ÊÇÒ»¸ö¸ßÐÔÄÜ¡¢¼¯³É»¯¡¢»ìºÏʽµÄÆóÒµ¼¶·Ö²¼Ê½¼Ü¹¹½â¾ö·½°¸£¬ºËÐļÛÖµÔÚÓÚ¿ÉÒÔ°ïÖúÎÒÃÇʵÏÖ·Ö²¼Ê½¼Ü¹¹Í¸Ã÷»¯£¬¿ª·¢ÈËÔ±¸ù±¾²»ÖªµÀ·Ö²¼Ê½¼¼ÊõµÄ´æÔÚ£¬¿ÉÒÔʹ·Ö²¼Ê½»º´æ¡¢¼ÆËã¡¢´æ´¢µÈһϵÁй¦ÄÜǶÈëÓ¦ÓÃÄÚ²¿£¬ºÍÓ¦ÓõÄÉúÃüÖÜÆÚÒ»Ö£¬´ó·ù½µµÍÁË·Ö²¼Ê½Ó¦Óÿª·¢¡¢µ÷ÊÔ¡¢²âÊÔ¡¢²¿ÊðµÄÄѶȺ͸´ÔÓ¶È¡£
4.2.Ignite·þÎñÍø¸ñ
Ignite·þÎñÍø¸ñÒÔÒ»ÖÖÓÅÑŵķ½Ê½ÊµÏÖÁË·Ö²¼Ê½RPC£¬¶¨ÒåÒ»¸ö·þÎñ·Ç³£¼òµ¥£º
ÏÂÃæÍ¨¹ýÒ»¸ö¼òµ¥µÄʾÀýÑÝʾÏÂIgnite·þÎñµÄ¶¨Ò塢ʵÏÖ¡¢²¿ÊðºÍµ÷Óãº
4.2.1.·þÎñ¶¨Òå
public
interface MyCounterService {
int get() throws CacheException;
} |
4.2.2.·þÎñʵÏÖ
public
class MyCounterServiceImpl implements Service,
MyCounterService {
@Override public int get() {
return 0;
}
} |
4.2.3.·þÎñ²¿Êð
ClusterGroup
cacheGrp = ignite.cluster().forCache("myCounterService");
IgniteServices svcs = ignite.services(cacheGrp);
svcs.deployNodeSingleton("myCounterService",
new MyCounterServiceImpl()); |
4.2.4.·þÎñµ÷ÓÃ
MyCounterService
cntrSvc = ignite.services().
serviceProxy("myCounterService", MyCounterService.class,
/*not-sticky*/false);
System.out.println("value : " + cntrSvc.get()); |
¹ØÓÚ·þÎñÍø¸ñµÄÏêϸÃèÊö£¬Çë¿´ÕâÀï¡£
4.3.Ignite¼ÆËãÍø¸ñ
IgniteµÄ·Ö²¼Ê½¼ÆËãÊÇͨ¹ýIgniteCompute½Ó¿ÚÌṩµÄ£¬ËüÌṩÁËÔÚ¼¯Èº½Úµã»òÕßÒ»¸ö¼¯Èº×éÖÐÔËÐкܶàÖÖÀàÐͼÆËãµÄ·½·¨£¬ÕâЩ·½·¨¿ÉÒÔÒÔÒ»¸ö·Ö²¼Ê½µÄÐÎʽִÐÐÈÎÎñ»òÕß±Õ°ü¡£
±¾·½°¸ÖвÉÓõÄÊÇComputeTask·½Ê½£¬ËüÊÇIgnite¶ÔÓÚ¼ò»¯ÄÚ´æÄÚMapReduceµÄ³éÏó¡£ComputeTask¶¨ÒåÁËÒªÔÚ¼¯ÈºÄÚÖ´ÐеÄ×÷ÒµÒÔ¼°ÕâЩ×÷Òµµ½½ÚµãµÄÓ³É䣬»¹¶¨ÒåÁËÈçºÎ´¦Àí×÷ÒµµÄ·µ»ØÖµ(Reduce)¡£ËùÓеÄIgniteCompute.execute(...)·½·¨¶¼»áÔÚ¼¯ÈºÉÏÖ´Ðиø¶¨µÄÈÎÎñ£¬Ó¦ÓÃÖ»ÐèҪʵÏÖComputeTask½Ó¿ÚµÄmap(...)ºÍreduce(...)·½·¨¼´¿É£¬Õ⼸¸ö·½·¨µÄÏêϸÃèÊö²»ÔÚ±¾ÎÄÌÖÂ۵ķ¶Î§ÄÚ¡£
ÏÂÃæÊÇÒ»¸öComputeTaskµÄ¼òµ¥Ê¾Àý£º
IgniteCompute compute = ignite.compute(); int cnt = compute.execute(CharacterCountTask.class, "Hello Grid Enabled World!"); System.out.println(">>> Total number of characters in the phrase is '" + cnt + "'."); private static class CharacterCountTask extends ComputeTaskSplitAdapter<String, Integer> { @Override public List<ClusterNode> split(int gridSize, String arg) { String[] words = arg.split(" "); List<ComputeJob> jobs = new ArrayList<>(words.length); for (final String word : arg.split(" ")) { jobs.add(new ComputeJobAdapter() { @Override public Object execute() { System.out.println(">>> Printing '" + word + "' on from compute job."); return word.length(); } }); } return jobs; } @Override public Integer reduce(List<ComputeJobResult> results) { int sum = 0; for (ComputeJobResult res : results) sum += res.<Integer>getData(); return sum; } } |
ͨ¹ýÕâÑùÒ»¸ö¼òµ¥µÄÀ࣬¾ÍʵÏÖÁËÃÎÃÂÒÔÇóµÄ·Ö²¼Ê½¼ÆË㣡
¹ØÓÚ¼ÆËãÍø¸ñµÄÏêϸÃèÊö£¬Çë¿´ÕâÀï¡£
4.4.×Ô¶¨ÒåµÄLog4j LuceneAppenderÀ©Õ¹
±¾·½°¸µÄ×Ô¶¨Òålog4j LuceneAppenderÀ©Õ¹£¬ÊÇ×öµ½Ó¦ÓÃÎÞ¸ÐÖª£¬¸ßÁé»îÐԺ͸ßÐÔÄܵĹؼü£¬LuceneAppenderµÄ¾ßÌåʵÏÖ£¬²»ÔÚ±¾ÎĵÄÌÖÂÛ·¶Î§ÄÚ£¬µ«ÊÇÒª½éÉÜϱ¾·½°¸µÄÅäÖ÷½Ê½£¬´óÌåÅäÖ÷½Ê½ÈçÏ£¨¼òÂÔ£©£º
<Lucene name="luceneAppender" ignoreExceptions="true" target="target/lucene/index" expiryTime="1296000"> <IndexField name="logId" pattern="$${ctx:logId}" /> <IndexField name="time" pattern="%d{UNIX_MILLIS}" type = "LongField"/> <IndexField name="level" pattern="%-5level" /> <IndexField name="content" pattern="%class{36} %L %M - %msg%xEx%n" /> </Lucene> |
ÆäÖУºtargetÊôÐÔ±íʾË÷ÒýÎļþµÄλÖã¬expiryTimeÊôÐÔ±íʾË÷Òý¹ýÆÚʱ¼ä£¨Ã룩£¬IndexField±êÇ©±íʾ¾ßÌåµÄË÷ÒýÏÆäÖÐnameÊôÐÔÊÇ×Ö¶ÎÃû£¬patternÊôÐÔͬlog4j×ÔÉíµÄpatternÊôÐÔ£¬typeÊôÐÔ±íʾ×Ö¶ÎÀàÐÍ£¬Ä¿Ç°Ö§³ÖLongField£¬TextFieldÒÔ¼°StringField¡£
4.5.Lucene·ÖÎöÆ÷
LuceneAppenderµÄʵÏÖϸ½ÚËäÈ»±¾ÎIJ»»áÏêϸÌÖÂÛ£¬µ«ÊÇÒªÖØµã˵Ï·ÖÎöÆ÷µÄÎÊÌâ¡£
4.5.1.ÐèÇó
ÈÕÖ¾¼Ç¼µÄ³¡¾°ÕûÌåÉÏ»¹ÊDZȽÏÃ÷È·µÄ£¬ÓÐÄÄЩÐÅÏ¢»á±»¼Ç¼µ½ÈÕÖ¾ÖÐÏà¶Ô±È½ÏÈÝÒ×±»Ô¤¼ûµ½£¬¸ù¾ÝǰÊöµÄÅäÖ÷½°¸£¬LuceneÖоßÌåµÄË÷ÒýÏÊÇͨ¹ýIndexField±êÇ©½øÐÐÅäÖõģ¬ÕâЩÏîÄ¿ÕûÌåÉϿɷÖΪÁ½À࣬һÀàÊÇÓоßÌ庬ÒåµÄ×ֶΣ¬±ÈÈçʱ¼ä£¬Ò»ÀàÊÇÄÚÈݲ»È·¶¨µÄ×ֶΣ¬±ÈÈçÈÕÖ¾µÄÄÚÈÝ£¬¶ÔÓÚÓоßÌ庬ÒåµÄ×ֶΣ¬Ó¦¸Ã²»·Ö´Ê£¬²éѯʱ¾«È·Æ¥Å䣬¶ø¶ÔÓÚÏñÄÚÈÝÕâÑùµÄÄÚÈݲ»Ã÷È·×ֶΣ¬Ò²Ó¦¸ÃÊDz»·Ö´Ê£¬µ«ÊDzéѯʱ²ÉÓÃÄ£ºýÆ¥Å䣬ÕâÑùµÄÉè¼ÆÕë¶ÔÈÕÖ¾²éѯÕâ¸ö³¡¾°À´Ëµ£¬»¹ÊDZȽϺÏÀíµÄ¡£
4.5.2.³£¼û·ÖÎöÆ÷¶Ô±È
LuceneÄÚÖÃÁ˺ܶàµÄ·ÖÎöÆ÷£¬³£¼ûµÄ±ÈÈ磺WhitespaceAnalyzer¡¢SimpleAnalyzer¡¢StopAnalyzer¡¢StandardAnalyzer¡¢CJKAnalyzer¡¢KeywordAnalyzerµÈ£¬ËüÃǸ÷×ÔÌØµãÈçÏ£º

4.5.3.½áÂÛ
¸ù¾ÝÉÏÊöµÄÐèÇó·ÖÎö£¬ÒÔ¼°¶ÔÏÖÓеij£¼û·ÖÎöÆ÷¶Ô±È£¬KeywordAnalyzer·Ö´ÊÆ÷ÊDZȽϺÏÊʵ쬵«ÊÇ£¬ËüÓÐÁ½¸öÔ¼Êø£¬Ò»¸öÊÇÇø·Ö´óСд£¬Èç¹ûÏ£Íû²»Çø·Ö´óСд£¬ÔòÐèÒª½øÐÐÏàÓ¦µÄÀ©Õ¹¿ª·¢£¬Ò»¸öÊǹؼü×Ö²»ÄܶàÓÚ256¸ö×Ö·û£¬Õâ¸öÔ¼ÊøÓ¦¸ÃÎÊÌâ²»´ó¡£
5.ÓÅȱµã
5.1.Óŵã
×ÊÔ´Õ¼ÓÃÉÙ£ºÈÕÖ¾µÄ¼Ç¼¹ý³Ì£¬ºÍ³£¹æÈÕÖ¾µÄ¼Ç¼û¶à´óÇø±ð£¬Ã»ÓжîÍâµÄCPUºÍÄÚ´æÕ¼Óã¬Î¨Ò»ÓнϴóÏûºÄµÄ£¬ÊÇLuceneµÄË÷ÒýÎļþÐèÒªÕ¼ÓôÅÅ̿ռ䣬Èç¹û¶ÔÕ¼ÓôÅÅ̿ռäÃô¸Ð£¬»òÕß¶ÔÈÕÖ¾µÄ³¤ÆÚ±£´æÃ»ÓÐÑϸñÒªÇ󣬱¾·½°¸ÖпÉÒÔÉ趨Ë÷Òý¹ýÆÚʱ¼ä£¬³¬ÆÚµÄË÷Òý»á±»É¾³ý¡£Õû¸ö·½°¸ÊÇ¿ÉÒÔ²»ÐèÒª¶îÍâµÄ·þÎñÆ÷ÈíÓ²¼þ×ÊÔ´½øÐв¿ÊðµÄ£»
²¿Êð¼òµ¥£º±¾·½°¸Ö»ÐèÒª¿ª·¢Ò»¸öµ¥¶ÀµÄ´úÀíÄ£¿éºÍÓ¦Óò¿ÊðÔÚÒ»Æð¼´¿É£¬ÁíÍâ¾ÍÊDzéѯ½çÃæ£¬¿ÉÒÔ¸ù¾ÝÐèÒª¼¯³ÉÔÚÏàÓ¦µÄϵͳÖм´¿É£¬±ÈÈç¼à¿ØÏµÍ³µÈ£»
Áé»îÐÔÇ¿£º¿ÉÒÔ¸ù¾ÝÐèÒª£¬ÔÚÈÕÖ¾ÅäÖÃÎļþÖнøÐÐÁé»îµÄÅäÖ㬿ÉÒÔÅäÖüǼÄÄЩÏîÄ¿£¬Ê²Ã´¸ñʽµÈ£¬²éѯ½çÃæÒ²¿ÉÒÔÁé»îµØ¶¨ÖÆ£¬¸ù¾ÝÐèÒªÒÔÊÊÓ¦¾ßÌåµÄÒµÎñ³¡¾°£»
¿ª·¢Ñ§Ï°¼òµ¥£º±¾·½°¸ÖÐÐèҪѧϰµÄ¼¼Êõ²»¶à£¬Ö»ÐèÒªÊìϤIgniteºÍLuceneµÄ¿ª·¢¼´¿É£¬²éѯ½çÃæ¿ÉÒÔ¸ù¾ÝÐèÒª¶ø¶¨£¬Ã»ÓÐÑϸñÒªÇó¡£
5.2.ȱµã
ÐèÒªÒ»¶¨µÄ¿ª·¢Á¿£ºÕâ²»ÊÇÒ»Ì׿ªÏä¼´ÓõĽâ¾ö·½°¸£¬°üÀ¨²éѯ½çÃæµÈ£¬ÊÇÐèÒª¿ª·¢µÄ£¬µ«Êǹ¤×÷Á¿²»´ó£¬Èç¹û»¹ÓÐÆäËûµÄÐèÇ󣬱ÈÈçÈÕÖ¾·ÖÎöµÈ£¬Ö»ÄÜ×ÔÐпª·¢£»
ÒÀÀµIgniteµÄ¼¯Èº²¿Êð£ºÕâÌ×·½°¸²éѯµÄ·¶Î§ÊÇIgnite¹¹½¨µÄ¼¯Èº»òÕßÔÚÕâ¸ö¼¯Èº·¶Î§ÄÚ¶¨ÒåµÄ¼¯Èº×é¡£Òò´ËÒ»·½ÃæÓ¦ÓÃҪͨ¹ýIgnite¹¹½¨¼¯Èº£¬ÁíÍâÒ»·½ÃæÈç¹û¼¯ÈºÄÚÓ¦Óý϶࣬ΪÁ˱ÜÃâÏ໥¸ÉÈÅ£¬¶Ô¼¯Èº·Ö×éÒ²ÊDZØÒªµÄ£¬Õâ·½Ãæ¿ÉÒÔËã×öÒ»¸öÇ¿Ô¼Êø¡£
6.ÆäËûµÄÏà¹Ø·½°¸
½ö¾Í¿ªÔ´ÉçÇø¶øÑÔ£¬»¹´æÔÚElastic Stack¡¢FlumeµÈÈÕÖ¾´¦Àí¼¼Êõ£¬¹¦Äܸ÷ÓвàÖØ£¬µ«Èç¹û½ö½öÏë×ö·Ö²¼Ê½ÈÕÖ¾µÄ²éѯµÄ»°£¬ÕâЩ·½°¸ÂÔÖØ£¬Èç¹ûÕâЩ·½°¸²»Âú×ãÐèÇóÐèÒª¿ª·¢£¬Ôò¹¤×÷Á¿ÂÔ´ó£¬ÒÔElastic
StackΪÀý£¬Õû¸ö¼¼ÊõջʹÓõļ¼Êõ½Ï¶à£¬¶Ô¿ª·¢ÕßÒªÇó½Ï¸ß£¬ÕûÌ嶍֯³É±¾½Ï¸ß¡£ÁíÍâÕâЩ·½°¸¶¼ÐèÒª¶îÍ⣬ÉõÖÁ½Ï¶àµÄ·þÎñÆ÷ÈíÓ²¼þ×ÊÔ´£¬²¿Êð³É±¾½Ï¸ß¡£
7.ÊÊÓÃÁìÓò
ÕâÌ×·½°¸ÕûÌåÉÏÀ´ËµÊÊÓÃÓÚ£¬»òÕßËµÃæÏòµÄÊÇÒÔ¼¯Èº·½Ê½²¿ÊðµÄÆóÒµ¼¶½»¸¶ÐÍÈí¼þ£¬³§ÉÌ¿ÉÒÔ²»ÊÜÔ¼ÊøµÄÕÆ¿ØÕû¸ö·½°¸µÄ·½·½ÃæÃ棬¶Ô¿Í»§À´Ëµ£¬²¿Êð³É±¾Ò²½ÏµÍ¡£ÕâÌ×·½°¸¶ÔÓÚÈí¼þµÄ¹æÄ£Ã»Ê²Ã´ÏÞÖÆ£¬Õû¸ö¼¯ÈºÓкܶà¸öÓ¦ÓÃÒ²¿ÉÒÔ¡£ÕâÀàÓ¦ÓöÔÈÕÖ¾´¦ÀíµÄÐèÇ󣬹¦Äܱ߽綨Òå¿ÉÒÔ×öµ½±È½ÏÇåÎú£¬ÐèÇó²»»áÀ©µÄºÜ´ó£¬ÕâÑùµÄ»°£¬¶¨ÖÆELK½â¾ö·½°¸µÄ´ú¼Û¾ÍÏÔµÃÌ«´óÁË¡£
¶ø¶ÔÓÚ»¥ÁªÍø¹«Ë¾À´Ëµ£¬ÄÚ²¿Óкöà´í×Û¸´ÔÓµÄϵͳ£¬ÊýÁ¿¿ÉÄܼ¸Ê®Éϰ٣¬¸ü¶àµÄ¶¼ÓУ¬ÕâʱÔÚELKÕû¸ö¼¼ÊõÕ»µÄ»ù´¡ÉϽøÐж¨ÖÆ£¬¿ÉÄܸü»®Ë㣬ÒýÈëÕâÌ×·½°¸ÉõÖÁ¿ÉÄܶ¼²»¿ÉÐС£
8.×ܽá
±¾·½°¸Áí±Ùõè¾¶£¬Í¨¹ýеļ¼ÊõÕ»£¬½ÏÉٵĴúÂë½â¾öÁ˳¤ÆÚÀ§ÈÅ·Ö²¼Ê½ÈÕÖ¾²éѯÕâ¸öÐÐҵʹµã£¬ÁíÍ⣬±¾·½°¸Ò²¿ªÀ«ÁË˼·£¬¼´IgniteÕâÖÖǶÈëʽµÄ·Ö²¼Ê½¼ÆËã¼¼Êõ£¬MapReduce¼ÆË㷽ʽ£¬Óзdz£¶àµÄʹÓó¡¾°£¬²»½ö½ö¿ÉÒÔÓÃÓÚ³£¹æµÄ¼ÆË㣬»¹¿ÉÒÔÓÃÓÚ¸÷ÖÖ¼¯Èº»·¾³µÄÊý¾ÝÊÕ¼¯µÈ³¡¾°£¬ÏëÏó¿Õ¼äºÜ´ó¡£
±¾·½°¸ÖÐLucene×÷ΪȫÎļìË÷ÁìÓòµÄÐÐÒµ±ê×¼£¬µÃµ½Á˹㷺µÄÓ¦Ó㬴óÁ¿µÄ½â¾ö·½°¸¶¼»ùÓÚLucene½øÐж¨ÖÆ¿ª·¢£¬Elastic
Stackµ×²ãÒ²¹¹½¨ÓÚLuceneÖ®ÉÏ¡£
Èç¹û±¾·½°¸ÄܳÆÎª×î¼Ñʵ¼ù£¬ÄÇôIgnite¹¦²»¿Éû¡£ÕâÒ»ÀàµÄ¼¼Êõ»¹ÓÐÆäËû¼¼Êõ¿ÉÑ¡£¬±ÈÈçInfinispanµÈ£¬Ö»ÊÇÕâÒ»ÀàµÄ¿ªÔ´Ç¶ÈëʽÄÚ´æ²¢ÐмÆËã¼¼Êõ£¬»¹Ã»Óеõ½Òµ½çµÄ¹Ø×¢¶øÒÑ¡£
|