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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
µÎµÎ Elasticsearch ¶à¼¯Èº¼Ü¹¹Êµ¼ù
 
  2148  次浏览      29
 2018-12-20
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚinfoq£¬±¾Îļòµ¥µÄ½éÉÜÁ˵εε¥¼¯Èº¼Ü¹¹Æ¿¾±ÒÔ¼°µ¥¼¯ÈºÆ¿¾±µÄÌôÕ½¼°¶à¼¯Èº¼Ü¹¹Êµ¼ù¾­Ñ飬ϣÍû¶ÔÄúµÄѧϰÓаïÖú¡£

Elasticsearch ÊÇ»ùÓÚ Lucene ʵÏֵķֲ¼Ê½ËÑË÷ÒýÇæ£¬ÌṩÁ˺£Á¿Êý¾Ýʵʱ¼ìË÷ºÍ·ÖÎöÄÜÁ¦¡£Elastic ¹«Ë¾¿ªÔ´µÄһϵÁвúÆ·×é³ÉµÄ Elastic Stack£¬¿ÉÒÔΪÈÕÖ¾·þÎñ¡¢ËÑË÷ÒýÇæ¡¢ÏµÍ³¼à¿ØµÈÌṩ¼òµ¥¡¢Ò×ÓõĽâ¾ö·½°¸¡£

µÎµÎ Elasticsearch ¼ò½é

µÎµÎ 2016 Äê³õ¿ªÊ¼¹¹½¨ Elasticsearch ƽ̨£¬Èç½ñÒѾ­·¢Õ¹µ½³¬¹ý 3500+ Elasticsearch ʵÀý£¬³¬¹ý 5PB µÄÊý¾Ý´æ´¢£¬·åֵдÈë tps ³¬¹ýÁË 2000w/s µÄ³¬´ó¹æÄ£¡£

Elasticsearch ÔڵεÎÓÐ×ŷdz£·á¸»µÄʹÓó¡¾°£¬ÀýÈçÏßÉϺËÐĵĴò³µµØÍ¼ËÑË÷£¬¿Í·þ¡¢ÔËÓªµÄ¶àά¶È²éѯ£¬µÎµÎÈÕÖ¾·þÎñµÈ½üǧ¸öƽ̨Óû§¡£

³¬´óµÄ¹æÄ£ºÍ·á¸»µÄ³¡¾°¸øµÎµÎ Elasticsearch ƽ̨´øÀ´Á˼«´óµÄÌôÕ½£¬ÎÒÃÇÔÚÕâÆÚ¼ä»ýÀÛÁ˷ḻ¾­Ñ飬ҲȡµÃÁËһЩ³É¹û¡£±¾Îĸø´ó¼Ò·ÖÏíϵεÎÔÚ Elasticsearch ¶à¼¯Èº¼Ü¹¹µÄʵ¼ù¡£

µ¥¼¯Èº¼Ü¹¹Æ¿¾±

½éÉܵ¥¼¯Èº¼Ü¹¹Æ¿¾±Ç°£¬ÏÈÀ´¿´ÏµεÎ

Elasticsearch µ¥¼¯ÈºµÄ¼Ü¹¹¡£

µÎµÎÔÚµ¥¼¯Èº¼Ü¹¹µÄʱºò£¬Ð´ÈëºÍ²éѯ¾ÍÒѾ­Í¨¹ý Sink ·þÎñºÍ Gateway ·þÎñ¹Ü¿ØÆðÀ´¡£

Sink ·þÎñ

µÎµÎ¼¸ºõËùÓÐдÈë Elasticsearch µÄÊý¾Ý¶¼ÊǾ­ÓÉ kafka Ïû·ÑÈëµ½ Elasticsearch¡£kafka µÄÊý¾Ý°üÀ¨ÒµÎñ log Êý¾Ý¡¢mysql binlog Êý¾ÝºÍÒµÎñ×ÔÖ÷Éϱ¨µÄÊý¾Ý£¬Sink ·þÎñ½«ÕâЩÊý¾ÝʵʱÏû·ÑÈëµ½ Elasticsearch¡£

×î³õÉè¼Æ Sink ·þÎñÊÇÏë¶ÔдÈë Elasticsearch ¼¯Èº½øÐйܿأ¬±£»¤ Elasticsearch ¼¯Èº£¬·ÀÖ¹º£Á¿µÄÊý¾ÝдÈëÍÏ¿å Elasticsearch£¬Ö®ºóÎÒÃÇÒ²Ò»Ö±ÑØÓÃÁË Sink ·þÎñ£¬²¢½«¸Ã·þÎñ´Ó Elasticsearch ƽ̨·ÖÀë³öÈ¥£¬³ÉÁ¢µÎµÎ Sink Êý¾ÝͶµÝƽ̨£¬¿ÉÒÔ´Ó kafka »òÕß MQ ʵʱͬ²½Êý¾Ýµ½ Elasticsearch¡¢HDFS¡¢Ceph µÈ¶à¸ö´æ´¢·þÎñ¡£

ÓÐÁ˶༯Ⱥ¼Ü¹¹ºó£¬Elasticsearch ƽ̨¿ÉÒÔÏû·ÑÒ»·Ý MQ Êý¾ÝдÈë¶à¸ö Elasticsearch ¼¯Èº£¬×öµ½¼¯Èº¼¶±ðµÄÈÝÔÖ£¬»¹ÄÜͨ¹ý MQ »ØËÝÊý¾Ý½øÐйÊÕϻָ´¡£

Gateway ·þÎñ

ËùÓÐÒµÎñµÄ²éѯ¶¼ÊǾ­¹ý Gateway ·þÎñ£¬Gateway ·þÎñʵÏÖÁË Elasticsearch µÄ http restful ºÍ tcp ЭÒ飬ҵÎñ·½¿ÉÒÔͨ¹ý Elasticsearch ¸÷ÓïÑÔ°æ±¾µÄ sdk Ö±½Ó·ÃÎÊ Gateway ·þÎñ£¬Gateway ·þÎñ»¹ÊµÏÖÁË SQL ½Ó¿Ú£¬ÒµÎñ·½¿ÉÒÔÖ±½ÓʹÓà SQL ·ÃÎÊ Elasticsearch ƽ̨¡£

Gateway ·þÎñ×î³õÌṩÁËÓ¦ÓÃȨÏ޵Ĺܿأ¬·ÃÎʼǼ£¬ÏÞÁ÷¡¢½µ¼¶µÈ»ù±¾ÄÜÁ¦£¬ºóÃæËæ×ÅÆ½Ì¨Ñݽø£¬Gateway ·þÎñ»¹ÌṩÁËË÷Òý´æ´¢·ÖÀë¡¢DSL ¼¶±ðµÄÏÞÁ÷¡¢¶à¼¯ÈºÔÖ±¸µÈÄÜÁ¦¡£

Admin ·þÎñ

Õû¸ö Elasticsearch ƽ̨ÓÉ Admin ·þÎñͳһ¹Ü¿ØÆðÀ´¡£Admin ·þÎñÌṩÁËË÷ÒýµÄÉúÃüÖÜÆÚ¹ÜÀí£¬Ë÷ÒýÈÝÁ¿×Ô¶¯¹æ»®£¬Ë÷Òý½¡¿µ·Ö£¬¼¯Èº¼à¿ØµÈ·á¸»µÄƽ̨ÄÜÁ¦£¬ÒÔ¼°Îª Sink¡¢Gateway ·þÎñÌṩË÷Òý¡¢È¨ÏÞµÈÔªÊý¾ÝÐÅÏ¢¡£

Elasticsearch µ¥¼¯ÈºÆ¿¾±

Ëæ×ŵεΠElasticsearch ƽ̨¹æÄ£µÄ¿ìËÙ·¢Õ¹£¬Elasticsearch ¼¯ÈºÔ½À´Ô½´ó£¬×î´óµÄʱºò£¬ÊÇÓɼ¸°Ų̀ÎïÀí»ú×é³É¼¯Èº£¬µ±Ê±¼¯Èº¹² 3000+ µÄË÷Òý£¬³¬¹ýÁË 50000 ¸ö shard£¬¼¯Èº×ÜÈÝÁ¿´ïµ½ÁË PB ¼¶±ð¡£³¬´óµÄ Elasticsearch ¼¯ÈºÃæÁÙÁ˺ܴóµÄÎȶ¨ÐÔ·çÏÕ£¬ÕâЩ·çÏÕÖ÷ÒªÀ´×ÔÓÚÒÔÏÂÈý¸ö·½Ã棺

1.Elasticsearch ¼Ü¹¹Æ¿¾±

2.Ë÷Òý×ÊÔ´¹²Ïí·çÏÕ

3.ÒµÎñ³¡¾°²îÒì´ó

Elasticsearch ¼Ü¹¹Æ¿¾±

Elasticsearch ¼Ü¹¹ÔÚ¼¯Èº±ä´óµ½Ò»¶¨µÄ¹æÄ£»áÓöµ½Æ¿¾±£¬Æ¿¾±Ö÷Òª¸ú Elasticsearch ÈÎÎñ´¦ÀíÄ£ÐÍÓйء£

Elasticsearch ¿´ÆðÀ´ÊÇ p2p ¼Ü¹¹£¬µ«Êµ¼ÊÉÏ£¬ÈÔÈ»ÊÇÖÐÐÄ»¯µÄ·Ö²¼Ê½¼Ü¹¹¡£Õû¸ö¼¯ÈºÖ»ÓÐÒ»¸ö active master¡£master ¸ºÔðÕû¸ö¼¯ÈºµÄÔªÊý¾Ý¹ÜÀí¡£¼¯ÈºµÄËùÓÐÔªÊý¾Ý±£´æÔÚ ClusterState ¶ÔÏóÖУ¬Ö÷Òª°üÀ¨È«¾ÖµÄÅäÖÃÐÅÏ¢¡¢Ë÷ÒýÐÅÏ¢ºÍ½ÚµãÐÅÏ¢¡£Ö»ÒªÔªÊý¾Ý·¢ÉúÐ޸쬶¼µÃÓÉ master Íê³É¡£

Elasticsearch master µÄÈÎÎñ´¦ÀíÊǵ¥Ïß³ÌÍê³ÉµÄ£¬Ã¿´Î´¦ÀíÈÎÎñ£¬Éæ¼°µ½ ClusterState µÄ¸Ä¶¯£¬¶¼»á½«×îÐ嵀 ClusterState ¶ÔÏó publish ¸ø¼¯ÈºµÄÈ«²¿½Úµã£¬²¢×èÈûµÈ´ýÈ«²¿½Úµã½ÓÊܵ½±ä¸üÏûÏ¢£¬´¦ÀíÍê±ä¸üÈÎÎñºó£¬²ÅÍê³É±¾´ÎÈÎÎñ¡£

ÕâÑùµÄ¼Ü¹¹Ä£Ð͵¼ÖÂÔÚ¼¯Èº¹æÄ£±ä´óµÄʱºò³öÏÖºÜÑÏÖØµÄÎȶ¨ÐÔ·çÏÕ¡£

Èç¹ûÓнڵã¼ÙËÀ£¬±ÈÈç jvm ÄÚ´æ±»´òÂú£¬½ø³Ì»¹´æ»î×Å£¬ÏìÓ¦ master ÈÎÎñʱ¼ä»áºÜ³¤£¬Ó°Ïìµ¥¸öÈÎÎñµÄÍê³Éʱ¼ä¡£

ÓдóÁ¿»Ö¸´ÈÎÎñµÄʱºò£¬ÓÉÓÚ master Êǵ¥Ï̴߳¦ÀíµÄ£¬ËùÓÐÈÎÎñÐèÒªÅŶӴ¦Àí£¬²úÉú´óÁ¿µÄ pending_tasks¡£»Ö¸´Ê±¼ä±äµÃºÜ³¤¡£

Elasticsearch µÄÈÎÎñ·ÖÁËÓÅÏȼ¶£¬ÀýÈç put-mapping ÈÎÎñÓÅÏȼ¶µÍÓÚ´´½¨¡¢»Ö¸´Ë÷Òý£¬Èç¹ûһЩҵÎñÉϵÍÓÅÏȼ¶Ë÷ÒýÔÚ»Ö¸´£¬Õý³£Ë÷ÒýÓÐÐÂ×Ö¶ÎдÈëʱ»á±»×èÈû¡£

master ÈÎÎñ´¦ÀíÄ£ÐÍ£¬ÔÚÈÎÎñÖ´ÐÐÍê³Éºó£¬»á»Øµ÷´óÁ¿ listener ´¦ÀíÔªÊý¾Ý±ä¸ü¡£ÆäÖÐÓÐЩ»Øµ÷Âß¼­ÔÚË÷Òý¡¢shard ÅòÕͺ󣬻á³öÏÖ´¦Àí»ºÂýµÄÎÊÌ⣬µ± shard ÅòÕ͵½ 5-6w ʱ£¬Ò»Ð©ÈÎÎñ´¦ÀíÐèÒª 8-9s µÄʱ¼ä£¬ÑÏÖØÓ°ÏìÁ˼¯ÈºµÄ»Ö¸´ÄÜÁ¦¡£

Õë¶ÔÕâЩÎÊÌ⣬Elasticsearch Ò²ÔÚ²»¶ÏÓÅ»¯£¬Õë¶ÔÏàͬÀàÐ͵ÄÈÎÎñ£¬±ÈÈç put-mapping ÈÎÎñ£¬master »áÒ»´ÎÐÔ´¦ÀíËùÓжѻýÔÚ¶ÓÁÐÀïµÄÏàͬÈÎÎñ¡£ClusterState ¶ÔÏóÖ»´«µÝ diff ÄÚÈÝ£¬ÓÅ»¯»Øµ÷ listener Ä£¿éµÄ´¦ÀíºÄʱ»·½ÚµÈµÈ¡£

µ«ÊÇÓÉÓÚÕû¸ö¼¯ÈºµÄÈÎÎñ¶¼¼¯ÖÐÔÚÒ»¸ö master µÄÒ»¸öÏß³ÌÖд¦Àí£¬ÔÚÏß³ÌÖÐÐèҪͬ²½ÔªÊý¾Ý±ä¸ü¸ø¼¯ÈºµÄÿ¸ö½Úµã£¬²¢×èÈûµÈ´ýÈ«²¿½Úµãͬ²½Íê³É¡£Õâ¸öÄ£ÐÍÔÚ¼¯Èº¹æÄ£²»¶ÏÅòÕÍʱ£¬Îȶ¨ÐԻ᲻¶ÏϽµ¡£

Ë÷Òý×ÊÔ´¹²Ïí·çÏÕ

Elasticsearch Ë÷ÒýÊÇÓɶà¸ö shard ×é³É£¬master »á¶¯Ì¬¸øÕâЩ shard ·ÖÅä½Úµã×ÊÔ´¡£ ²»Í¬µÄË÷Òý»á´æÔÚ×ÊÔ´»ì²¿µÄÇé¿ö¡£

Elasticsearch ͨ¹ý Shard Allocation Awareness µÄÉè¼Æ£¬¿ÉÒÔ½«¼¯ÈºµÄ½Úµã°´¼¯ºÏ»®·Ö³É²»Í¬µÄ rack¡£ÔÚ·ÖÅäË÷Òýʱ¿ÉÒÔÖ¸¶¨ rack ÁÐ±í£¬ÕâÑùË÷Òý¾ÍÖ»»á·ÖÅäÔÚÖ¸¶¨ rack ¶ÔÓ¦µÄ½ÚµãÁбíÖУ¬´Ó¶ø×öµ½ÎïÀí×ÊÔ´µÄ¸ôÀë¡£

µ«ÊÇʵ¼ÊʹÓÃÖУ¬ºÜ¶àÈÝÁ¿Ð¡µÄË÷ÒýÓÉÓÚÕ¼ÓÃ×ÊÔ´ÓÐÏÞ£¬»á»ì²¿ÔÚһЩ½ÚµãÖС£ÕâÖÖÇé¿öÏ£¬»áÒòΪ¸ö±ðË÷ÒýµÄ²éѯ¡¢Ð´ÈëÁ¿ì­Éý£¬¶øÓ°Ïìµ½ÆäËûË÷ÒýµÄÎȶ¨ÐÔ¡£Èç¹û³öÏÖÁ˽ڵã¹ÊÕÏ£¬¾Í»áÓ°Ïìµ½Õû¸ö¼¯ÈºµÄÎȶ¨ÐÔ¡£

Õû¸ö¼¯Èº master¡¢clientnode ×ÊÔ´Êǹ²ÏíµÄ£¬master ·çÏÕÇ°ÃæÒѾ­µ¥¶ÀÌá¼°£¬clientnode ¹²Ïí´øÀ´µÄ gc¡¢¶¶¶¯¡¢Òì³£ÎÊÌâ¶¼»áÓ°Ïìµ½¼¯ÈºÄÚµÄÈ«²¿Ë÷Òý¡£

ÒµÎñ³¡¾°²îÒì´ó

Elasticsearch ÊÊÓõÄÒµÎñ³¡¾°²îÒìÌØ±ð´ó¡£

Õë¶ÔÏßÉϺËÐĵÄÈë¿ÚËÑË÷£¬Ò»°ã°´³ÇÊл®·ÖË÷Òýºó£¬Ë÷ÒýÈÝÁ¿²»´ó£¬Êý¾ÝûÓÐʵʱдÈë»òÕßʵʱдÈë tps ºÜС£¬±ÈÈçµØÍ¼ poi Êý¾Ý²ÉÓÃÀëÏ߸üеķ½Ê½£¬ÍâÂôÉ̼ҡ¢²ËƷдÈëÁ¿Ò²ºÜС¡£µ«ÊDzéѯµÄ qps ºÜ¸ß£¬²éѯ¶Ô rt µÄƽ¾ùʱ¼äºÍ¶¶¶¯Çé¿öÒªÇóºÜ¸ß¡£

Õë¶ÔÈÕÖ¾¼ìË÷µÄµÄ³¡¾°£¬ÊµÊ±Ð´ÈëÁ¿Ìرð´ó£¬ÓÐЩË÷ÒýÉõÖÁ³¬¹ýÁË 100w/s µÄ tps£¬¸Ã³¡¾°¶ÔÍÌÍÂÁ¿ÒªÇóºÜ¸ß£¬µ«¶Ô²éѯ qps ºÍ²éѯ rt ÒªÇ󲻸ߡ£

Õë¶Ô binlog Êý¾ÝµÄ¼ìË÷£¬Ð´ÈëÁ¿Ïà±ÈÈÕÖ¾»áСºÜ¶à£¬µ«ÊǶԲéѯµÄ¸´ÔÓ¶È¡¢qps ºÍ rt ÓÐÒ»¶¨µÄÒªÇó¡£

Õë¶Ô¼à¿Ø¡¢·ÖÎöÀàµÄ³¡¾°£¬¾ÛºÏ²éѯÐèÇó»á±È½Ï¶à£¬¶Ô Elasticsearch ÄÚ´æÑ¹Á¦½Ï´ó£¬ÈÝÒ×ÒýÆð½ÚµãµÄ¶¶¶¯ºÍ gc¡£

ÕâЩ³¡¾°¸÷Ò죬Îȶ¨ÐÔ¡¢ÐÔÄÜÒªÇó¸÷²»ÏàͬµÄ³¡¾°£¬Ò»¸ö Elasticsearch ¼¯Èº¼´Ê¹Ê¹Óø÷ÖÖÓÅ»¯ÊֶΣ¬ºÜÄÑÈ«²¿Âú×ãÐèÇó£¬×îºÃµÄ·½Ê½»¹Êǰ´ÒµÎñ³¡¾°»®·Ö Elasticsearch ¼¯Èº¡£

¶à¼¯ÈºÌôÕ½

ÕýÊǵ¥¼¯ÈºÃæÁÙÁ˷dz£´óµÄÎȶ¨ÐÔ·çÏÕ£¬ÎÒÃÇ¿ªÊ¼¹æ»®¶à¼¯ÈºµÄ¼Ü¹¹¡£ÎÒÃÇÔÚÉè¼Æ¶à¼¯Èº·½°¸µÄʱºò£¬ÆÚÍû¶ÔÒµÎñ·½ÊÇÁã¸ÐÖªµÄ¡£

дÈ뻹ÊǾ­¹ý kafka£¬Sink ·þÎñ¿ÉÒÔ½«²»Í¬ topic µÄÊý¾ÝÈëµ½²»Í¬µÄ Elasticsearch ¼¯Èº¡£

²éѯ¼ÌÐøÍ¨¹ý Gateway ·þÎñ£¬¶øÇÒÒµÎñ·½ÈÔÈ»Ïñ֮ǰһÑù´«µÝË÷ÒýÃû³Æ£¬¶øÎÞÐè¸ÐÖªµ½Æ½Ì¨ÄÚ²¿µÄË÷Òý·Ö²¼¡£ËùÓеÄË÷ÒýÔÚ²»Í¬¼¯ÈºµÄ·Ö²¼Ï¸½Ú£¬¾ùÓÉ Gateway ·þÎñÆÁ±Î¡£

Õû¸ö¸ÄÔì×î´óµÄÌôÕ½ÔÚÓÚ²éѯ·½Ê½µÄ¼æÈÝ¡£Elasticsearch ²éѯË÷ÒýµÄ·½Ê½·Ç³£Áé»î£¬¿ÉÒÔÖ§³Ö * ºÅ×÷ΪͨÅä·ûÆ¥Åä¡£ÕâÑùÒ»¸öË÷Òý query ¿ÉÄܲéѯµÄÊǶà¸öË÷Òý£¬±ÈÈçÓÐÈçÏ 3 ¸öË÷Òý£º

1.index_a

2.index_b

3.index_c

ʹÓà index* ²éѯµÄʱºò£¬¿ÉÒÔͬʱ²éѯµ½ index_a¡¢index_b¡¢index_c Èý¸öË÷Òý¡£ Elasticsearch ÕâÖÖʵÏÖ·½Ê½·Ç³£¼òµ¥£¬ÓÉÓÚÒ»´Î query ×îÖÕ²éѯµÄÊǶà¸ö shard µÄÊý¾Ý£¬ËùÒÔÎÞÂÛ¶ÔÓÚ¾ßÌåµÄË÷Òý£¬»¹ÊÇÄ£ºýµÄË÷Òý£¬¶¼ÊÇÏȸù¾ÝË÷ÒýÃû³ÆµÃµ½ shard ÁÐ±í£¬ÔÙ½«¶à¸ö shard µÄ query ½á¹û merge µ½Ò»Æð·µ»Ø¡£

ÕâÑùµÄʹÓ÷½Ê½£¬¶ÔÓڶ༯Ⱥ·½°¸¾Í»áÓöµ½ÎÊÌ⣬±ÈÈç index_a ÔÚ A ¼¯Èº£¬index_b ÔÚ B ¼¯Èº¡¢index_c ÔÚ C ¼¯Èº£¬¶ÔÓÚ index* µÄ query£¬¾ÍÎÞ·¨ÔÚÒ»¸ö¼¯ÈºÉÏÍê³É¡£

tribenode ½éÉÜ

¾­¹ýµ÷ÑУ¬ÎÒÃÇ·¢ÏÖ Elasticsearch tribenode ÌØÐÔ¿ÉÒԺܺõÄÂú×ã¶à¼¯Èº²éѯµÄÌØÐÔ¡£

tribenode µÄʵÏַdz£ÇÉÃî¡£

org.elasticsearch.tribe °üÏÂÖ»ÓÐÈý¸öÎļþ£¬ºËÐÄÀàÊÇ TribeService¡£tribenode µÄºËÐÄÔ­Àí¾ÍÊÇ merge ÿ¸ö¼¯ÈºµÄ ClusterState ¶ÔÏó³ÉÒ»¸ö¹«¹²µÄ ClusterState ¶ÔÏó£¬ClusterState °üº¬ÁËË÷Òý¡¢shard ºÍ½ÚµãÊý¾Ý·Ö²¼±í¡£¶ø Elasticsearch µÄ¹¤×÷Âß¼­¶¼ÊÇ»ùÓÚ ClusterState ÔªÊý¾ÝÇý¶¯µÄ£¬ËùÒÔ¶ÔÍâ¿´ÆðÀ´¾ÍÊÇÒ»¸ö°üº¬È«²¿Ë÷ÒýµÄµÄ clientnode¡£

tribenode ͨ¹ýÅäÖöà¸ö Elasticsearch ¼¯ÈºµØÖ·£¬È»ºóÒÔ clientnode ½ÇÉ«·Ö±ðÁ¬½Óÿ¸ö¼¯Èº£¬Ã¿¸ö¼¯Èº¿´ÆðÀ´»á¶àÁËÒ»¸ö clientnode¡£

tribenode ͨ¹ý¸Ã clientnode ½ÇÉ«»ñÈ¡µ½¼¯ÈºµÄ ClusterState ÐÅÏ¢£¬²¢°ó¶¨ listener ¼àÌý ClusterState ±ä»¯¡£tribenode ½«»ñÈ¡µÄËùÓм¯ÈºµÄ ClusterState ÐÅÏ¢ merge µ½Ò»Æð£¬ÐγÉÒ»¸ö¶ÔÍⲿ·ÃÎÊʹÓÃµÄ ClusterState ¶ÔÏ󣬶ÔÍâÌṩ·þÎñ¡£tribenode ³ýÁË×¢²á listener ºÍ merge ClusterState£¬ÆäËûµÄËùÓÐÂß¼­¶¼ÊǸ´ÓÃÁË clientnode µÄ´úÂë¡£

¿ÉÒÔ¿´µ½ tribenode µÄÓŵ㣺

1.Äܹ»Âú×ã¶à¼¯Èº·ÃÎʵÄÐèÇ󣬶ÔÍâʹÓÃÊÇ͸Ã÷µÄ¡£

2.ʵÏֵļòµ¥¡¢ÓÅÑÅ£¬¿É¿¿ÐÔÓб£Ö¤¡£

ͬʱ tribenode ÓÐЩ²»×ãµÄµØ·½£º

tribenode ±ØÐëÒÔ clientnode ¼ÓÈ뵽ÿ¸ö Elasticsearch ¼¯Èº£¬master µÄ±ä¸üÈÎÎñ±ØÐëµÈ´ý tribenode µÄ»ØÓ¦²ÅÄܼÌÐø£¬¿ÉÄÜÓ°Ïìµ½Ô­¼¯ÈºµÄÎȶ¨ÐÔ¡£

tribenode ²»»á³Ö¾Ã»¯ ClusterState ¶ÔÏó£¬ÖØÆôʱÐèÒª´Óÿ¸ö Elasticsearch ¼¯Èº»ñȡԪÊý¾Ý¡£¶øÔÚ»ñȡԪÊý¾ÝÆÚ¼ä£¬tribenode ¾ÍÒѾ­Äܹ»Ìṩ·ÃÎÊ£¬»áµ¼Ö²éѯµ½»¹ÔÚ³õʼ»¯Öеļ¯ÈºË÷Òý·ÃÎÊʧ°Ü¡£tribenode Á¬½ÓµÄ¼¯Èº¶àÁË£¬³õʼ»¯»á±äµÃºÜÂý¡£Õë¶Ô¸ÃȱÏÝ£¬ÎÒÃÇÆ½Ì¨ÔÚÖØÆôij¸ö tribenode ¼¯ÈºÊ±£¬½« Gateway ·ÃÎʸü¯ÈºµÄÈ«²¿Á÷Á¿Çе½±¸·Ý tribenode ¼¯Èº½â¾ö¡£

Èç¹û¶à¸ö¼¯ÈºÓÐÏàͬµÄË÷ÒýÃû³Æ£¬tribenode Ö»ÄÜÉèÖÃÒ»ÖÖ perfer ¹æÔò£ºËæ»ú¡¢¶ªÆú¡¢prefer Ö¸¶¨¼¯Èº¡£Õâ¿ÉÄÜ´øÀ´²éµ½²»·ûºÏÔ¤ÆÚµÄÒì³£¡£µÎµÎ Elasticsearch ƽ̨ͨ¹ýͳһ¹Ü¿ØË÷Òý£¬±ÜÃâÁËͬһ¸öË÷ÒýÃû³Æ³öÏÖÔÚ tribenode Á¬½ÓµÄ¶à¸ö¼¯ÈºÖС£

ÕýÊÇ tribenode ÓÐÁËÕâЩ覴ã¬Elasticsearch Ôڸ߰汾ÒýÈëÁË Cross Cluster Search µÄÉè¼Æ£¬Cross Cluster ²»»áÒÔ½ÚµãµÄÐÎʽÁ¬½Óµ½ÆäËû¼¯Èº£¬Ö»Êǽ«ÇëÇó´úÀí¡£Ä¿Ç°ÎÒÃÇ»¹ÔÚÆÀ¹À Cross Cluster µÄ·½°¸£¬ÕâÀï²»Õ¹¿ª½éÉÜ¡£

¶à¼¯Èº¼Ü¹¹ÍØÆË

×îÖÕ¸ÄÔìºó£¬ÎÒÃǵļ¯Èº¼Ü¹¹ÍØÆËÈçÏ£º

°´ÕÕ²»Í¬µÄÓ¦Óó¡¾°£¬Æ½Ì¨½« Elasticsearch ¼¯Èº»®·Ö³ÉËÄÖÖÀàÐÍ£¬Log ¼¯Èº¡¢Binlog ¼¯Èº¡¢ÎĵµÊý¾Ý¼¯Èº¡¢¶ÀÁ¢¼¯Èº¡£¹«¹²¼¯ÈºÒ»°ã×î¶à 100 ̨ datanode Ϊ»ù×¼×é³ÉÒ»¸ö¼¯Èº¡£ÎÒÃÇÀûÓõεÎÔÆ ʵÏÖÁ˼¯ÈºµÄ×Ô¶¯»¯²¿ÊðºÍµ¯ÐÔÀ©ËõÈÝ£¬¿ÉÒԺܷ½±ãµÄˮƽÀ©Õ¹¼¯Èº¡£

Elasticsearch ¼¯ÈºÇ°ÃæÊǶà×é tribenode ¼¯Èº£¬Ö÷ÒªÊÇΪÁ˽â¾ö tribenode µÄÎȶ¨ÐÔÎÊÌâ¡£

Gateway »áͬʱÁ¬½Ó tribenode ¼¯ÈººÍ Elasticsearch ¼¯Èº£¬¸ù¾ÝÓ¦Ó÷ÃÎʵÄË÷ÒýÁÐ±í£¬ÅäÖÃÓ¦Ó÷ÃÎʵļ¯ÈºÃû³Æ£¬Gateway ¸ù¾Ý¼¯ÈºÃû³Æ£¬½«ÇëÇó´úÀíµ½Ö¸¶¨¼¯Èº·ÃÎÊ£¬Èç¹û·ÃÎʵÄÊÇ tribenode ¼¯Èº£¬Ôò¸ÃÓ¦ÓÿÉÒÔ·ÃÎʵ½¶à¸ö¼¯ÈºµÄË÷Òý¡£

Admin ·þÎñÔò¹Ü¿ØÁËËùÓÐµÄ Elasticsearch ¼¯Èº£¬ÒÔ¼°Ë÷ÒýºÍ¼¯ÈºµÄ¶ÔÓ¦¹ØÏµ¡£Ò»ÏµÁй¦Äܶ¼Õë¶Ô¶à¼¯Èº×öÁ˸ÄÔì¡£

Sink ·þÎñÒѾ­´Ó Elasticsearch ƽ̨·ÖÀë³öÈ¥£¬³ÉÁ¢ DSink Êý¾ÝͶµÝƽ̨£¬DSink Manager ¸ºÔð¹ÜÀí DSink ½Úµã£¬DSink Manager ´Ó Elasticsearch Admin ·þÎñ»ñÈ¡Ë÷ÒýµÄÔªÊý¾ÝÐÅÏ¢£¬Ï·¢¸ø¶ÔÓ¦µÄ DSink ½Úµã¡£

¶à¼¯Èº¼Ü¹¹Êµ¼ù×ܽá

¶à¼¯Èº¼Ü¹¹ÊÕÒæ

Elasticsearch ¶à¼¯Èº¼Ü¹¹¸ÄÔì¸ø Elasticsearch ƽ̨´øÀ´ÁËÈçÏÂÊÕÒæ£º

Elasticsearch ƽ̨µÄ¸ôÀëÐÔ¿ÉÒÔ´ÓÎïÀí½Úµã¼¶±ðÉÏÉýµ½ Elasticsearch ¼¯Èº¼¶±ð¡£¶ÔÓÚºËÐĵÄÏßÉÏÓ¦Ó㬿ÉÒÔʹÓöÀÁ¢µÄ Elasticsearch ¼¯ÈºÖ§³Ö¡£

²»Í¬ÀàÐ͵ÄÊý¾Ý°´¼¯Èº»®·Ö£¬±ÜÃâÏ໥ӰÏ죬¼õСÁ˹ÊÕϵÄÓ°ÏìÃæ£¬¶Ôƽ̨Îȶ¨ÐÔ´øÀ´¼«´óµÄÌáÉý¡£

Elasticsearch ƽ̨µÄÀ©Õ¹ÄÜÁ¦½øÒ»²½ÌáÉý£¬Í¨¹ýÐÂÔö¼¯Èº¿ÉÒԺܺõÄ×öµ½Ë®Æ½À©Õ¹¡£

¶à¼¯Èº¼Ü¹¹×îÖÕ×öµ½Á˶ÔÒµÎñ·½ÎÞ¸ÐÖª£¬ÒµÎñ¿´ÆðÀ´£¬Elasticsearch ƽ̨¾ÍÏñÒ»¸öÎÞÏÞ´óµÄ Elasticsearch ¼¯Èº£¬¶øÎÞÐè¸ÐÖªË÷ÒýÕæÊµµÄ¼¯Èº·Ö²¼¡£

¶à¼¯Èº¼Ü¹¹Êµ¼ù¾­Ñé

µÎµÎ Elasticsearch ƽ̨¶à¼¯ÈºµÄ¼Ü¹¹ÒѾ­ÑݽøÁËÒ»Äê°ëʱ¼ä£¬ÕâÆÚ¼äÒ²Óöµ½Ò»Ð©¶à¼¯Èº¼Ü¹¹´øÀ´µÄÌôÕ½¡£

tribenode Îȶ¨ÐÔÌôÕ½£º

Ëæ×ż¯ÈºÊýÁ¿Ô½À´Ô½¶à£¬Ç°ÃæÌáµ½µÄ tribenode ²»×ãÔ½À´Ô½Ã÷ÏÔ£¬±ÈÈç³õʼ»¯µÄʱ¼äÔ½À´Ô½³¤µÈµÈ¡£ÎÒÃDzÉÈ¡µÄÓ¦¶Ô²ßÂÔÊDz¿Êð¶à×é tribenode ¼¯Èº£¬Óм¸×éÁ¬½ÓÈ«Á¿µÄ¼¯Èº£¬»¥ÎªÔÖ±¸£¬Óм¸×éÖ»Á¬½ÓºËÐĵÄһЩ¼¯Èº£¬ÓÃ×÷¸üÎªÖØÒªµÄ¿ç¼¯Èº·ÃÎʳ¡¾°¡£

tribenode µÄ ClusterState ÔªÊý¾Ý°üº¬ÁËÌ«¶àµÄË÷ÒýºÍ shard£¬Elasticsearch µÄ search Âß¼­ÔÚÓÐЩ case ´¦ÀíÏÂÈÝÒ׳öÏÖºÄʱ¹ý³¤µÄÇé¿ö¡£Elasticsearch ÔÚ client ½ÓÊÕµ½ search ÇëÇóʱ£¬ÊÇÔÚ netty µÄ io Ïß³ÌÖÐÍê³ÉÇëÇóת·¢¸øÃ¿¸ö shard µÄ£¬µÍ°æ±¾µÄ Elasticsearch »¹Ã»ÓÐÏÞÖÆÒ»´Î query µÄ shard ÊýÁ¿£¬ÔÚһЩ¸´ÔÓµÄÄ£ºýË÷ÒýÆ¥Åä shard µÄÂß¼­ÖУ¬ÒÔ¼°¸øÃ¿¸ö shard ·¢ËÍ query ÇëÇóʱ£¬»á³öÏֽϸߵĺÄʱ£¬¿ÉÄÜÓг¬¹ý 1-2s µÄ case£¬Õâ»áÓ°Ïìµ½¸Ã netty worker ÉÏµÄÆäËûµÄÇëÇó£¬Ôì³É²¿·ÖÏìӦ쭸ߵÄÇé¿ö¡£ÎÒÃÇÓÅ»¯ÁË tribenode search Á÷³ÌÖÐһЩË÷Òý¡¢shard ÅòÕÍÖ®ºóµÄºÄʱÂß¼­£¬½â¾öÁ˸ÃÎÊÌâ¡£

¶à¼¯ÈºÅäÖᢰ汾ͳһµÄÌôÕ½£º

ÔÚÖ»ÓÐÒ»¸ö¼¯ÈºµÄʱºò£¬Æ½Ì¨Ö»ÓÃά»¤Ò»·Ý¼¯ÈºµÄÅäÖúͰ汾¡£µ±¼¯ÈºÊýÁ¿Ôö¶àºó£¬²»Í¬¼¯Èº¼äµÄ _cluster settings ÐÅÏ¢»á³öÏÖ²¿·Ö²îÒ죬ÕâЩ²îÒ죬¿ÉÄܻᵼÖ¼¯Èº¼äµÄ¸ºÔز»¾ù£¬»Ö¸´Ëٶȹý¿ì»òÕß¹ýÂýµÈÎÊÌ⣬ÿ¸ö¼¯Èº»¹ÓÐÒ»·Ý»ù´¡µÄË÷ÒýÄ£°åÅäÖã¬ÕâÀïÃæÒ²³öÏÖÁ˲¿·Ö²îÒì¡£Õâ¸öÎÊÌâĿǰÎÒÃÇ»¹ÔÚ½â¾öÖУ¬ÎÒÃǼƻ®½« Admin ·þÎñ·ÖÀë³ÉË÷Òý¹ÜÀí·þÎñºÍ¼¯Èº¹ÜÀí·þÎñ£¬¼¯Èº¹ÜÀí»áרעÓÚ¼¯Èº°æ±¾¡¢ÅäÖᢲ¿Êð¡¢À©ÈÝ¡¢¼à¿ØµÈ·½Ãæ¶Ô Elasticsearch ¼¯Èº½øÐиüÈ«ÃæµÄ¹Ü¿Ø¡£

ÎÒÃÇ×öµÄһЩ Elasticsearch Ô´ÂëÓÅ»¯£¬»áÏȺóÔÚ²¿·Ö¼¯ÈºÉÏÏߣ¬ÕâÑùµ¼ÖÂÁ˼¯Èº¼äµÄ°æ±¾»ìÂÒµÄÎÊÌâ¡£ÎÒÃǵĽâ¾ö·½°¸ÊÇÔÚ Elasticsearch ºÍ Lucene ÄÚÔö¼ÓÄÚ²¿µÄ°æ±¾ºÅ£¬Í¨¹ý¹«Ë¾ÄÚ²¿µÄ·¢²¼ÏµÍ³£¬·¢²¼ Elasticsearch µÄ¸üУ¬ºóÐø¼¯Èº¹ÜÀí·þÎñ»á½«¼¯ÈºµÄ°æ±¾¹ÜÀíÆðÀ´¡£

¶à¼¯Èº¼äÈÝÁ¿¾ùºâµÄÌôÕ½£º

ÎÒÃÇÖ÷Òª´Ó¿ç¼¯ÈºË÷ÒýÇ¨ÒÆºÍÈÝÁ¿¹æ»®½â¾ö¼¯Èº¼äÈÝÁ¿¾ùºâµÄÌôÕ½£¬ÔÚµ¥ Elasticsearch ¼¯ÈºµÄʱºò£¬Êý¾ÝÇ¨ÒÆ¿ÉÒÔÒÀÀµ Elasticsearch µÄ rebalance ÄÜÁ¦Íê³É¡£ÔÚʹÓö༯Ⱥ¼Ü¹¹ºó£¬Æ½Ì¨ÄÚ²¿µÄ Elasticsearch ¼¯Èº»á³öÏÖ×ÊÔ´·ÖÅä²»¾ùµÄÎÊÌ⣬ÀýÈçÓÐЩË÷ÒýÈÝÁ¿Ôö³¤µÄºÜ¿ì£¬µ¼ÖÂËùÔÚ¼¯ÈºµÄ×ÊÔ´½ôÕÅ£¬ÓÐЩË÷ÒýÊý¾Ý¼õÉÙ£¬²»ÐèÒªÕ¼ÓÃÌ«¶à×ÊÔ´£¬µ¼Ö¼¯Èº×ÊÔ´¿ÕÏС£ÓÚÊDzúÉúÁËË÷Òý¿ç¼¯ÈºÇ¨ÒƵÄÐèÇó¡£Õë¶ÔÕâ¸öÐèÇó£¬ÎÒÃÇͨ¹ý¸øË÷ÒýÌí¼Ó°æ±¾ºÅ£¬½â¾öÁËË÷Òý¿ç¼¯ÈºÇ¨ÒÆÎÊÌâ¡£Ö®ºóÎÒÃÇÓÐÎÄÕ»áÏêϸµÄ½éÉܸ÷½°¸¡£

µÎµÎ Elasticsearch ƽ̨ʵÏÖÁËË÷ÒýÈÝÁ¿µÄ×Ô¶¯¹æ»®£¬½â¾öÁ˼¯Èº¼äµÄÈÝÁ¿¾ùºâ¡£Elasticsearch ƽ̨¿ÉÒÔ¶¯Ì¬µÄ¹æ»®Ë÷ÒýµÄÈÝÁ¿¡£µ±Ò»¸ö¼¯ÈºÈÝÁ¿¹æ»®²»×ãʱ£¬Æ½Ì¨¿ÉÒÔ¶¯Ì¬µÄÇ¨ÒÆÒ»²¿·ÖË÷Òýµ½¿ÕÏеļ¯ÈºÖС£ÐµÄË÷Òý½ÓÈëÐèÇó»áÓÅÏȽÓÈëÔÚ¿ÕÏеļ¯Èº×ÊÔ´ÖС£µÎµÎ Elasticsearch ƽ̨ÊÇÈçºÎʵÏÖË÷ÒýÈÝÁ¿µÄ×Ô¶¯¹æ»®£¬Ò²ÇëÆÚ´ýºóÐøµÄ·ÖÏí¡£

×ܽá

µÎµÎµÄ¶à¼¯Èº¼Ü¹¹£¬×î³õÊÇΪÁ˽â¾ö Elasticsearch µ¥¼¯Èº¼Ü¹¹µÄÆ¿¾±¡£ÎªÁËÖ§³Ö¶à¼¯Èº¼Ü¹¹£¬ºóÃæµÄºÜ¶à×é¼þ¶¼ÐèÒª¿¼ÂÇÁ¬½Ó¶à¸ö¼¯ÈºµÄ³¡¾°£¬¸øÆ½Ì¨¼Ü¹¹´øÀ´ÁËÒ»¶¨µÄ¸´ÔÓÐÔ¡£µ«ÊǶà Elasticsearch ¼¯Èº´øÀ´µÄÎȶ¨ÐԺ͸ôÀëÐÔµÄÌáÉý£¬ËüËù´øÀ´µÄÊÕÒæÔ¶Ô¶´óÓڼܹ¹µÄ¸´ÔÓÐÔ¡£¸ÄÔì³É¶à¼¯Èº¼Ü¹¹ºó£¬ÎÒÃÇ¿¸×¡ÁË Elasticsearch ƽ̨¹æÄ£±¬Õ¨Ê½Ôö³¤£¬Elasticsearch ƽ̨µÄ¹æÄ£·­ÁË 5 ±¶¶à£¬¶à¼¯Èº¼Ü¹¹ºÜºÃµÄÖ§³ÅÁËÒµÎñµÄ¿ìËÙ·¢Õ¹¡£

 

   
2148 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ