ÕªÒª
Èç¹ûBOSSÒªÇóÄãÔÚ¶ÌÆÚÄÚ¿ìËÙʵÏÖÒ»Ì×ÁÄÌìÔÆ·þÎñƽ̨£¬ÊµÏֳɱ¾Ö÷ÒªÊÇ£º
1.Ҫά»¤Éç½»¹ØÏµ£¬Ò»´ó²¨½©Ê¬POJOÕýÔÚÏ®À´¡£
2.Òª´æ´¢Êý¾Ý¿â£¬ÕÒ¸öORM¹¤¾ß¡£
3.³¤Á¬½Ó°É·½ÃæÊÇWebSocket±ê×¼£¬Òà»òNetty¡¢MinaϵµÄ¿ò¼Ü¡£
4.Á¬½Ó¶ÏÁËÐèҪʵÏÖÏÂÖØÁ¬»úÖÆ°É£¿·þÎñÆ÷¶ËдÍêÁË»¹Óпͻ§¶Ë£¬Ò²ÐèÒª°ïÖúÖ¸µ¼ÏÂʵÏÖ£¬ÎÊÌâÖî¶à¡£
ÎÒÃǵÄÕ÷;ÊÇ͵ÀÁ
Èç¹ûÓÐÏֳɵÄÂÖ×Ó͵ÀÁµÄ»°£¬socket.io±È½ÏÊʺϣº
1.ÇáÁ¿¼¶¡¢À©Õ¹±ã½Ý¡¢API¼òµ¥Ò×Óá£
2.ÖܱßÍêÉÆ£¬ÖØÁ¬¡¢Â·ÓÉ¡¢¸ôÀë¡¢µ¥²¥¡¢¹ã²¥µÈ¶¼ÒÑʵÏÖ¡£
3.·á¸»µÄ¿Í»§¶ËÖ§³Ö£¬º¸ÇÁËä¯ÀÀÆ÷¶Ë¡¢Android¡¢iOS¡£
ÔÚ×ÐϸÑжÁÁËFlexi´«ÊÚÈçºÎ˵·þ×Ô¼ºµÄÀϰå²ÉÓÃNode.js£¬²¢³É¹¦Ëµ·þBOSSºó£¬Õýʽ¿ªÊ¼×Ô¼ºµÄNodeÖ®Âá£
¹¤ÓûÉÆÆäʱØÏÈÀûÆäÆ÷
¿ª·¢»·¾³
¶ÔÓÚ¿ª·¢»·¾³£¬ÎÞÂÛÄãÊÇʹÓÃ±à¼Æ÷/±à¼Æ÷Ö®Éñ£¬»òÊÇsublime/atom/nppÖ®À࣬Òà»òÊÇWebStorm¸ß¸»Ë§ÓÐÇ®ÈÎÐÔ£¬¶¼ÊǺܲ»´íµÄÑ¡Ôñ¡£
Supervisor¿ÉÒÔ°ïÄãwatch´úÂë±ä¸ü£¬×Ô¶¯ÖØÆô·þÎñ£¬´Ó¶ø½ÚÊ¡ÁËÊÖ¹¤ÖØÆô³ÌÐòµÄʱ¼ä¡£
¹ØÓÚµ÷ÊÔ
1.¸ß¸»Ë§¿î£ºWebStorm
2.¸ß±Æ¸ñ¿î£ºÔʼ´ò¶Ïµã
3.ŒÅË¿¿î£ºnode-inspector£¬¿ÉÒÔÔÚChromeÖÐÖ±½Óµ÷ÊÔ£¬Ç¿ÁÒÍÆ¼ö£º

Àë²»¿ªµÄÖмä¼þ
Ê×ÏÈ£¬¹´ÀÕ³öÒ»¸öºËÐĵÄÁÄÌìϵͳ´óÖµijûÐΣº
»ù±¾¹¦ÄÜ
1.¼¯ÈºÊµÏÖ
2.Ãô¸Ð´Ê¹ýÂË
ºÃÓÑ
1.¼ÓºÃÓÑ£¬É¾ºÃÓÑ
2.ºÃÓÑÖ®¼äÁÄÌ죬·¢ÎÄ×Ö·¢Í¼Æ¬·¢ÒôƵ·¢ÊÓÆµÉ¶µÄ
Ⱥ×é
1.´´½¨£¬¼ÓÈ룬Í˳öȺ×é
2.Ⱥ×éÄڹ㲥ÁÄÌì
ÁÄÌìÀúÊ·¼Ç¼
À©Õ¹ÓëÖܱß
1.¼¯ÈºÊµÏÖ
2.Ãô¸Ð´Ê¹ýÂË
·ÖÎöÏ´óÖÂÐèÒªµÄ´æ´¢²ãºÍÖмä¼þÒÔ¼°ÊÇ·ñÓÐÏà¹ØµÄNodeʵÏÖ£º
1.MySQL£º´æ´¢Ò»Ð©ÖØÒªµÄÔªÊý¾Ý£¬Ö÷ÒªÊÇÓû§¹ØÏµÀàµÄ£¬ÐèÒªÊÂÎñÖ§³Ö¡£(node-mysql)
2.ZooKeeper£ºÓû§ÔÚÏßÀëÏß״̬´æ´¢¡£(node-zookeeper-client)
3.Redis£ºÊ¹Óûº´æ¼ÓËÙһЩ²éѯ£¬PubSubÌØÐÔÓÃÓÚʵÏÖ¼¯ÈºÍ¨Ñ¶¡£(ioredis)
4.HBase£ºµäÐ͵ÄÁÐʽ´æ´¢£¬ÓÃÓÚʵÏÖһЩ·ÇºËÐÄÊý¾ÝµÄ¿ìËÙ´æ´¢²éѯ¡£(hbase-rpc-client)
5.LevelDB£º±¾µØ¿ìËÙ¶ÁдһЩ¼üÖµ¶Ô¡£(LevelUP)
¼¼ÊõÕ»
¶Ô±È
³£Äê×ÌÈóÔÚJavaÕâÆ¬ÈóÍÁÖ®ÉÏ£¬ÏÈÀ´×ö¸ö±È½Ï£¬ÈÃÎÒÃǶÔİÉúµÄ¼¼ÊõÕ»ÓÐËùÁ˽⡣

ES6
ES6ÊǸöºÃ¶«Î÷, ÎÒ¾õµÃ±È½ÏºÃÓõÄÈýµã£º
1.const: ¿ÉÒÔ·½±ãµØ¶Ô²»¿É±äµÄ¶«Î÷½øÐÐÉùÃ÷¡£
2.let: Ö»JavaScript³õѧÕß²»Óõ£ÓDz»Öª²»¾õ°Ñ±äÁ¿ÌáÉýµÄÎÊÌâ¡£
3.lambda±í´ïʽ: ÉñÆ÷¡£
ºËÐÄʵÏÖ
Á÷³ÌʱÐò
×Ðϸ˼¿¼£¬¹´ÀÕ³ö´óÖµÄʱÐòͼ£º

ϵͳ¼Ü¹¹£º
Éè¼ÆÏ´óÖµļܹ¹:

²½²½ÎªÓ®£¬¸÷¸ö»÷ÆÆ
״̬¹ÜÀí
µäÐ͵ÄIMϵͳÖбØÈ»´æÔÚÓû§ÔÚÏßÀëÏßµÄ״̬¡£Ã¿Ò»¸öÔÚÏß״̬£¬¶ÔÓÚ·þÎñÆ÷À´Ëµ£¬µÈ¼ÛÓÚÓë¿Í»§¶Ë´æÔÚÒ»¸öSocketÁ¬½Ó¡£ËùÒÔ¶ÔÓÚµ¥»ú»·¾³Ï£¬ÔÚÄÚ´æÖÐά»¤Óû§ºÍSocketµÄ¹ØÏµ¼´¿É£¬µ±SocketÁ¬½ÓºÍ¶Ï¿ªÊ±·Ö±ð×ö¸üвÙ×÷¡£µ±Çл»ÖÁ¼¯Èº»·¾³Ê±£¬Çé¿ö±äµÃÉÔ΢¸´ÔÓ£¬ËùÒÔÎÒÃÇÐèÒª½èÖúZooKeeperÀ´ÊµÏÖ¡£³ýÁ˱¾»úÿ¸öÓû§ÓëSocket¹ØÁª¹ØÏµ£¬ÁíÍâÒÔÁÙʱ½ÚµãµÄ·½Ê½ÔÚZooKeeperÖнøÐд洢£¬Ä¿Â¼½á¹¹Îª¸ù½Úµã/ÃüÃû¿Õ¼ä/Óû§±êʶ/Socket±êʶ£¨ÁÙʱ½Úµã£©¡£µ±socketÁ¬½Ó±»½¨Á¢µÄʱºò£¬´´½¨¶ÔÓ¦µÄÁÙʱ½Úµã£¬socket¶Ï¿ªÊ±ÒƳýÁÙʱ½Úµã¡£µ±·þÎñÆ÷ÒâÍâÍ˳öʱ£¬³ýÁËsocketÁ¬½ÓÈ«²¿¶Ï¿ªÖ®Í⣬ÔÚÆäZooKeeper sessionÉϵÄËùÓжÔÓ¦µÄÁÙʱ½ÚµãÒ²»á±»Ïú»Ù¡£SocketIOµÄÖØÁ¬»úÖÆ»á³¢ÊÔÖØÁ¬ÖÁÆäËûËÅ·þÆ÷²¢ÖØÐ½¨Á¢Æð¶ÔÓ¦¹ØÏµ¡£
Óŵ㣺
1.ÅжÏÒ»¸öÓû§ÊÇ·ñÔÚÏßÖ»ÐèÅжÏÓû§±êʶ½ÚµãµÄnumChildrenÊÇ·ñ´óÓÚÁã¼´¿É¡£
2.»ñÈ¡Óû§ËùÓÐÒÑÁ¬½ÓµÄSocketÖ»Ðè¶ÁÈ¡Óû§±êʶϵÄËùÓк¢×ӽڵ㼴¿É¡£
ȱµã£º
1.¶àÁ˶îÍâ¶ÁдZooKeeperµÄ¿ªÏú¡£
ÓÃ;£º
1.ʵÏÖ¼¯ÈºµÄ»ù´¡
2.ÓÐÁË״̬Åж¨²ÅÄÜʵÏÖÀëÏßÏûÏ¢ÍÆËÍ
ºÃÓѹØÏµ¡¢Èº×é¹ØÏµ
¹ØÏµ±íÔ±¾´æ´¢ÓÚHBase£¬µ«ÒòΪȱ·¦ÊÂÎñÖ§³Ö£¬Êµ¼ÊЧ¹û²»¼Ñ£¬¾³£µ¼Ö¹ØÏµ²»Ò»Ö¡£´«Í³¹ØÏµÐÍÊý¾Ý¿âÔÚÕâÒ»·½ÃæÒÀ¾ÉÇ¿ÊÆ¡£Õâ¿é±È½Ï¼òµ¥£¬¼´³£¼ûµÄ¹ØÏµÄ£ÐÍ±í£¬ÔÚ´ËÂÔ¹ý¡£
µã¶ÔµãÁÄÌìʵÏÖ
µ¥»ú
A¶ÔB·¢ËÍÏûÏ¢£¬³ýÁË»ù´¡µÄȨÏÞÅж¨£¬Ö»Ðè²éѯÄÚ´æ±íÖжÔÓ¦BµÄËùÓÐsocket£¬È»ºó¶ÔÆä·¢ÉäÏûÏ¢¼´¿É¡£¼ûÏÂͼ£º

¼¯Èº
ÓÉÓÚB¿ÉÄܵǼÔÚ²»Í¬µÄ·þÎñÆ÷ÉÏ£¬ÐèÒª½èÖúÏûÏ¢Öмä¼þ(Redis Pub/Sub)£¬·¢²¼ÏûÏ¢£¬Ã¿¸ö·þÎñÆ÷¶©ÔÄÏûÏ¢ÁÐ±í£¬Èç¹û´æÔÚÏûÏ¢½ÓÊÕÕߣ¬ÔòÕÒµ½Æä×¢²áÔÚ±¾»úµÄsocket½øÐз¢ÉäÏûÏ¢¡£Á÷³ÌÈçÏÂͼ£º

¹ã²¥ÁÄÌìʵÏÖ
¹ã²¥ÀàËÆÒÔÉϵĵã¶ÔµãʵÏÖ£¬Ö»ÊǶàÁËÒ»²½²éѯ³ÉÔ±±íÒÀ´Î´¦ÀíµÄ²½Öè¡£´Ë´¦ÂÔ¡£
ÁÄÌìÀúÊ·¼Ç¼µÄʵÏÖ
¿¼Âǵ½Ö»ÐèÒª¸ù¾Ýʱ¼ä·¶Î§×ö·ÖÒ³²éѯµÄ¼òµ¥ÐèÇó£¬ÕâÀïʹÓÃÁËHBaseµÄ¿í±í¡£µã¶ÔµãÐÎʽµÄÁÄÌìÎÒÃÇ¿ÉÒÔ¶ÔÁ½¸öÓû§±êʶ½øÐÐÅÅÐò£¬²¢½áºÏÃüÃû¿Õ¼äÉú³ÉΨһµÄ¹þÏ£Öµ£¬×÷ΪÐн¡£¬¶øÃ¿¸öCELLµÄÖµÔòÊÇʱ¼ä´Á£¬ÒòΪÎÒÃÇÐèÒªÁîÆä×ÔÈ»µ¹ÐòÅÅÁУ¬ËùÒÔÕë¶Ôʱ¼ä´Á×öÁËLONG¡£MAX-ʱ¼ä´ÁµÄ´¦Àí¡£×ÛºÏÆðÀ´£¬´óÖµĴ洢½á¹¹ÈçÏ£º

Ãô¸Ð´Ê¹ýÂË
ά»¤Ôà´Ê×ֵ䣬¶ÔÏûÏ¢½øÐÐ×Ö·û´®Ìæ»»£¿ÎªÁËʵÏÖÕýÈ·±æÈÏ“²Ü²ÙÔÚ²Ù³¡²ÙÃÀÅ®”Öе͝´Ê“²Ù”£¬ÐèҪʵÏÖÖÐÎķִʺʹÊÐÔÅжϣ¬ÓÚÊÇ´¦ÀíÂ߼ת±ä³É£º
1.ÀÈ¡×îеÄÔà´ÊÁÐ±í£¬×ª»»Îª¼òÌåÖÐÎIJ¢Ð´ÈëLevelDBÖС£
2.ʹÓÃnodejieba½øÐÐÖÐÎÄ·Ö´Ê£º²Ü²Ù(n)/ÔÚ(p)/²Ù³¡(n)/²Ù(v)/ÃÀÅ®(n)
3.¶Ô·Ö´ÊºóµÄÃû´ÊºÍ¶¯´Êת»»Îª¼òÌåÖÐÎIJ¢²éѯLevelDB£¬ÃüÖÐÔòÌæ»»¡£
4.·µ»ØÌæ»»ºóµÄ×Ö·û´®µÃµ½£º²Ü²ÙÔÚ²Ù³¡*ÃÀÅ®
´ò°ü²¿Êð
PM2
Node±¾ÉíÊǵ¥Ï̵߳ģ¬ËäÈ»Node±¾ÉíÌṩClusterÄ£¿é£¬µ«ÐèÒªÐ޸ĴúÂ롣ͨ¹ýPM2Õâ¸ö¹¤¾ß¿ÉÒÔ¼ò±ãµØÈÃÆä¶à½ø³Ì²¿Ê𣬳ä·ÖÀûÓöàºËCPU×ÊÔ´:

Docker
¿ÉÒÔʹÓùٷ½µÄnode¾µÏñ¡£µ«Ìå»ý±È½Ï´ó£¬ÕâÀïÍÆ¼ö»ùÓÚalpine-node£¬Ìå»ý±È½ÏСÇÉ£¬ÀýÈ磺
FROM mhart/alpine-node:4
RUN apk add --no-cache make gcc g++ python
RUN apk add --no-cache imagemagick
WORKDIR /src
ADD . .
RUN npm install --registry=http://registry.npm.taobao.org/
EXPOSE 3000
CMD ["npm","start"] |
C1000K²âÊÔ
ÖøÃûµÄµ¥»ú100ÍòÁ¬½Ó£¬ÓÉÓÚÏîÄ¿ÊǵÚÒ»¸ö°æ±¾£¬ÏÞÓÚ¸÷·½ÃæÔÒòÎÒÃÇÔÝʱûÓÐÍê³ÉÕâ¸ö²âÊÔ¡£µ«ÔÚÕâÀï¼ò¶Ì½éÉÜËùÐèµÄһЩÅäÖã¬ÒÔ±¸ºóÐøÊ¹Óãº
·þÎñÆ÷¶Ë
ÐÞ¸ÄtcpÁ¬½ÓµÄ×îСÄÚ´æÎª4k, ±à¼/etc/sysctl.conf
net.ipv4.tcp_wmem = 4096 87380 4161536
net.ipv4.tcp_rmem = 4096 87380 4161536
net.ipv4.tcp_mem = 786432 2097152 3145728 |
ÐÞ¸Äϵͳ×î´óÎļþÃèÊö·û, ±à¼/etc/sysctl.conf
Ð޸Ľø³Ì×î´óÎļþÃèÊö·û, ±à¼/etc/security/limits.conf
* hard nofile 1000000
* soft nofile 1000000
root hard nofile 1000000
root soft nofile 1000000 |
ÖØÔØÏÂÅäÖÃ(sysctl -p)»òÕßÖØÆô,¼ì²éϵ±Ç°µÄÉèÖà cat /proc/sys/fs/file-nr
*¿Í»§¶Ë
ÒòΪÿ¸öIP×î¶à¿ÉÒÔ´´½¨6Íò¶à¸öÁ¬½Ó£¬²»¿ÉÄÜÕҺܶà·þÎñÆ÷½øÐвâÊÔ¡£ËùÒÔ¿Í»§¶Ë³ýÁËÉÏÊöÐ޸쬻¹ÐèÒª´´½¨¶à¸öÐéÄâIP£¬ÕâÑùÿ¸öIP¿ÉÒÔÌṩ´óÔ¼6ÍòµÄÁ¬½Ó£¬Èç:
ifconfig eth0:0 192.168.77.10 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.77.11 netmask 255.255.255.0 up
ifconfig eth0:2 192.168.77.12 netmask 255.255.255.0 up
ifconfig eth0:3 192.168.77.13 netmask 255.255.255.0 up
ifconfig eth0:4 192.168.77.14 netmask 255.255.255.0 up
ifconfig eth0:5 192.168.77.15 netmask 255.255.255.0 up
ifconfig eth0:6 192.168.77.16 netmask 255.255.255.0 up
ifconfig eth0:7 192.168.77.17 netmask 255.255.255.0 up
ifconfig eth0:8 192.168.77.18 netmask 255.255.255.0 up
ifconfig eth0:9 192.168.77.19 netmask 255.255.255.0 up
ifconfig eth0:10 192.168.77.20 netmask 255.255.255.0 up
ifconfig eth0:11 192.168.77.21 netmask 255.255.255.0 up
ifconfig eth0:12 192.168.77.22 netmask 255.255.255.0 up
ifconfig eth0:13 192.168.77.23 netmask 255.255.255.0 up
ifconfig eth0:14 192.168.77.24 netmask 255.255.255.0 up
ifconfig eth0:15 192.168.77.25 netmask 255.255.255.0 up
ifconfig eth0:16 192.168.77.26 netmask 255.255.255.0 up
ifconfig eth0:17 192.168.77.27 netmask 255.255.255.0 up
ifconfig eth0:18 192.168.77.28 netmask 255.255.255.0 up |
Ð޸ı¾µØ¶Ë¿Ú·¶Î§,±à¼/etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65535
CMD ["npm","start"] |
ÖØÔØÅäÖûòÖØÆô¿ªÊ¼²âÊÔ
×ܽá
´æÔÚ¼´ºÏÀí£¬²»Òª¾íÈëÎÞνµÄÓïÑÔÖ®Õù£¬±¾Ô³¾õµÃ¸ÉÕâÐеÄ×îÖØÒªÄª¹ýÓÚѧϰÄÜÁ¦¡£
д´úÂë֮ǰÏÈÀíÇå³þ˼·ºÍ½á¹¹£¬²»´òûÓÐ×¼±¸µÄÕÌ¡£
Á¼ºÃµÄ´úÂë¹æ·¶£¬×ñÑKISSÔÔò¡£
|