Page 183 - Nodejs 교과서 개정2판
P. 183

DMVTUFS







         DMVTUFS ݽٕ਷ ӝࠄ੸ਵ۽ यӖ ೐۽ࣁझ۽ ز੘ೞח ֢٘о $16 ௏যܳ ݽف ࢎਊೡ ࣻ ੓ѱ ೧઱ח ݽٕੑפ
         ׮  ನ౟ܳ ҕਬೞח ֢٘ ೐۽ࣁझܳ ৈ۞ ѐ ل ࣻب ੓ਵ޲۽  ਃ୒੉ ݆੉ ٜয৳ਸ ٸ ߽۳۽ प೯ػ ࢲߡ੄

         ѐࣻ݅ఀ ਃ୒੉ ࠙࢑غѱ ೡ ࣻ ੓णפ׮  ࢲߡী ޖܻо ؏ оѱ غח ࣅੑפ׮

         ৘ܳ ٜয ௏যо ৈؑ ѐੋ ࢲߡо ੓ਸ ٸ  ֢٘ח ࠁా ௏যܳ ೞա݅ ഝਊ೤פ׮  ೞ૑݅ DMVTUFS ݽٕਸ ࢸ

         ੿ೞৈ ௏য ೞա׼ ֢٘ ೐۽ࣁझ ೞաо جইоѱ ೡ ࣻ ੓णפ׮  ࢿמ੉ ԙ ৈؑ ߓо غח Ѫ਷ ইפ૑݅ ௏
         যܳ ೞա݅ ࢎਊೡ ٸী ࠺೧ ࢿמ੉ ѐࢶؾפ׮  ೞ૑݅ ੢੼݅ ੓ח Ѫ਷ ইפݴ  ݫݽܻܳ ҕਬೞ૑ ޅೞח
         ١੄ ױ੼ب ੓णפ׮  ࣁ࣌ਸ ݫݽܻী ੷੢ೞח ҃਋ ޙઁо ؼ ࣻ ੓णפ׮  ੉ח ۨ٣झ ١੄ ࢲߡܳ بੑೞ

         ৈ ೧Ѿೡ ࣻ ੓णפ׮

         TFSWFS  KTܳ ௿۞झఠ݂೧ࠁѷणפ׮


          cluster.js
           const	cluster	=	require('cluster');
           const	http	=	require('http');
           const	numCPUs	=	require('os').cpus().length;


           if	(cluster.isMaster)	{
           		console.log(`마스터	프로세스	아이디:	${process.pid}`);
           		//	CPU	개수만큼	워커를	생산
           		for	(let	i	=	0;	i	<	numCPUs;	i	+=	1)	{
           				cluster.fork();
           		}
           		//	워커가	종료되었을	때
           		cluster.on('exit',	(worker,	code,	signal)	=>	{
           				console.log(`${worker.process.pid}번	워커가	종료되었습니다.`);
           				console.log('code',	code,	'signal',	signal);
           		});
           }	else	{
           		//	워커들이	포트에서	대기
           		http.createServer((req,	res)	=>	{
           				res.writeHead(200,	{	'Content-Type':	'text/html;	charset=utf-8'	});
           				res.write('<h1>Hello	Node!</h1>');
           				res.end('<p>Hello	Cluster!</p>');
           		}).listen(8086);


           		console.log(`${process.pid}번	워커	실행`);
           }
   178   179   180   181   182   183   184   185   186   187   188