Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚIgnite+Lucene+Log4j2µÄ·Ö²¼Ê½Í³Ò»ÈÕÖ¾²éѯ×î¼Ñʵ¼ù
 
À´Ô´£ºInfoQ ·¢²¼ÓÚ£º 2017-5-5
  3000  次浏览      27
 

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µÈ£¬Ö»ÊÇÕâÒ»ÀàµÄ¿ªÔ´Ç¶ÈëʽÄÚ´æ²¢ÐмÆËã¼¼Êõ£¬»¹Ã»Óеõ½Òµ½çµÄ¹Ø×¢¶øÒÑ¡£

   
3000 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù