±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ InfoQ£¬Ö÷Òª½²½âÁËËÕÄþ»ùÓÚSpark StreamingµÄʵʱÈÕÖ¾·ÖÎöϵͳ°¸Àýʵ¼ù¡£ |
|
ǰÑÔ
Ŀǰҵ½ç»ùÓÚ Hadoop ¼¼ÊõÕ»µÄµ×²ã¼ÆËãÆ½Ì¨Ô½·¢Îȶ¨³ÉÊ죬¼ÆËãÄÜÁ¦²»ÔÙ³ÉΪÖ÷Ҫƿ¾±¡£ ¶àÑù»¯µÄÊý¾Ý¡¢¸´ÔÓµÄÒµÎñ·ÖÎöÐèÇó¡¢ÏµÍ³Îȶ¨ÐÔ¡¢Êý¾Ý¿É¿¿ÐÔ£¬ ÕâЩÈíÐÔÒªÇó£¬ Öð½¥³ÉΪÈÕÖ¾·ÖÎöÏµÍ³Ãæ¶ÔµÄÖ÷ÒªÎÊÌâ¡£2018 ÄêÏßÉÏÏßÏÂÈÚºÏÒѳɴóÊÆ£¬ËÕÄþÒ×¹ºÌá³ö²¢¼ùÐÐË«ÏßÈÚºÏģʽ£¬Ìá³öÁËÖÇ»ÛÁãÊ۵ĴóÕ½ÂÔ£¬Æä±¾ÖÊÊÇÊý¾ÝÇý¶¯£¬ÎªÏû·ÑÕßÌṩ¸üºÃµÄ·þÎñ£¬ ËÕÄþÈÕÖ¾·ÖÎöϵͳ×÷ΪÊý¾Ý·ÖÎöµÄµÚÒ»»·½Ú£¬ÎªÊý¾ÝÔËÓª´òÏÂÁ˼áʵ»ù´¡¡£
Êý¾Ý·ÖÎöÁ÷³ÌÓë¼Ü¹¹½éÉÜ
ÒµÎñ±³¾°
ËÕÄþÏßÉÏ¡¢ÏßÏÂÔËÓªÈËÔ±£¬¶ÔÊý¾Ý·ÖÎöÐèÇó¶àÑù»¯¡¢Ê±Ð§ÐÔÒªÇóÔ½À´Ô½¸ß¡£Ä¿Ç°ÊµÊ±ÈÕÖ¾·ÖÎöϵͳÿÌì´¦ÀíÊýÊ®ÒÚÌõÁ÷Á¿ÈÕÖ¾£¬²»½öÐèÒª±£Ö¤£ºµÍÑÓ³Ù¡¢Êý¾Ý²»¶ªÊ§µÈÒªÇ󣬻¹ÒªÃæ¶Ô¸´ÔӵķÖÎö¼ÆËãÂß¼£¬ÕâЩ¶¼¸øÏµÍ³½¨ÉèÌá³öÁ˸߱ê×¼¡¢¸ßÒªÇó¡£ÈçÏÂͼËùʾ£º
- Êý¾ÝÀ´Ô´·á¸»£ºÏßÉÏÏßÏÂÁ÷Á¿Êý¾Ý¡¢ÏúÊÛÊý¾Ý¡¢¿Í·þÊý¾ÝµÈ
- ÒµÎñÐèÇó¶àÑù: Ö§³ÅÓªÏú¡¢²É¹º¡¢²ÆÎñ¡¢¹©Ó¦Á´ÉÌ»§µÈÊý¾ÝÐèÇó

¸ü¶à¸É»õÄÚÈÝÇë¹Ø×¢Î¢ÐŹ«Öںš°AI ǰÏß¡±£¬£¨ID£ºai-front£©
Á÷³ÌÓë¼Ü¹¹
ËÕÄþʵʱÈÕÖ¾·ÖÎöϵͳµ×²ãÊý¾Ý´¦Àí·ÖΪÈý¸ö»·½Ú£º²É¼¯¡¢ÇåÏ´¡¢Ö¸±ê¼ÆË㣬Èçͼ 1 Ëùʾ¡£
- ²É¼¯Ä£¿é£ºÊÕ¼¯¸÷Êý¾ÝÔ´ÈÕÖ¾£¬Í¨¹ý Flume ʵʱ·¢ËÍ Kafka¡£
- ÇåÏ´Ä£¿é£ºÊµÊ±½ÓÊÕÈÕÖ¾Êý¾Ý£¬½øÐÐÊý¾Ý´¦Àí¡¢×ª»»£¬ÇåÏ´ÈÎÎñ»ùÓÚ Storm ʵÏÖ£¬Ä¿Ç°Ã¿Ìì´¦ÀíÊ®ÒÚ¼¶±ðÁ÷Á¿Êý¾Ý£¬¾¹ýÇåÏ´ÈÎÎñ´¦ÀíºóµÄ½á¹¹»¯Êý¾Ý½«Ôٴη¢Ë͵½ Kafka ¶ÓÁÐ
- Ö¸±ê¼ÆË㣺´Ó Kafka ʵʱ½ÓÊսṹ»¯Á÷Á¿Êý¾Ý£¬ÊµÊ±¼ÆËãÏà¹ØÖ¸±ê£¬ Ö¸±ê¼ÆËãÈÎÎñÖ÷Òª·ÖÁ½ÖÖ£ºStorm ÈÎÎñ¡¢Spark Streaming ÈÎÎñ£¬Á½ÖÖ·½Ê½¶¼Óи÷×ÔµÄÓ¦Óó¡¾°£¬ ÆäÖÐ Spark Streaming ÊʺÏ׼ʵʱ³¡¾°£¬ÆäÓŵãÊÇ£ºÍÌÍÂÁ¿¸ß¡¢Ö§³Ö±ê×¼ SQL¡¢¿ª·¢¼òµ¥¡¢Ö§³Ö´°º¯Êý¼ÆËãStorm¡¢Spark µÃÒæÓÚËÕÄþÊý¾ÝÔÆÆ½Ì¨ÌṩµÄÖ§³Å£¬Ä¿Ç°ËÕÄþÊý¾ÝÔÆÆ½Ì¨¼¯³ÉÁË£ºHive¡¢Spark¡¢Storm¡¢Druid¡¢ES¡¢Hbase¡¢Kafka µÈ´óÊý¾Ý¿ª·¢×é¼þ£¬Ö§³ÅÁ˼¯ÍÅ´óÊý¾Ý¼ÆËã¡¢´æ´¢ÐèÇó¡£

Ö¸±ê¼ÆËãºóÊý¾ÝÖ÷Òª´æ´¢µ½ HBase¡¢Druid µÈ´æ´¢ÒýÇæ£¬ÒµÎñϵͳ¶Áȡʵʱ¼ÆËãºÃµÄÖ¸±êÊý¾Ý£¬ÎªÔËÓªÈËÔ±ÌṩÊý¾Ý·ÖÎö·þÎñ¡£
Spark Streaming ÔÚÖ¸±ê·ÖÎöʵ¼ù
Spark Streaming ½éÉÜ
ÖÚËùÖÜÖª Spark ÊÇÅú´¦Àí¿ò¼Ü£¬¶ø Spark Streaming ½è¼øÅú´¦ÀíµÄÀíÄîʵÏÖµÄ׼ʵʱËã¿ò¼Ü£¬Í¨¹ý½«Êý¾Ý°´Ê±¼ä·ÖÅú´¦Àí£¬Êµ¼ÊÓ¦ÓÃÖиù¾ÝÑÓ³ÙÒªÇóºÏÀíÉèÖ÷ÖÅú¼ä¸ô£¬ÈçÏÂͼËùʾ¡£Spark Streaming Ö§³Ö¶àÖÖÊý¾ÝÔ´£ºKafka¡¢Flume¡¢HDFS¡¢Kenisis µÈ£¬Æ½Ì¨ÔÉúÖ§³ÖдÈëµ½ HDFS¡¢³£¼û¹ØÏµÊý¾Ý¿âµÈ´æ´¢½éÖÊ¡£


¶Ô±È Storm£¬ Spark Streaming ׼ʵʱ¼Ü¹¹£¬ÍÌÍÂÁ¿¸ü¸ß£¬Ö§³Ö SQL£¬Óë HDFS¡¢Êý¾Ý¿âµÈ´æ´¢½éÖÊÖ§³ÖµÄ¸üºÃ£¬¿ª·¢·½±ã£¬²¢ÇÒÖ§³Ö Window ÌØÐÔ£¬ÄÜÖ§³Ö¸´ÔӵĴ°¿Úº¯Êý¼ÆËã¡£
NDCG Ö¸±ê·ÖÎö
Normalized Discounted Cumulative Gain£¬¼´ NDCG£¬³£ÓÃ×÷ËÑË÷ÅÅÐòµÄÆÀ¼ÛÖ¸±ê£¬ÀíÏëÇé¿öÏÂÅÅÐòÔ½¿¿Ç°µÄËÑË÷½á¹û£¬µã»÷¸ÅÂÊÔ½´ó£¬¼´µÃ·ÖÔ½¸ß (gain)¡£CG = ÅÅÐò½á¹ûµÄµÃ·ÖÇóºÍ£¬ discounted ÊǸù¾ÝÅÅÃû£¬¶Ôÿ¸ö½á¹ûµÃ·Ö * ÅÅÃûÈ¨ÖØ£¬È¨ÖØ = 1/ log(1 + ÅÅÃû) £¬ ÅÅÃûÔ½¿¿Ç°µÄÈ¨ÖØÔ½¸ß¡£Ê×ÏÈÎÒÃǼÆËãÀíÏë DCG£¨³ÆÖ®Îª IDCG£©£¬ ÔÙ¸ù¾ÝÓû§µã»÷½á¹û£¬ ¼ÆËãÕæÊµµÄ DCG£¬ NDCG = DCG / IDCG£¬ÖµÔ½½Ó½ü 1£¬ Ôò´ú±íËÑË÷½á¹ûÔ½ºÃ¡£DCG ¼ÆË㹫ʽÈçÏ£º

ÔÚËÕÄþÒ×¹ºËÑË÷¹Ø¼ü´Ê"Æ»¹û"£¬È¡µÚÒ»ÅÅ 4 ¸ö½á¹ûΪÀý×Ó¡£


¼ÆËãµÃ³ö IDCG = 1£¬ DCG = 0.5£¬NDCG = DCG / IDCG = 0.5 , ×îÖÕͨ¹ý¶Ôÿ´ÎËÑË÷¼ÆËã NDCG µÃ·Ö£¬ÓÃÀ´×÷ΪÅжÏËÑË÷½á¹ûºÃ»µµÄÒ»¸öÆÀ¼ÛÖ¸±ê¡£
NDCG ¼ÆËã·½°¸Éè¼Æ
ͨ¹ýͳ¼ÆËÑË÷ÐÐΪʱ¼ä¿ç¶È£¬86% µÄËÑË÷ÐÐΪÔÚ 5 ·ÖÖÓÄÚÍê³É¡¢90% µÄÔÚ 10 ·ÖÖÓÄÚÍê³É£¨´ÓËÑË÷¿ªÊ¼µ½×îºóÒ»´Îµã»÷½á¹ûÁбíʱ¼ä¼ä¸ô£©£¬Í¨¹ý·ÖÎö±È½Ï£¬ NDCG ʵʱ¼ÆËãʱ¼ä·¶Î§É趨ÔÚ 15 ·ÖÖÓ¡£Õâ¾ÍÌá³öÁËÁ½¸ö¼ÆËãÄѵ㣺
- ʱ¼ä´°¿Ú¼ÆË㣺ÿһ´Î¶¼ÊǶÔǰ 15 ·ÖÖÓÊý¾ÝµÄÕûÌå·ÖÎö
- È¥ÖØ£º ʱ¼ä´°¿ÚÄÚ±£Ö¤Ò»´ÎËÑË÷Ö»¼ÆËãÒ»´Î
×îÖÕÎÒÃÇÑ¡ÔñÁË Spark Streaming ¿ò¼Ü£¬ÀûÓÃÆä Window ÌØÐÔ£¬ÊµÏÖʱ¼ä´°¿Ú¼ÆË㡣ʱ¼ä´°¿ÚΪ 15 ·ÖÖÓ£¬²½½ø 5 ·ÖÖÓ£¬Òâζ×Åÿ 5 ·ÖÖÓ¼ÆËãÒ»´Î¡£Ã¿´Î¼ÆË㣬ֻ¶ÔÔÚÇø¼ä£Û15 ·ÖÖÓǰ£¬ 10 ·ÖÖÓǰ£Ý·¢ÆðµÄËÑË÷ÐÐΪ½øÐÐ NDCG ¼ÆË㣬ÕâÑù¾Í²»»áÔì³ÉÖØ¸´¼ÆËã¡£

°´ÕÕ·½°¸¿ª·¢ºó£¬ÏßÉϲâÊԺܿ췢ÏÖÎÊÌ⣬±£´æ 15 ·ÖÖÓµÄÊý¾ÝÏûºÄ×ÊÔ´Ì«¶à£¬Í¨¹ý·ÖÎö·¢ÏÖ£ºËÑË÷Êý¾Ý½öÕ¼Á÷Á¿Êý¾ÝºÜСһ²¿·Ö£¬ ÇåÏ´ÈÎÎñÔÚ Kafka µ¥¶À´æ´¢Ò»·ÝËÑË÷Êý¾Ý£¬NDCG ¼ÆËã¶©ÔÄеÄËÑË÷Êý¾Ý£¬´ó´ó¼õСÁË×ÊÔ´ÏûºÄ¡£
ÐÔÄÜÓëÊý¾Ý°²È«±£ÕÏ
ÐÔÄܱ£ÕÏ
ÈÝÁ¿Ô¤¹ÀÓëÀ©Õ¹
ÈÝÁ¿Ô¤¹À²»ÊÇÒ»¸ö¾²Ì¬¹¤×÷
- Á÷Á¿ÈÕÖ¾ÔÚ²»¶ÏÔö³¤£¬¶øÏµÍ³´¦ÀíÄÜÁ¦ÊÇÓÐÏÞµÄ
- ´ó´Ù»î¶¯»áÔì³É¶îÍâµÄÊý¾Ý¸ß·å¡£
Õë¶ÔÕâЩÇé¿ö£¬ Ìáǰ¸ù¾ÝÒµÎñÔö³¤Çé¿ö½øÐÐÀ©ÈÝÊÇ×îÖØÒªµÄ±£ÕÏÊֶΡ£À©ÈÝÒÀÀµÏµÍ³µÄˮƽÀ©Õ¹ÄÜÁ¦£¬Í¨¹ý Kafka Topic ·ÖÇøÊýÁ¿¡¢Storm ´¦Àí½ÚµãºÍ²¢·¢Êý¡¢Spark Streaming ²¢·¢ÊýµÈ²ÎÊýµ÷½Ú£¬±£ÕÏÊý¾Ý´¦ÀíÐÔÄÜÂú×ãÒµÎñÐèÇó¡£
¶àά·ÖÎö¼ÆËãÓÅ»¯
ÒÔ NDCG Ö¸±êΪÀý×Ó£¬Ä¿Ç°Ö§³Ö 4 ¸öά¶È×éºÏµÄ¼ÆË㣺´óÇø¡¢³ÇÊС¢ÇþµÀ¡¢ËÑË÷´Ê£¬ÎªÁËÖ§³Ö 4 ¸öά¶ÈÈÎÒâ×éºÏ£¬ÐèÒª½øÐÐ 15 ´Î¼ÆË㣬ÔÚ HBase ½øÐÐ 15 ´Î´æ´¢¸üвÙ×÷¡£ÈçÏÂͼËùʾ¡£

Ŀǰʱ¼äÁ£¶ÈÊÇÖ»µ½Ì죬Èç¹û¼ÓÉÏСʱ¡¢ÖÜ¡¢ÔµÈʱ¼äά¶È£¬ÈÎÎñÊý¡¢´æ´¢¶¼Òª·¼¸±¶¡£´Ëʱ£¬Ò»¸ö¸ßÐÔÄÜµÄ OLAP ¼ÆËãÒýÇæ£¬À´ÌáÉýÖ¸±ê·ÖÎöЧÂÊ£¬±äµÃ¸ü¼ÓÆÈÇС£
16 ϰëÄêÊý¾ÝÔÆÆ½Ì¨Æô¶¯ OLAP ÒýÇæ½¨É裬17 ÄêÕýʽ¶ÔÍâÌṩ Druid ·þÎñ¡£ Druid Ö§³Ö sum¡¢max¡¢min¡¢avg¡¢count¡¢distinct count µÈ³£¹æ¾ÛºÏ¼ÆË㣬֧³Ö´Ó Kafka ʵʱÊý¾Ý½ÓÈ룬ÆäÁÐʽ´æ´¢½á¹¹ÌáÉýÊý¾Ý¼ìË÷ЧÂÊ£¬ ͨ¹ýÊý¾ÝÔ¤¾ÛºÏÌáÉýÁ˼ÆËãЧÂÊ¡£
¾¹ý·½°¸Ô¤ÑÐÒÔ¼°ÐÔÄܲâÊÔ£¬Druid ´ó´óÌáÉýÁË NDCG ÕâÀàÖ¸±êµÄ¼ÆËã·ÖÎöЧÂÊ£¬ÈÃÖ¸±ê·ÖÎöÈÎÎñ±äµÃ¸üÇáÁ¿¼¶£¬Ö¸±ê¶àά·ÖÎöÄÜÁ¦½»¸ø Druid À´½â¾ö¡£
Êý¾Ý±£ÕÏ
±£ÕÏÊý¾Ý²»¶ªÊ§
Storm Óë Spark Êý¾ÝÈÎÎñ¾³£»áÐèÒªÖØÆô½øÐз¢²¼²Ù×÷£¬±£ÕÏÊý¾ÝÔÚÒ»¶¨Ê±¼äÄÚ²»¶ªÊ§£¬ÓÈÎªÖØÒª¡£·Ö½âÏÂÀ´ÐèÒª±£Ö¤Á½µã£º
- Êý¾ÝÔ´±£Ö¤Êý¾Ý²»¶ªÊ§
- Êý¾ÝÈÎÎñ±£Ö¤Êý¾Ý±»´¦Àí¡£
µÚÒ»µã£¬Kafka ͨ¹ýÊý¾ÝÂä´ÅÅÌ¡¢±¸·Ý»úÖÆ±£Ö¤Êý¾Ý²»¶ªÊ§
µÚ¶þµã£¬Storm ÌṩÁË Ack »úÖÆ£¬±£ÕÏÊý¾Ý±ØÐë±»´¦Àí¡£
Spark Streaming ÌṩÁË check point(WAL ÈÕÖ¾) ±¸·Ý»úÖÆ£¬ÈÎÎñʧ°Ü»òÖØÆôºó£¬¿ÉÒÔÀûÓà check point Êý¾Ý½øÐлָ´£¬±£ÕÏÊý¾Ý±»´¦ÀíÍê³É£¬ µ«ÊÇ wal ÈÕÖ¾»á°ÑËùÓÐÊý¾Ý´æ´¢Ò»·Ý·Åµ½ HDFS£¬ ·Ç³£ºÄʱ£¬ Spark Streaming Õë¶Ô Kafka ½øÐÐÁËÓÅ»¯£¬ÌṩÁË Kafka direct API£¬ д WAL ÈÕ־ʱºòÖ»ÐèÒª¼Ç¼ Kafka ¶ÓÁÐµÄ offset£¬ ÈÎÎñ»Ö¸´µÄʱºò£¬¸ù¾Ý offset ÖØÐ¶ÁÈ¡ Kafka Êý¾Ý¼´¿É£¬Õû¸öÁ÷³ÌÈçÏÂͼËùʾ¡£

exactly-once ÓïÒå±£ÕÏ
¶ÔÓÚÏúÊÛÀàÊý¾Ý£¬²»½öÒª±£Ö¤Êý¾Ý±»´¦Àí£¬»¹ÐèÒª±£Ö¤Êý¾Ý½ö±»´¦ÀíÒ»´Î£¬Éæ¼°ÏúÊÛ²ÆÎñÖ¸±êÊý¾Ý±ØÐë 100% ׼ȷ¡£
µÚÒ»ÖÖ·½°¸£ºLabmda ¼Ü¹¹ + Redis È¥ÖØ
- ÊµÊ±È¥ÖØ£ºÒ»¸ö¶©µ¥±»¼ÆËãºó£¬½«¶©µ¥ºÅдÈë Redis£¬Í¨¹ý±È¶Ô¶©µ¥ºÅ£¬±£Ö¤Êý¾Ý²»Öظ´´¦Àí¡£
- ÀëÏ߸üУºÃ¿ÌìÁè³¿ÖØÐ¼ÆËãÏúÊÛÖ¸±ê£¬¸üÐÂǰһÌìÖ¸±êÊý¾Ý

µÚ¶þÖÖ·½°¸£ºMPP + Ö÷¼ü
- ʹÓó¡¾°£ºÊÊÓÚÍⲿʹÓó¡¾°£¬Íⲿϵͳ´Ó Mpp Êý¾Ý²éѯ¡¢·ÖÎöÊý¾Ý
- ¼¼Êõ·½°¸£ºMPP Ñ¡Óà PG CITUS Êý¾Ý¿â£¬ÔÚ MPP Êý¾Ý¿â½¨±í£¬¶Ô¶©µ¥ºÅµÈΨһÐÔ×Ö¶ÎÉèΪÖ÷¼ü¡£
δÀ´¼Ü¹¹ÑݽøÓëÓÅ»¯
ĿǰÕû¸öµ×²ã´¦Àíϵͳ¶¼ÊÇ»ùÓÚÒµ½çµÄ¿ªÔ´¿ò¼Ü£¬ÏµÍ³»¹Ô¶Ô¶Ì¸²»ÉÏÍêÃÀ£¬ÓÈÆäÊÇ×öµ×²ãÊý¾ÝÊǸö±È½ÏϸÖ¡¢ÐÁ¿àµÄ¹¤×÷£¬Êý¾ÝÖÊÁ¿ÎÊÌâÆµ·¢£¬ÓÉÓÚûÓÐ¼à¿ØÏµÍ³£¬¾³£ÊDZ»¶¯·¢ÏÖ¡¢½â¾öÎÊÌâ¡£ÓÉÓÚÐÂÒµÎñ³¤ÊÆÏ²ÈË£¬Êý¾ÝÇåÏ´Âß¼±ä¸üÊǼҳ£±ã·¹£¬´úÂë·¢²¼Æµ·±¡£
ÔÚ 17 Äêµ×£¬¿ªÊ¼¶Ôϵͳ½øÐмܹ¹ÓÅ»¯Éè¼Æ£¬Ö÷ÒªÔö¼ÓÁËÁ½¸öÄ£¿é¡£
- Êý¾ÝÖÊÁ¿¼à¿Ø£º ͨ¹ýÅäÖÃÖÊÁ¿¼à¿Ø¹æÔò£¬ ¶Ôʵʱ¡¢ÀëÏßÊý¾Ý½øÐйæÔòУÑ飬֧³Ö£º³éÑùУÑ顢ȫÁ¿Ð£ÑéÁ½ÖÖ·½Ê½£¬ ¶ÔÊý¾ÝÒ쳣ͨ¹ý¸æ¾¯·½Ê½¼°Ê±Í¨Öª¿ª·¢ÈËÔ±¡£
- Êý¾ÝÇåÏ´¹æÔòÅäÖÃϵͳ£ºÈÃÇåÏ´Âß¼³éÏó³É¿ÉÅäÖõĹæÔò£¬Í¨¹ý¶¨Òå±ä¸üÇåÎú¹æÔò£¬ÊµÏÖÊý¾ÝÇåÏ´Âß¼µÄ±ä¸ü£¬ÕâÀïµÄÄѵãÊǹæÔò³éÏ󻯣¬¾¹ý¼¼ÊõÔ¤ÑУ¬³õ²½È·¶¨Ê¹Óà Drools¡¢Groovy Á½ÖÖ·½Ê½ÅäºÏʵÏÖÇåÏ´¹æÔòÅäÖû¯¡£
×ܽáÓëÕ¹Íû
ÈÕÖ¾´¦Àí·ÖÎöϵͳ×÷ΪÊý¾ÝÍÚ¾ò¡¢BI ·ÖÎöµÈ¸ß½×Ó¦ÓõÄÄ»ºóÖ§³Å£¬ Æð×ųÐÉÏÆôϵÄ×÷Ó㬠ÓÈÆä¶ÔÓÚÒµÎñÏß¶à¡¢´óÊý¾ÝÁ¿³¡¾°£¬Ã»ÓÐϵͳ»¯Æ½Ì¨»¯µÄÖ§³Å£¬´óÊý¾ÝÖÕ½«ÊÇÒ»¾ä¿Õ»°¡£ÎÒÏàÐŲ»Ö¹ÊÇË㷨ģÐÍ£¬µ×²ãµÄÊý¾ÝÖÊÁ¿¡¢Ê±Ð§ÐÔ¡¢ÏµÍ³Îȶ¨ÐÔ£¬¶¼½«³ÉΪÖÇ»ÛÁãÊÛµÄʤ¸ºÊÖ¡£
|