在游æˆè¡Œä¸šä¸ï¼Œæ•°æ®åº“的稳定和性能直接影å“了游æˆè´¨é‡å’Œç”¨æˆ·æ»¡æ„度。在竞争激烈的游æˆå¸‚场ä¸ï¼Œä¸€ä¸ªä¼˜ç§€çš„æ•°æ®åº“产å“æ— ç–‘èƒ½ä¸ºæ¸¸æˆçš„å¼€å‘å’ŒåŽæœŸçš„è¿è¥å¥ 定良好的基础。伴éšç€MongoDB在ä¸åŒç±»åž‹æ¸¸æˆåœºæ™¯ä¸çš„应用越æ¥è¶Šå¹¿æ³›ï¼Œè®¸å¤šçŸ¥å的游æˆå…¬å¸éƒ½åœ¨ä½¿ç”¨MongoDBæ¥å¤„ç†ä»–们的游æˆæ•°æ®ã€‚
网易游æˆè‡ªæˆç«‹ä»¥æ¥ä¸Žå¹¿å¤§æ¸¸æˆçƒçˆ±è€…一åŒæˆé•¿ã€‚ç»è¿‡20年的快速å‘展,网易已跻身全çƒä¸ƒå¤§æ¸¸æˆå…¬å¸ä¹‹ä¸€ã€‚作为ä¸å›½é¢†å…ˆçš„游æˆå¼€å‘å…¬å¸ï¼Œç½‘易一直处于网络游æˆè‡ªä¸»ç ”å‘领域的å‰ç«¯ã€‚ç›®å‰åœ¨ç½‘易游æˆä¸ï¼ŒåŒ…括手游ã€ä¸šåŠ¡æ•°æ®ä¸å¿ƒä»¥åŠå…¶ä»–内部产å“ç‰åœ¨å†…的多项产å“都已广泛应用MongoDB。
综åˆè€ƒè™‘游æˆç”Ÿæ€ã€æž¶æž„ã€ç¨³å®šæ€§å’Œæˆæœ¬ç‰å› ç´ ï¼Œç½‘æ˜“æ¸¸æˆçš„æ•°æ®åº“架构采用了多类型æœåŠ¡æž¶æž„ï¼Œæ ¹æ®æ¸¸æˆåœ¨ä¸åŒçš„生命周期进行选型适é…。MongoDB支æŒå‰¯æœ¬é›†å’Œåˆ†ç‰‡é›†ç¾¤æ¨¡å¼ï¼Œå¯æ ¹æ®éœ€æ±‚进行水平扩展,选择åˆé€‚的分片ç–略和副本集设置,为网易游æˆæ供了çµæ´»æ€§å’Œé«˜å¯ç”¨æ€§çš„帮助。
如何有计划地分æžMongoDBæ•°æ®çš„过程行为以便产å“决ç–?
éšç€æ¸¸æˆè¡Œä¸šçš„ä¸æ–å‘展,游æˆæ•°æ®çš„规模和å¤æ‚性也在ä¸æ–å¢žåŠ ã€‚åœ¨æ¸¸æˆå¼€å‘过程ä¸è¿˜éœ€è¦è¿›è¡Œå¤§é‡çš„æ•°æ®åˆ†æžï¼Œç”¨ä»¥äº†è§£çŽ©å®¶è¡Œä¸ºã€ä¼˜åŒ–游æˆä½“验ã€åˆ¶å®šè¥é”€ç–ç•¥ç‰ã€‚
网易互娱数æ®åº“业务负责人郑良榉表示:“我们希望有计划地对MongoDB的过程行为数æ®è¿›è¡Œä½“系化分æžï¼Œå¹¶åº”用到常æ€åŒ–管ç†ä¸ï¼Œä»¥ä¾¿åœ¨ä¸ŽMongoDBæ•°æ®åº“交互的过程ä¸ï¼Œèƒ½å¤Ÿå¯¹æŒ‰éœ€è§¦å‘的业务进行实时å“应。â€
çµæ´»çš„文档模型,让数æ®åˆ†æžæ›´ä»Žå®¹
MongoDBçš„çµæ´»æ–‡æ¡£æ¨¡åž‹åœ¨å¤„ç†æ¸¸æˆä¸çš„å¤æ‚æ•°æ®ç»“构时表现尤为出色。游æˆå˜åœ¨ä¸åŒåœºæ™¯ä¸‹å¤§é‡çš„å…¨é‡æ›´æ–°å’Œå¢žé‡æ›´æ–°è¡Œä¸ºï¼Œæ¸¸æˆä¸åŒ…括玩家信æ¯ã€æ¸¸æˆçŠ¶æ€ã€ç‰©å“ä¿¡æ¯ç‰åœ¨å†…çš„æ•°æ®ç»“构会频ç¹å‘生å˜åŒ–,与æ¤åŒæ—¶ï¼Œä¼˜åŒ–å 比大的å—段还å¯èƒ½å¸¦æ¥å·¥ä½œè´Ÿè½½çš„更新。MongoDB采用文档å˜å‚¨çš„æ–¹å¼ï¼Œä½¿ç”¨JSONæ ¼å¼æ¥å˜å‚¨æ•°æ®ã€‚æ¯ä¸ªæ–‡æ¡£å¯ä»¥æœ‰ä¸åŒçš„å—段和结构,这使得它éžå¸¸é€‚åˆå¤„ç†æ¸¸æˆä¸çš„å¤æ‚æ•°æ®ã€‚通过使用MongoDB,游æˆå¼€å‘人员å¯ä»¥éšæ—¶æ·»åŠ 或修改å—段而ä¸éœ€è¦è¿›è¡Œå¤æ‚çš„æ•°æ®åº“è¿ç§»æ“作。
当è¿è¥éœ€è¦æŸ¥è¯çŽ©å®¶å馈时,比如游æˆä¸å‡ºçŽ°è£…备丢失ã€å±žæ€§ä¸å¯¹ã€éœ€è¦æŸ¥è¯å¥–励å‘放情况ç‰é—®é¢˜ï¼Œç½‘易游æˆå†…部对文档历å²åˆ†æžæ出了时效性(周期性)ã€å¯æŸ¥æ€§(å¯ç”¨æ€§)ã€å¯¹æ¯”性(å˜æ›´å·®å¼‚)å’ŒåŠæ—¶æ€§(oplogä¸å¸¦ç´¢å¼•ï¼‰çš„è¦æ±‚。这是一个既è¦åˆè¦çš„选择。MongoDB使用副本集æ¥å®žçŽ°æ•°æ®çš„冗余和高å¯ç”¨æ€§ï¼Œè€Œæ“作日志(oplogï¼‰æ˜¯å‰¯æœ¬é›†çš„æ ¸å¿ƒæœºåˆ¶ä¹‹ä¸€ã€‚ç½‘æ˜“æ¸¸æˆèƒ½å¤Ÿé€šè¿‡å‰¯æœ¬é›†ä¸çš„oplog实现了与原始文档数æ®è”动管ç†ï¼Œåœ¨ä¸»èŠ‚点å‘生故障时,å¯ä»¥æ ¹æ®oplogä¸çš„ä¿¡æ¯å¿«é€Ÿæ¢å¤æ•°æ®ï¼Œå®¡è®¡å¹¶æŽ’查问题。
多场景多应用,也能游刃有余
在一些特定的游æˆåœºæ™¯ä¸ï¼ŒåŽ†å²æ¦œå•ä¼šä¿å˜æ‰€æœ‰åœºæ¬¡çš„æ•°æ®ï¼Œå‘¨æœŸæ€§æ´»åŠ¨çš„副本战斗需è¦ç»“算,å•ä¸€çŽ©å®¶çš„æ•°æ®çŽ©æ³•ä¼šä¸æ–å åŠ ï¼ŒçŽ©å®¶çš„è£…å¤‡å±žæ€§ä¹Ÿä¼šè¶Šæ¥è¶Šå¤æ‚……诸如æ¤ç±»çš„大文档数æ®ä¼šæŒç»å¢žåŠ ,从而导致批é‡æ›´æ–°æ…¢ã€cache使用异常ã€é˜Ÿåˆ—ç‰å¾…é•¿ç‰é—®é¢˜ã€‚网易游æˆé€šè¿‡MongoDB的定期ã€è‡ªåŠ¨å·¡æ£€ï¼Œå¸®åŠ©äº§å“åŠæ—¶å‘现大文档潜在问题,例如数æ®åº“负载过高ã€è¯·æ±‚超时ã€å¼‚常错误ç‰ï¼Œä»Žè€Œé‡‡å–相应措施,规é¿çº¿ä¸Šè¿è¥é£Žé™©ã€‚
在游æˆè¿è¥æœŸé—´ï¼Œç´¢å¼•å¯¹äºŽæœåŠ¡çš„访问效率至关é‡è¦ï¼Œæ— 索引行为会导致实例负载å˜é«˜ï¼Œä¸¥é‡æ—¶ä¼šå¯¼è‡´æ•´ä¸ªè¯·æ±‚阻塞,影å“游æˆä½“验和æœåŠ¡ç¨³å®šæ€§ã€‚ä¾æ‰˜MongoDB,网易游æˆå¯¹äºŽäººå·¥æ—¥å¸¸çš„æ•°æ®æŸ¥è¯¢è¡Œä¸ºï¼Œåœ¨è®¿é—®å…¥å£ä»£ç 层é¢å®žçŽ°äº†å®žæ—¶ç´¢å¼•æ£€æµ‹ä¸ŽæŠ¥è¦ï¼Œç”¨æˆ·å¯ä»¥æ ¹æ®æ示是å¦ç»§ç»æŸ¥è¯¢è¡Œä¸ºã€‚åŒæ—¶åœ¨ç³»ç»Ÿå±‚é¢ï¼Œç”¨æˆ·è®¿é—®å¯æŒ‰å®žä¾‹çº§åˆ«é…置是å¦å…è®¸æ— ç´¢å¼•æŸ¥è¯¢ï¼Œä»¥è¿›ä¸€æ¥å‡å°‘éžé¢„期内的误æ“作行为。除了使用索引外,MongoDB还å¯ä»¥é€šè¿‡æŸ¥è¯¢ä¼˜åŒ–æ¥åŠ 速çƒç‚¹æ•°æ®çš„查询,进一æ¥æå‡QPS(æ¯ç§’查询推ç†å“应速度)。
游æˆè¿è¥ä¸ä¼šæœ‰ä¸€äº›çªå‘状况,比如高峰期å•ä¸€çŽ©æ³•å¼‚常导致请求çªå¢žã€æŸä¸ªæœåŠ¡å¡ä½å¯¼è‡´æ•´ä¸ªå®žä¾‹è¯·æ±‚阻塞ç‰ï¼Œæ¤æ—¶åˆ†æžåº“表级别的访问QPS(éžmongostatå’Œmongotopç»“æžœï¼‰å¯¹äºŽæ‰¾åˆ°å¼•èµ·é—®é¢˜çš„æ ¹å› ç‚¹è‡³å…³é‡è¦ã€‚借助于 MongoDB 的内置功能,网易游æˆå®žçŽ°äº†å®žæ—¶çš„库表 QPS 和访问延时采集以帮助产å“åŠæ—¶å‘现瓶颈点。æ¤å¤–,客户端行为的跟踪和分æžä¹Ÿèƒ½å¸®åŠ©ä¸šåŠ¡å‘现问题æ¥æºï¼Œå€ŸåŠ©MongoDBçš„CurrentOP功能,网易游æˆèƒ½å¤Ÿç»Ÿè®¡ä¸šåŠ¡å®¢æˆ·ç«¯å®žæ—¶ä¼šè¯æƒ…况,并针对当å‰å®žä¾‹èŠ‚点æ“作进行行为检索,还能追踪æŸä¸ªè¿žæŽ¥æ“作行为。
与æ¤åŒæ—¶ï¼Œåœ¨æ•°æ®è¿ç§»å’Œæ•°æ®åˆ†å¸ƒå¼‚常的情况下,MongoDB也能有效解决阻ç¢æŠ€æœ¯è´Ÿè´£äººæ‰§è¡Œçš„最大障ç¢â€”—大数æ®é‡çš„æ•°æ®åŒæ¥å·¥ä½œåŠè½åœ°åŽçš„æ•°æ®ç®¡ç†ï¼Œä»Žè€Œæå‡è¿ç»´æ•ˆçŽ‡ã€‚
郑良榉表示,MongoDB的接入åªæ˜¯ä¸€ä¸ªå¼€å§‹ï¼Œå¦‚何更好地贴近业务的使用需è¦é•¿æœŸçš„多场景实践ã€æŽ¢ç´¢ä¸Žæ€»ç»“,这也是当å‰æŒç»å‘展的方å‘。对MongoDBæ•°æ®è¡Œä¸ºçš„分æžèƒ½å¤Ÿå¸®åŠ©ç½‘易游æˆåœ¨æ•°æ®å†³ç–æ–¹é¢æ供有效å‚考,从而产生更大的收益和价值。
点击注册,å…费开始使用 MongoDB Atlas
Source: Read More