ÒýÑÔ
½ÓÏÂÀ´µÄÈýƪÎÄÕÂÊÇÌÖÂÛÓÐ¹ØÆóÒµ·Ö²¼Ê½¿ª·¢µÄÎÄÕ£¬ÕâÈýƪÎÄÕ³ﻮÁ˺ܳ¤Ê±¼ä£¬ÎÄÕµļ¼Êõ²¢²»ËãУ¬µ«ÊÇÎÄÕÂÖÐʹÓõ½µÄ¼¼Êõ¶¼ÊǾ¹ý±ÊÕßÑо¿Êµ¼ùºó×ܽáµÄ£¬ÕýËùνվÔÚ¾ÞÈ˵ļç°òÉÏ£¬±ÊÕß²¢²»ÊǾÞÈË£¬µ«Ò²Ï£ÍûÕ⼸ƪÎÄÕÂÄܹ»°ïÖú³õÉæÆóÒµ·Ö²¼Ê½¿ª·¢µÄһЩͯЬ¡£
ÈýƪÎÄÕ½«»á´ÓMessageQueue¡¢Windows ServicesºÍWCF×ÅÊÖÀ´ÌÖÂÛÆóÒµ·Ö²¼Ê½µÄ¿ª·¢£¬MQÊÇÒ»ÖÖÏûÏ¢Öмä¼þ¼¼Êõ£¬¸ÃƪÎÄÕ½«»áÏêϸÌÖÂÛ¡£Windows
ServicesÔÚ·Ö²¼Ê½¿ª·¢ÖÐͬÑùÆð×ÅÖØÒªµÄ×÷Ó㬽«»áÔÚÏÂÆªÎÄÕÂÖÐÏêϸÌÖÂÛ£¬×îºóÊÇʹÓÃMQ¡¢WS²¢½áºÏWCF×öÒ»¸ö·Ö²¼Ê½µÄDemoÀ´ÑÝʾ·Ö²¼Ê½µÄ¼Ü¹¹¡£ÔÚÇö¨Ð´Õ⼸ƪÎÄÕÂǰ»¹ÓÐÒ»¸öÖØÒªµÄÄÚÈÝ--ESB£¨Enterprise
Service Bus£¬ÆóÒµ·þÎñ×ÜÏߣ©£¬ËüÊÇ´«Í³Öмä¼þ¼¼ÊõÓëXML¡¢Web·þÎñµÈ¼¼Êõ½áºÏµÄ²úÎҲ¾ÍÊǼ¯ºÏÁËMQºÍWSΪһÌåµÄÒ»ÖÖ¿ò¼Ü£¬µ«»¹Ã»ÓÐ×öÏêϸµÄÑо¿ËùÒÔÕâÈýƪÎÄÕ¾ÍûÓаüÀ¨ESB£¬µÈµ½Óгä×ãµÄʱ¼äÁËÈ»ºóÔÙÈ¥ÏêϸµÄÑо¿°É¡£
Ò»¡¢ ÂÛм¼ÊõµÄѧϰ
ÔÚʹÓõ½Ð¼¼ÊõʱÍùÍùÊ×ÏÈÐèҪѧϰËü£¬È»ºóÔÚÏîÄ¿ÖÐÓ¦Óã¬ÕâÀï˵µ½ÁËѧϰÄÇô¾ÍÀ´ÌÖÂÛϼ¼ÊõѧϰµÄ·½·¨£¬Ò²ÊDZÊÕß¶Ôм¼ÊõѧϰµÄÒ»ÖÖ×ܽᡣ
¶ÔÓÚ×ö¾ÉÁË¿ª·¢µÄÈËÔ±À´ËµÔÚѧϰм¼ÊõʱÍùÍù»á±ÈÄêÇáµÄ¿ª·¢ÈËÔ±½Ï¿ì£¬Õâ¸öÎÊÌâÓÐûÓÐÏë¹ý£¿ÆäʵÕâ¸öÎÊÌâµÄ´ð°¸Ï൱µÄ¼òµ¥£¬ÔÚѧϰм¼Êõʱ¶ÔÓÚ²»Í¬µÄÈ˶¼ÊÇÕ¾ÔÚͬһ¸öÆðÅÜÏߵģ¬Ö»²»¹ý¶ÔÓÚÓоÑéµÄ¿ª·¢ÈËÔ±À´Ëµ£¬ÔÚʹÓÃм¼ÊõʱѧϰµÄ²¢²»ÊÇËüÊÇʲô¶«Î÷£¬¶øÊÇѧϰµÄÈçºÎʹÓÃËü¡£ÕâÖÖ²»Í¬µÄ˼Ïë¹Ûµã¾Í¾ö¶¨ÁËË»áÕÆÎյĸü¿ì£¬¿ÉÒÔÕâôÀí½â£¬¿ª·¢ÊÇÒ»¸öÊÀ½ç£¬¸Õ̤Èë±à³Ì½çµÄÈËÀ´Ëµ¾ÍÏñÊǸճöÉúµÄÒ»¸öÓ¤¶ù£¬ÕâʱºòËûÃÇÊÇҪȥÈÏÖªÕâ¸öÊÀ½ç£¬ÓÚÊǾͻáÎʺܶàÎÊÌ⣬ÖîÈç£ºÃæÏò¶ÔÏóÊÇʲô¶«Î÷£¬ÎªÊ²Ã´ÒªÕâÑù±àд£¬×îºó°Ñ×Ô¼ºÏÝÈëµ½Ò»¸ö¸öÄà̶ÖС£µ«ÊǶÔÓÚ¾Ñé·á¸»µÄ¿ª·¢ÈËÔ±À´Ëµ£¬ËûÒªÈÏÖª²»ÊÇÕâ¸öÊÀ½ç£¬ÔÚ¿ª·¢ÖпÉÒÔ˵ÒѾÊdzÉÄêÈË£¬ÔÚѧϰм¼Êõʱ¾Í²»»áÎʺÜÓÞ´ÀµÄÎÊÌ⣬¶øÊÇ»áÏëÕâ¸ö¶«Î÷Ò²ÊÇÃæÏò¶ÔÏóµÄ£¬ÄÇô¿ÉÒÔ°Ñ·½·¨·â×°µ½Ò»¸ö»ùÀàÖУ¬×ÓÀà¼Ì³Ð¸¸ÀàµÄ·½·¨£¬È»ºóÖØÐ´À´ÊµÏÖ¶à̬£¬ËùÒÔÕâʱºò¾Ñé¾Í¾ö¶¨ÁËѧϰм¼ÊõʱµÄ¿ìÂý¡£
Õâ¾ÍÀàËÆÓÚÉú»îÖеÄÓ×¶ùºÍ³ÉÄêÈËÔÚѧϰ¿ªµç¶¯³µÊ±µÄ³¡¾°£¬ÏëÒªÓ×¶ùʹÓõ綯³µ¾Í»áºÜÀ§ÄÑ£¬ÒòΪ×î¼òµ¥µÄ½Å̤³µ¶¼Ã»ÓÐÆï¹ý£¬ÄãÈÃËûѧϰµç¶¯³µ£¬Õâ²»ÊÇ×÷ËÀµÄ½Ú×àÂð¡£µ«ÊdzÉÄêÈ˾Ͳ»Í¬ÁË£¬³ÉÄêÈËÆï½Å̤³µÏ൱µÄÊìÁ·£¬ÔÚ»»µç¶¯³µµÄʱºò¾Í»áÏëÕâ¸öºÍ½Å̤³µÊÇÒ»ÑùµÄ£¬¶øÇÒ¿ÉÒÔ²»ÓÃÿ´Î½Å²È£¬ÕæÊǺÃÓá£ÕâÁ½ÖÖ˼ά·½Ê½¾Í¾ö¶¨ÁËÓ×¶ùÔÚʹÓõ綯³µÊ±ÐèÒª¼¸ÌìµÄʼþ²ÅÄÜѧ»á£¬µ«ÊdzÉÄêÈ˸տ´µ½¾ÍÄܹ»Ê¹Óá£
ѧϰм¼ÊõÒ²ÊÇÀàËÆ£¬Ð¼¼ÊõÒ²ÊÇÖ»ÊÇÒ»ÖÖеÄʵÏÖ·½Ê½£¬¿ÉÄܸøËü¼ÓÉÏÁËÒ»¸öµç¶¯µÄ¿ª¹Ø£¬×öÒ»¸ö¿ª¹ØÈ»ºóʹÓÃËüÀïÃæµÄ¹¦ÄÜ×Ô¸ö¶ùÔËÐоͿÉÒÔÁË£¬Êµ¼ÊµÄÄÚÈÝ»¹ÊÇûÓиı䶼ÊÇ0ºÍ1µÄ¼¯ºÏÌå¡£
¶þ¡¢MQ
ÉÏÎÄÌÖÂÛÁËѧϰµÄ·½·¨£¬½ÓÏÂÀ´½«»á½øÈëÎÄÕµÄÕýÌ⣬ÌÖÂÛÓйØMQµÄ»ù±¾Ê¹Ó÷½·¨¡£Ê×ÏÈÀ´¶ÔMQµÄ»ù±¾ÄÚÈݽøÐзÖÀ࣬ÕâÀï´Ó¾²Ì¬ºÍÐÐΪ½Ç¶È½«MQµÄÄÚÈÝ·ÖΪÁ½´óÀ࣬ÆäÖеľ²Ì¬½Ç¶ÈÊÇÖ¸MQËù°üº¬µÄÀà±ðÒÔ¼°ÔÚϵͳÏûÏ¢¶ÓÁÐÖеÄÀàÐÍ£¬ÐÐΪ½Ç¶ÈÊÇÖ¸MQÔÚͨÐÅ·½ÃæµÄÀàÐÍ£¬¾ßÌå·ÖÀàÈçÏÂͼ£º

MQÊÇÒ»ÖÖͨÐŵĻúÖÆ£¬ÒòΪÊÇÒ»ÖÖÖмä¼þ¼¼Êõ£¬ËùÒÔËüÄܹ»Ö§³Ö¶àÖÖÀàÐ͵ÄÓïÑÔ¿ª·¢£¬Í¬Ê±Ò²ÊÇ¿çÆ½Ì¨µÄͨÐÅ»úÖÆ£¬Ò²¾ÍÊÇ˵MQÖ§³Ö½«ÐÅϢת»¯ÎªXML»òÕßJSonµÈÀàÐ͵ÄÊý¾Ý´æ´¢µ½ÏûÏ¢¶ÓÁÐÖУ¬È»ºó¿ÉÒÔʹÓò»Í¬µÄÓïÑÔÀ´´¦ÀíÏûÏ¢¶ÓÁÐÖеÄÏûÏ¢£¬ÕâÑù¾ÍºÜÈÝÒ×µÄ×öµ½ÁËÐÅÏ¢µÄͨÐÅ£¬Í¬Ê±Ò²ÎªÐÅÏ¢µÄͨÐÅÆðµ½ÁË»º³åµÄ×÷Ó㬾³£»áÔÚ½ðÈÚÏîÄ¿ÖÐʹÓÃÕâÖÖͨÐÅ»úÖÆ¡£
2.1 ÀíÂÛ»ýµí
2.1.1 ¾²Ì¬
Ï¢¶ÓÁÐÊǺÍÍøÂçÏà¹ØÁªµÄ£¬ËùÒÔ¸ù¾ÝÍøÂçµÄ²»Í¬»®·ÖΪ¹«¹²¶ÓÁС¢×¨ÓöÓÁУ¬ÆäÖй«¹²¶ÓÁÐÊǹ«²¼µ½Õû¸öÍøÂçÖУ¬ÔÚÕû¸öÍøÂçÖÐËùÓÐÕ¾µã¹«¿ª£¬Ïà¶ÔµÄ¾ÍÊÇרÓöÓÁУ¬×¨ÓöÓÁÐÖ»ÄÜÓÉÖªµÀ¶ÓÁÐÍêÕû·¾¶Ãû»ò±êÇ©µÄÓ¦ÓóÌÐò·ÃÎÊ¡£ÁíÍâ¸ù¾Ý½ÓÊÕÏûÏ¢µÄ²Ù×÷²»Í¬°ÑÏûÏ¢¶ÓÁл®·ÖΪ¹ÜÀí¶ÓÁкÍÏìÓ¦¶ÓÁУ¬¹ÜÀí¶ÓÁÐÊÇÖ¸ÔÚÕû¸öÏûÏ¢Ïß·ÖÐËùÓÐÒѾ·¢ËͺͽÓÊÕµÄÏûÏ¢£»ÏìÓ¦¶ÓÁÐÊÇָĿ±ê³ÌÐò½ÓÊպͻØÓ¦ÏûÏ¢¡£ËüÃÇÔÚÏûÏ¢¶ÓÁÐÖеÄÀàÐÍ£¬¿ÉÒÔʹÓÃÏÂͼÀ´½øÐÐÇø·Ö¡£

ÁíÍâ¶ÔÓÚϵͳÉú³ÉµÄ¶ÓÁÐÕâÀï²»ÔÙÏêϸµÄÃèÊö£¬¿ÉÒÔÉÏÍø²é¿´Ò»Ð©ÎÄÕ¡£
2.1.2 ÐÐΪ
ÔÚÐÐΪ·½Ãæ´Ó¶ÓÁеÄͨÐźÍÏûÏ¢´¦ÀíÁ½¸ö´óµÄ·½Ãæ°ÑMQ·ÖΪÁ½´óÀ࣬ÆäÖÐMQµÄ¶ÓÁÐͨÐÅ·ÖΪͬ²½ºÍÒì²½Á½ÖÖÀàÐÍ£¬Í¬²½ÏûÏ¢ÊÇÖ¸ÇëÇóµÄ·¢ËÍ·½Ö´ÐÐÆäËûÈÎÎñǰ£¬±ØÐëµÈ´ýÀ´×ÔÔ¤¶¨½ÓÊÕ·½µÄÏìÓ¦£¬¾ßÌåµÈ´ýµÄʱ¼äÈ¡¾öÓÚ½ÓÊÕ·½´¦ÀíÏìÓ¦µÄʱ¼ä¡£ºÍͬ²½Ïà¶ÔÓ¦µÄÊÇÒì²½ÏûÏ¢£¬·¢ËÍ·½²»»áµÈ´ý½ÓÊÕ·½µÄÈκλØÓ¦¼´¿É¼ÌÐøÆäËüµÄ²Ù×÷¡£
ÁíÍâÔÚÏûÏ¢¶ÓÁн»»¥·½Ã棬ÏûÏ¢µÄ½»»¥Í¬Ê±Ò²ÓÐÊý¾ÝÍêÕûÐÔ¡¢Êý¾ÝÒ»ÖÂÐÔ¡¢Îȶ¨ÐÔµÈÀàÐ͵쬾ßÌå·ÖΪÎȶ¨ÐÔ¡¢ÏûÏ¢ÓÅÏȼ¶¡¢ÍÑ»úÄÜÁ¦¡¢ÊÂÎñÐԺͰ²È«ÐԵȡ£
2.2 MQ Ïê½â
ÀíÂÛ²¿·ÖÒѾ»ýÀ۵ĺܶàÁË£¬½ÓÏÂÀ´ÎÒÃÇ´Óʵ¼ÊµÄ´úÂëʵÀýÖÐÀ´·ÖÎöMQµÄʹÓ÷½·¨£¬ÁíÍâÔÚʹÓÃMQǰÊ×ÏÈÓ¦¸ÃÒª°²×°MQ²Å¿ÉÒÔ£¬ÕâÑùÔÚ±¾»úµÄ·þÎñÆ÷ÉϲŻáÓÐMQµÄ¹ÜÀíÆ÷£¬×öÏûÏ¢´¦ÀíµÄʱºò¿ÉÒԲ鿴ÏûÏ¢µÄ¾ßÌåÄÚÈÝ¡£
2.2.1 MQ°²×°
´ò¿ªControl Panel-¡°Add/Remove Programs¡±
¨C ¡°Add/Remove Windows Components¡±²½Öè°²×°MSMQ¡£
MSMQ¿ÉÒÔ°²×°Îª¹¤×÷×éģʽ»òÓòģʽ¡£Èç¹û°²×°³ÌÐòûÓÐÕÒµ½Ò»Ì¨ÔËÐÐÌṩĿ¼·þÎñµÄÏûÏ¢¶ÓÁеķþÎñÆ÷£¬ÔòÖ»¿ÉÒÔ°²×°Îª¹¤×÷×éģʽ£¬´Ë¼ÆËã»úÉϵġ°ÏûÏ¢¶ÓÁС±Ö»Ö§³Ö´´½¨×¨ÓöÓÁкʹ´½¨ÓëÆäËûÔËÐС°ÏûÏ¢¶ÓÁС±µÄ¼ÆËã»úµÄÖ±½ÓÁ¬½Ó¡£
2.2.2 ÅäÖÃMSMQ
´ò¿ªComputer Management ¨C Message Queuing£¬ÔÚPrivate
QueuesÏ´´½¨MSMQDemo¶ÓÁÐ
2.2.3 MQ Demo
ÔÚ.NETÖÐ΢Èí¶ÔMQ×öÁË·â×°£¬°ÑMQÓйصÄÐÅÏ¢·â×°µ½ÁËMessageQueueÀàÖУ¬ÔÚ¿ª·¢µÄʱºò¿ÉÒÔÖ±½ÓÒýÓøÃÀ࣬¶Ô¶ÓÁÐÖеÄÏûÏ¢×ö²Ù×÷¡£
ÔÚ²Ù×÷ÏûϢǰÊ×ÏÈҪΪÏûÏ¢Ö¸¶¨´æ´¢µÄ¶ÓÁУ¬ËùÒÔÔÚ´´½¨ÏûϢʱÊ×ÏÈÒªÔÚ·þÎñÆ÷ÉÏ´´½¨Ò»¸ö¶ÓÁУ¬È»ºóΪMessageQueueÖ¸¶¨ÏûÏ¢¶ÓÁеÄ·¾¶¡£¾ßÌåMQÀàµÄ·½·¨ºÍÊôÐÔÈçϵ¼Í¼£º

MQÀàµÄÖ÷ҪʹÓ÷½·¨ÒѾÔÚÉÏÃæµÄµ¼Í¼ÖÐÁгö£¬½ÓÏÂÀ´·ÖÎöÀàÖеÄÖ÷Òª·½·¨ºÍÊôÐÔ¡£
£¨1£©ÔÚMethodÖзÖΪ¶ÓÁйÜÀíºÍÏûÏ¢¹ÜÀíÁ½Àà·½·¨£¬ÆäÖеĶÓÁйÜÀíµÄ·½·¨ºÜ¼òµ¥£¬Í¨¹ýµ÷Ó÷½·¨¾ÍÄܹ»´´½¨ºÍɾ³ý¶ÓÁС£ÁíÍâ¾ÍÊÇÏûÏ¢¹ÜÀíµÄ·½·¨£¬ÆäÖеķ½·¨·ÖΪͬ²½ºÍÒì²½Á½ÖÖÀàÐÍ£¬¿ÉÒÔ¸ù¾Ýʵ¼ÊµÄÐèÇóÀ´È·¶¨Ê¹ÓõÄÀàÐÍ¡£
£¨2£©ÔÚPropertyÖÐÖ÷ÒªÓõ½µÄÖ÷ÒªÊÇPathºÍLabelÊôÐÔ£¬ÆäÖеÄPathÖ¸¶¨ÏûÏ¢µÄ¶ÓÁеØÖ·£¬LabelÄÜÉèÖûò»ñÈ¡¶ÓÁÐÃèÊöÐÅÏ¢¡£
½ÓÏÂÀ´ÑÝʾ·¢ËÍÊý¾ÝºÍ½ÓÊÕÊý¾Ý´úÂëµÄ±àд·½·¨£¬ÏÂÃæµÄʾÀýÖÐʹÓõÄÊÇ˽ÓеĶÓÁÐÀàÐÍÀ´ÑÝʾµÄ²Ù×÷¡£Ê×ÏÈ´Ó·¢ËÍÊý¾Ý¿ªÊ¼£¬ÔÚ·¢ËÍÊý¾ÝʱÊ×ÏÈÒª´´½¨ÎÒÃǵÄMQ£¬È»ºó¸ù¾ÝMQµÄµØÖ·´´½¨ÏàÓ¦µÄ¶ÓÁУ¬µ÷ÓöÓÁеÄsend·½·¨½«Êý¾ÝÐÅÏ¢·¢Ë͵½¶ÓÁÐÖУ¬ÈçÏ´úÂ룺
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Messaging; using System.Runtime.CompilerServices; using System.Text; using System.Threading; using System.Xml; using System.Xml.Serialization; using System.Runtime.Serialization.Formatters.Binary; namespace MsMQTest { class Program { static void Main(string[] args) { //declare the MQ Path string ekQ= ".\\Private$\\EKTestQueue"; //create the MQ if the MQ is not exist if (!MessageQueue.Exists(ekQ)) MessageQueue.Create(ekQ); //create a new queue var queue = new MessageQueue(ekQ); for (int i = 0; i < 2; i++) { //create the model that want to send Test test=new Test(); test.Name = "fdsfd"; test.Sex = "cvx"; //serialize the model string str = Program.xmlSerial(test); //send the model data to queue queue.Send("Test" + str); Console.WriteLine("Message sent {0} \n--------------", "Test" +str); } Console.Read(); // MessageQueue.Delete(ekQ); } public static string xmlSerial<T>(T serializeClass) { string xmlString = string.Empty; XmlWriterSettings settings = new XmlWriterSettings(); XmlSerializer serializer = new XmlSerializer(typeof(T)); StringBuilder xmlStringBuilder = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(xmlStringBuilder)) { serializer.Serialize(writer, serializeClass); xmlString = xmlStringBuilder.ToString(); } return xmlString; } } public class Test { public string Name { get; set; } public string Sex { get; set; } } } |
¶ÔÓ¦µÄÉú³É½á¹ûÈçÏÂͼ£º

ÔËÐÐÉÏÃæµÄ´úÂëºóMQ½«»á°ÑÏûÏ¢·¢Ë͵½ÏàÓ¦µÄ¶ÓÁÐÖУ¬ÕâÀï²ÉÓõÄÊÇרÓжÓÁÐËùÒԻὫÏûÏ¢·¢Ë͵½±¾µØµÄ¶ÓÁÐÖУ¬²é¿´ÏûÏ¢ÈçÏÂͼËùʾ£º
ÔËÐÐÉÏÃæµÄ´úÂëºó»á°ÑÏûÏ¢·¢Ë͵½ÏàÓ¦µÄÏûÏ¢¶ÓÁÐÖУ¬ÕâÑùÔÚÏûÏ¢µÄ·¢ËÍ·½ºÍµ÷Ó÷½Ö®¼ä¾Í¹¹½¨ÁËÒ»¸öÏ໥ËÉñîºÏµÄÇÅÁº£¬Ëü¾ÍÊÇÏûÏ¢¶ÓÁУ¬½ÓÏÂÀ´ÑÝʾÈçºÎ½ÓÊÕÏûÏ¢¶ÓÁС£
using System; using System.Collections.Generic; using System.Linq; using System.Messaging; using System.Text; using System.Threading; namespace MsqueueReaderTest { class Program { static void Main(string[] args) { string ekQ = ".\\Private$\\EKTestQueue"; using (var queue = new MessageQueue(ekQ)) { queue.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) }); var exist = false; while (!MessageQueue.Exists(ekQ)) { Console.WriteLine("No existing queue"); } exist = true; while (exist) { var m = queue.Receive(); Console.WriteLine("Message Received {0} \n--------------",(string)m.Body); // Thread.Sleep(500); } } } } } |
ÔËÐгÌÐòºó¿ØÖÆÌ¨Êä³ö½á¹û£º

ÔÚÉÏÀýÖÐÎÒÃÇʹÓõÄÒì²½Receive·½·¨£¬¶øÇҸ÷½·¨»á½«ÏûÏ¢¶ÓÁÐÖеÄÏûϢȡ³ö²¢É¾³ý£¬ËùÒÔÔÚ²Ù×÷Íê³ÉºóÏûÏ¢¶ÓÁÐÖеÄÏûÏ¢»áΪ¿Õ£¬ËùÒÔÔËÐкóµÄ¶ÓÁÐΪÏÂͼ£º

½áÓï
MQÊÇÒ»ÖÖÆóÒµ·þÎñµÄÏûÏ¢Öмä½Ú¼¼Êõ£¬ÕâÖÖ¼¼Êõ³£³£°éËæ×ÅÆóÒµ·þÎñ×ÜÏßÏ໥ʹÓ㬹¹³ÉÁËÆóÒµ·Ö²¼Ê½¿ª·¢µÄÒ»²¿·Ö£¬Èç¹û¿¼Âǵ½ÏûÏ¢µÄ·¢Ëͺʹ«ËÍÖ®¼äÊÇ¿ÉÒÔÏ໥²»ÁªÏµµÄ²¢ÇÒÐèÒª·Ö²¼Ê½¼Ü¹¹£¬Ôò¿ÉÒÔ¿¼ÂÇʹÓÃMQ×öÏûÏ¢µÄÖмä¼Û¼¼Êõ£¬MQµÄ¹¦ÄÜÒѾ×ã¹»¿ª·¢Ê¹Óᣵ«ÊǶÔÓÚ·Ö²¼Ê½¿ª·¢µÄ¼¼ÊõÖ»Á˽âMQÊÇÔ¶Ô¶²»×ã¹»µÄ£¬ÒòΪÔÚϵͳÖÐÍùÍù»áʵÏÖÏûÏ¢µÄ×Ô¶¯·¢ËͺͻñÈ¡£¬Èç¹ûÏëҪʵÏÖÏûÏ¢¶ÓÁеÄ×Ô¶¯²Ù×÷¾Í²»µÃ²»ËµËµWindows·þÎñÁË£¬ÏÂÎĽ«»á¶ÔWindows·þÎñ×öÏêϸµÄÌÖÂÛ¡£
|