|
ÀÁÐÀÊÀÄÀÁÐÀ (Òîæå ñàìîå íî â ÷èòàåìîì âèäå)
Ïhtlcnfdkz. Âfitve dybvfyb. j,pjh dscjrjehjdytdjq cbcntvyjq fh[bntrnehs cjwbfkmyjq ctnb www.campus.ru,
hfphf,jnrb rjvgfybb ÎÎÎ «Êhtfnbd Ìtlbf». Íf vjq dpukzl, lfyysq vfnthbfk
bynthtcty ntv, xnj gjpdjkztn jwtybnm ghbvtybvjcnm hfccvjnhtyys[
gjl[jljd b nt[yjkjubq d hfphf,jnrt bynthytn-htcehcjd. Ïj rhfqytq vtht,
rjulf yfif rjvgfybz yfxbyfkf ghjtrn «Êfvgec», vyt jxtym yt [dfnfkj
gjlj,yjq byajhvfwbb.
Ñjwbfkmyfz ctnm Campus.ru gjvjuftn irjkmybrfv b cneltynfv d gjcnhjtybb
b[ ,eleotq rfhmths gentv ghjdtltybz cgtwbfkmys[ rjyrehcjd jn rhegys[
rjvgfybq-hf,jnjlfntktq, jhufybpfwbb ghj[j;ltybz ghjbpdjlcndtyys[
ghfrnbr b j,exf.ob[ ctvbyfhjd, f nfr;t gjchtlcndjv ytj,[jlbvjuj
aeyrwbjyfkf lkz j,otybz, j,vtyf byajhvfwbb b eljdktndjhtybz lheub[
ext,ys[ ye;ls – yfghbvth, cjcnfdktybz ext,yjuj hfcgbcfybz. Ôeyrwbjyfk
Campus.ru ghtbveotcndtyyj gthtctrftncz c aeyrwbjyfkjv ghbdsxys[ lkz yfc
cjwbfkmys[ ctntq: pfhtubcnhbhjdfyyst gjkmpjdfntkb vjuen j,ofnmcz,
cj,bhfnmcz d cjj,otcndf, gbcfnm d ,kjub, hfpvtofnm ajnjuhfabb b n.l.
Îlyfrj, gjcrjkmre lfyyfz cjwbfkmyfz ctnm bpyfxfkmyj jhbtynbhjdfkfcm yf
irjkmybrjd b cneltynjd, ytrjnjhst dtob ,skb htfkbpjdfys cgtwbfkmyj c
extnjv gjnht,yjcntq exfob[cz, yfghbvth, «Óxt,ysq gjhnatkm» – gfgrf lkz
[hfytybz vfnthbfkjd, bkb «Ïkfyth» – cthdbc lkz cjcnfdktybz ext,yjuj
hfcgbcfybz.
Î,pjh cbcntvyjq fh[bntrnehs yfxytv c byajhvfwbb j njv, xnj Campus.ru
htfkbpjdfy yf gkfnajhvt Java. Ñelz gj j,otq cnfnbcnbrt, ds,jh gkfnajhvs
Java d rfxtcndt bycnhevtynf htfkbpfwbb vtlbqyjuj Web-htcehcf zdkztncz
ljcnfnjxyj ytcnfylfhnysv htitybtv, jlyfrj z ds,hfk bvtyyj 'ne gkfnajhve
bc[jlz bp cktle.ob[ cjj,hf;tybq:
• Ìjq ghtlsleobq jgsn hfphf,jnrb dscjrjyfuhe;tyys[, jnrfpjecnjqxbds[,
ujhbpjynfkmyj vfcinf,bhetvs[ ghbkj;tybq yf Java ,sk ecgtity.
• Java-cjj,otcndjv yfrjgktyf juhjvyfz rjljdfz ,fpf rfxtcndtyys[
,b,kbjntr b ahtqvdjhrjd c jnrhsnsv bc[jlysv rjljv, ghfrnbxtcrb yf dct
ckexfb ;bpyb.
• Ïhb ajhvbhjdfybb ghjtrnyjq rjvfyls «c yekz» yfqnb yf hsyrt nhelf
ytcrjkmrb[ gjl[jlzob[ Java-hfphf,jnxbrjd, j,kflf.ob[ ytj,[jlbvsv
ehjdytv rdfkbabrfwbb, jgsnjv rjvfylyjq hf,jns b pyfybzvb d j,kfcnb
gjybvfybz fh[bntrnehs ghjuhfvvyjuj j,tcgtxtybz (ÎÏÏ, Design Patterns)
ghjot, xtv, yfghbvth, lkz hf,jns c Ruby (n.r. 'njn zpsr, gj jgsne
rjkktu, tot yt ljcnfnjxyj ibhjrj hfcghjcnhfyty), bkb c PHP (gj
cj,cndtyyjve jgsne, ckbirjv vyjuj ybprjrdfkbabwbhjdfyys[ rflhjd, yf
jnctd rjnjhs[ e[jlzn ,tp ghtedtkbxtybz vtczws).
Ïhtlgjkfufz zpdbntkmyst rjvvtynfhbb, rfcf.obtcz ghjbpdjlbntkmyjcnb
Java-ghbkj;tybq, pfvtxe, xnj, ghbybvfz htitybt d gjkmpe Java, z zcyj
jcjpyfdfk, xnj JVM – yt cfvsq ,scnhsq b 'rjyjvbxysq bynthghtnfnjh.
Îlyfrj, dj-gthds[, JVM 6.0 ltqcndbntkmyj ljcnfnjxyj ghjbpdjlbntkty lkz
ye;l Web-ghbkj;tybz, f dj-dnjhs[, nhel ghjuhfvvbcnjd ctqxfc ljhj;t
cnjbvjcnb ;tktpf, gj'njve gjljkue bpj,htnfnm ljhjubt «dtkjcbgtls»,
rjnjhst gjpdjkz.n dsbuhfnm 5%-10% ghjbpdjlbntkmyjcnb, lkz cnfhnfgf ,skj
,s ythfpevyj. ß ghblth;bdf.cm ghbywbgf «kexit ,scnhj hf,jnfnm c
vbybvevjv rjlf b rhfcbdjq fh[bntrnehjq, xtv c'rjyjvbnm 10% ;tktpf b
edzpyenm d jnkflrt».
Îcyjdysv ahtqvdjhrjv ghjtrnf cnfk Tapestry 5. Âs,jh d gjkmpe Tapestry 5 ,sk cltkfy gj hzle ghbxby, jcyjdysvb bp rjnjhs[ zdkz.ncz:
• Tapestry gjpdjkztn gjkyjcnm. hfpltkbnm dthcnre b ghtptynfwbjyye.
kjubre. Ítn ytj,[jlbvjcnb lj,fdkznm d HTML cgtwbfkmyst ntub, yt
bynthghtnbhetvst ,hfepthjv, rfr d JSP. Ýnj jcj,tyyj df;yj, n.r.
Web-ghjtrn d ,jkmibycndt ckexftd gjlhfpevtdftn ckj;ye. dthcnre,
rjnjhfz, rfr ghfdbkj, dsgjkyztncz b gjllth;bdftncz jnltkmysv
cgtwbfkbcnjv. Êcnfnb, d gkfyt jgnbvbpfwbb dthcnrb vs cnfhfkbcm
cj,k.lfnm best practice.
• Ñjlth;bn hzl fh[bntrnehys[ htitybq, yfwtktyys[ yf dscjrjghjbpdjlbntkmye. hf,jne, yfghbvth, nfrb[ rfr Page Pool.
• Àltrdfnyfz b cnhjqyfz fh[bntrnehf ahtqvdjhrf, gjpdjkz.ofz
cjchtljnjxbnmcz yf ,bpytc-kjubrt ghbkj;tybz, f yt yf tuj rjyabuehfwbb b
byntuhbhjdfybb rjvgjytynjd lheu c lheujv, ,kfujlfhz ibhjrjve
bcgjkmpjdfyb. fyyjnfwbq b cjukfitybq j yfbvtyjdfybb, f nfr;t
dcnhjtyyjve IoC.
Ïjcrjkmre hfytt jgsnf hf,jns c Tapestry 5 yb e rjuj bp yfc yt ,skj, d
gthde. jxthtlm ,sk yfgbcfy ntcnjdsq ghjnjnbg ghbkj;tybz b dsgjkytyj tuj
yfuhepjxyjt ntcnbhjdfybt enbkbnjq JMeter.
Òtcnbhjdfybt gjrfpfkj ,scnhjt dhtvz jnrkbrf, cnf,bkmye. enbkbpfwb.
fggfhfnyjq gkfnajhvs b jncencndbt ,kjrbhjdjr, gjckt xtuj htitybt j,
bcgjkmpjdfybb Tapestry 5 ,skj jrjyxfntkmyj endth;ltyj.
Èc[jlz bp crfpfyyjuj dsit, dyenhtyyzz fh[bntrnehf Web-ghbkj;tybz
Campus.ru ghjlbrnjdfyf ghfdbkfvb hfphf,jnrb ghbkj;tybq gjl ahtqvdjhr
Tapestry 5.
Êhjvt Tapestry, yfit Web-ghbkj;tybt bcgjkmpetn cktle.obt ,b,kbjntrb:
• DOJO 1.0 – Javascript framework c AJAX
Âs,jh DOJO d rfxtcndt jcyjdyjuj Javascript-ahtqvdjhrf ,sk ghjlbrnjdfy
yfkbxbtv d ytv ,jkmijuj rjkbxtcndf ujnjds[ 'ktvtynjd eghfdktybz, d njv
xbckt dbl;tnjd, f nfr;t ntv, xnj DOJO gjpdjkztn dsgjkyznm dct cnbktdjt
ghtj,hfpjdfybt rjvgjytynjd yf cnjhjyt rkbtynf. Ïhb 'njv ghb gthdjv
j,hfotybb r htcehce pfuhe;ftncz b r'ibhe.ncz d ,hfeptht dct ytj,[jlbvst
CSS- b Java-crhbgns, f pfntv c cthdthf uhepzncz njkmrj HTML-cnhfybws c
hfpvtnrjq vbybvfkmyjuj j,]tvf. Ýnj pyfxbntkmyj cjrhfoftn nhfabr b
yfuhepre yf cthdth.
Êhjvt njuj, xnj ytvfkjdf;yj, e rjvfyls e;t ,sk jgsn hf,jns c DOJO ☺ Èp
nhelyjcntq – byntuhfwbjyye. xfcnm DOJO-Tapestry ghbikjcm bpj,htnfnm
cfvjcnjzntkmyj; d gthcgtrnbdt gkfybhetv jajhvbnm tt d dblt open
source-ghjtrnf b dskj;bnm d jnrhsnsq ljcneg.
• SwfUpload 2 – Javascript rjvgjytyn lkz pfuheprb afqkjd yf cthdth.
• Hibernate 3 – ORM Framework. Tapestry 5 ghjphfxyj byntuhbhetncz c Hibernate. Äkz vfggbyuf ceoyjcntq gjkmpetvcz fyyjnfwbzvb.
• Hibernate Search 3
– ldb;jr gjkyjntrcnjdjuj gjbcrf yf ,fpt Lucene. Ïjpdjkztn byltrcbhjdfnm
cjlth;bvjt ceoyjcntq Hibernate, elj,yj rjyabuehbhetncz fyyjnfwbzvb d
ceoyjcnz[. Ìj;tn hf,jnfnm d rkfcntht.
• Spring Security 2.0
– cbcntvf fentynbabrfwbb b fdnjhbpfwbb, ghjphfxyj byntuhbhetncz c
Tapestry 5, rjyabuehbhetncz fyyjnfwbzvb. Èvttn ibhjrbt djpvj;yjcnb, yj
gjl[jlzotuj yfv vt[fybpvf ACL lkz yfkj;tybz gthcjyfkmys[ ghfd ljcnegf
gjkmpjdfntkz r j,]trnfv ghtlvtnyjq j,kfcnb yt yfikjcm, ghbikjcm
ghblevsdfnm cdjq. Ïkfybhetv d gthcgtrnbdt dskj;bnm d dblt open source
ghjtrnf.
• Quartz 1.6
– gkfybhjdobr lkz dsgjkytybz ajyjds[ b fcby[hjyys[ jgthfwbq. Äkbntkmyst
jgthfwbb, nfrbt rfr hfccskrf gjxns, j,hf,jnrf afqkf yf cthdtht, b gh.
vs cnfhftvcz htfkbpjdfnm d dblt fcby[hjyyj dsgjkyz.otujcz ltqcndbz,
xnj,s yt ,kjrbhjdfnm bynthatqc gjkmpjdfntkz yf ljkujt dhtvz.
Ïhb elfxyjv cntxtybb j,cnjzntkmcnd rjkbxtcndj gjkmpjdfntktq (n.t.
rjkbxtcndj pfghjcjd) cjwbfkmyjq ctnb b j,]tv cdzpfyys[ c gjkmpjdfntkzvb
lfyys[ hfcntn kfdbyjj,hfpyj. Â cdzpb c 'nbv jxtym df;yj ,skj j,tcgtxbnm
ujhbpjnfkmyjt vfcinf,bhjdfybt cbcntvs, f nfr;t ljcnfnjxysq ehjdtym tt
jnrfpjecnjqxbdjcnb. Ýnb wtkb ,skb ljcnbuyens rfr pf cxtn yfkbxbz
bp,snjxys[ fggfhfnys[ cthdthjd lkz rhbnbxtcrb[ epkjd cbcntvs, nfr b pf
cxtn bcgjkmpjdfybz cgtwbfkmyjuj ghjuhfvvyjuj j,tcgtxtybz yf ehjdyt ÎÑ:
haproxy, hartbeat b gh. Òfr xnj fdfhbq b ,jktpytq hjcnf vs gjxnb yt
,jbvcz ☺
Êcnfnb, j ghjuhfvvyjv j,tcgtxtybb. Â cdjtq byahfcnherneht Êfvgec bcgjkmpetn:
• Nginx 0.6
– ,fkfycbhjdobr yfuheprb (HTTP-pfghjcjd) b HTTP-cthdth lkz jnlfxb
cnfnbxtcrjuj rjyntynf (Javascript, CSS, brjyrb b gh.). Áfkfycbhjdrf
HTTP-pfghjcjd yf cthdthf ghbkj;tybq Tomcat yfcnhjtyf nfrbv j,hfpjv,
xnj,s d ntxtybt jlyjq ctccbb dct pfghjcs jn jlyjuj gjkmpjdfntkz
gjgflfkb ,s yf jlby 'rptvgkzh cthdthf Tomcat. Òfrfz yfcnhjqrf
,fkfycbhjdrb yfuheprb yfpsdftncz sticky session. Ýnj cltkfyj lkz njuj
xnj,s yt htgkbwbhjdfnm ctccbb gjkmpjdfntktq vt;le cthdthfvb Tomcat.
Ïk.c – 'rjyjvbz htcehcjd b kbytqyjt ujhbpjynfkmyjt vfcinf,bhjdfybt.
Ìbyec – d ckexft jnrfpf cthdthf, gjkmpjdfntk. ghbltncz gthtkjubybnmcz
yf htcehct.
• JDK 6 – yf,jh chtlcnd hfphf,jnrb b dbhnefkmyfz java-vfibyf (JVM), yf ,fpt rjnjhjq hf,jnftn cthdth J2EE-ghbkj;tybq.
• Tomcat 6
– cthdth J2EE-ghbkj;tybq (J2EE rjyntqyth lkz Web-ghbkj;tybq). Ïjl tuj
eghfdktybtv hf,jnftn ghbkj;tybt Campus.ru. Ìs yt j,]tlbyzkb cthdthf
Tomcat d rkfcnth bp cjj,hf;tybq cj[hfytybz djpvj;yjcntq kbytqyjuj
ujhbpjynfkmyjuj vfcinf,bhjdfybz yf 'njv ehjdyt.
• PostgreSQL 8.3
– dthcbjyyfz ÑÓÁÄ. Âs,bhfkb vt;le MySQL b PostgreSQL. Îcnfyjdbkbcm yf
Postgres, ghjfyfkbpbhjdfd hfpkbxyst j,pjhs, ,kjub cgtwbfkbcnjd b
yfkbxbt enbkbn lkz rkfcnthbpfwbb ÑÓÁÄ.
• PgPool-II 3.4
– ,fkfycbhjdobr yfuheprb b htgkbrfnjh lfyys[, bcgjkmpetncz lkz
j,]tlbytybz d rkfcnth lde[ cthdthjd PostgreSQL. Çfghjcs yf bpvtytybt
lfyys[ jlyjdhtvtyyj yfghfdkz.ncz yf j,f cthdthf ÁÄ, f pfghjcs yf xntybt
– yf jlby bp cthdthjd gj jxthtlb. Òfrbv j,hfpjv, yfuheprf
hfcghtltkztncz vt;le ldevz vfibyfvb.
• PgBouncer 1.3
– kturjdtcyfz cbcntvf eghfdktybz gekfvb cjtlbytybq lkz PostgreSQL.
Îlyjdhtvtyyfz j,hf,jnrf pfghjcjd gjkmpjdfntktq ,jkmibv rjkbxtcndjv
cthdthjd ghbkj;tybq nht,etn gjllth;rb ,jkmijuj rjkbxtcndf cjtlbytybq c
ÁÄ. PgBouncer nhfnbn yf gjllth;fybt rf;ljuj cjtlbytybz jrjkj 2 Ê,
gfvznb, b ceotcndtyyj cybvftn yfuhepre c ÑÓÁÄ PostgreSQL. Òfrbv
j,hfpjv, JDBC-geks yf cthdthf[ Tomcat yfcnhjtys yf cjtlbytybt c
PgBouncer, f yt c PgPool. Äjgjkybntkmysv gk.cjv zdkztncz nj, xnj d
ckexft rhfnrjdhtvtyyjq ytljcnegyjcnb ÁÄ (yfghbvth, ghb ,scnhjv
gthtpfgecrt) PgBouncer ,eltn ghjljk;fnm gjgsnrb jceotcndbnm cjtlbytybt
c ÁÄ, b tckb 'nj gjkexbncz lj yfcnegktybz ecnfyjdktyyjuj nfqv-fenf, nj
cthdthf ghbkj;tybq lf;t yt epyf.n j njv, xnj ÁÄ ,skf dhtvtyyj
ytljcnegyf.
• ActiveMQ 5.2
– JMS-cthdth. Ècgjkmpetncz lkz fcby[hjyyjuj j,vtyf JMS-cjj,otybzvb d
cbcntvt gjkyjntrcnjdjuj gjbcrf Hibernate Search, crjyabuehbhjdfyyjq d
ht;bvt JMS Master/Slave configuration (gjlhj,yjcnb pltcm). Òfr;t bcgjkmpetncz lkz j,vtyf byajhvfwbtq c gjlcbcntvjq fcby[hjyyjuj dsgjkytybz pflfx yf ,fpt ahtqvdjhrf Quartz.
• Sendmail – dctv bpdtcnysq gjxnjdsq cthdth. Ècgjkmpetv lkz hfccskjr.
• Zabbix 1.6
– cbcntvf vjybnjhbyuf cbcntvyjq byahfcnhernehs. Îceotcndkztn vjybnjhbyu
cjcnjzybz JVM, Tomcat gj ghjnjrjke JMX xthtp bynthatqcs MBeans.
Átcgkfnyj vjybnjhbn lj 30 [jcnjd.
• Smssend
– gfrtn lkz FreeBSD, gjpdjkz.obq jnghfdkznm SMS. Ècgjkmpetv lkz
jnghfdrb SMS-cjj,otybq cbcntvyjve flvbybcnhfnjhe j ghj,ktvf[ yf htcehct.
• Chandler Server
– Open source Web-ghbkj;tybt, ghtlcnfdkz.ott cj,jq rfktylfhysq cthdth,
j,of.obqcz c dytiybv vbhjv gj jnrhsnjve ghjnjrjke CalDav. ×nj,s yt
bpj,htnfnm dtkjcbgtl, vs bcgjkmpetv lfyysq cthdth d yfitv cthdbct
«Ïkfyth» lkz [hfytybz hfcgbcfybq cj,snbq gjkmpjdfntktq b cjj,otcnd.
• Amazone S3
– bcgjkmpetncz lkz yflt;yjuj [hfytybz afqkjd gjkmpjdfntktq. Êhjvt njuj,
bcgjkmpjdfybt lfyyjuj cthdbcf gjvjuftn cyznm yfuhepre c cthdthjd
ghbkj;tybq, n.r. afqks crfxbdf.ncz gjkmpjdfntkzvb yfghzve. c cthdthjd
Àvfpjyf. Ìtnflfyyst afqkjd ghb 'njv [hfyzncz d ÁÄ «Êfvgecf».
Äkz hf,jns c Àvfpjyjv tcnm rkbtyncrjt Java API. Ñthdbc gkfnysq, yj lkz jhufybpfwbb yt ljhjujq. Åckb htibnt jhufybpjdsdfnm xnj-nj gjlj,yjt cdjbvb cbkfvb, htrjvtyle. MogileFS, r ytq nj;t tcnm Java API.
• Fotki.com – ajnj-[jcnbyu yfib[ gfhnythjd, j,tcgtxbdf.obq [hfytybt b
rjydthnbhjdfybt ajnjuhfabq, pfuhe;ftvs[ gjkmpjdfntkzvb d ajnjfkm,jvs.
Çfuheprf ajnjuhfabq d ,hfepth jgznm ;t ghjbc[jlbn yfghzve. c cthdthjd
ajnj[jcnbyuf, xnj cybvftn yfuhepre c cthdthjd ghbkj;tybq Campus.ru.
Åckb ,s ghbikjcm rjydthnbhjdfnm ajnj cfvbv, z ,s, yfdthyjt, cvjnhtk d
cnjhjye ImageMagick, Java API nfr;t ghbkfuftncz.
Âct dvtcnt 'nj hf,jnftn cktle.obv j,hfpjv:
1) Çfghjc gjkmpjdfntkz gjgflftn yf cthdth ,fkfycbhjdobrf yfuheprb.
Nginx ghjdthztn, tcnm kb d pfghjct pfujkjdjr, cjlth;fobq byajhvfwb. j
ghbdzprt gjkmpjdfntkz r jlyjve bp cthdthjd Tomcat. Åckb ytn, nj nfrjq
pfujkjdjr lj,fdkztncz, b pfghjc gthtyfghfdkztncz yf cjjndtncnde.obq
cthdth Tomcat. Ïthdbxyj cthdth ds,bhftncz gj ghbywbge round-robin. Ýnjn
vt[fybpv j,tcgtxbdftn sticky session.
2) Íf cthdtht Tomcat utythbhetncz lbyfvbxtcrbq rjyntyn lkz
HTML-cnhfybws, gj cenb – njkmrj lfyyst, c vbybvfkmyjq cnbktdjq
hfpvtnrjq. Åckb lkz utythfwbb cnhfybws nht,e.ncz lfyyst bp ÁÄ,
ghbkj;tybt Campus.ru ,thtn cjtlbytybt bp JDBC-gekf lfyyjuj cthdthf.
Ñjtlbytybz d JDBC-gekt jceotcndkz.ncz c PgBouncer, rjnjhsq, d cdj.
jxthtlm, ecnfyfdkbdftn cjtlbytybt c PgPool, f PgPool – c PostgreSQL.
Ïjcrjkmre ghjwtcc ecnfyjdrb cjtlbytybq d JDBC-gekt ghjbc[jlbn chfpe ghb
cnfhnt cthdthf Tomcat, nj dj dhtvz hf,jns ghbkj;tybz gjkextybt
cjtlbytybz bp gekf hf,jnftn jxtym ,scnhj.
3) Åckb pfghjc gjkmpjdfntkz vtyztn exfcnde.oe. d gjkyjntrcjdjv gjbcrt
byajhvfwb., nj ghbkj;tybt jnghfdkztn JMS-cjj,otybt gjbcrjdjve cthdthe
Master Node, jndtxf.otve pf cby[hjybpfwb. gjkyjntrcnjds[ byltrcjd yf
rf;ljv bp epkjd rkfcnthf.
4) Êjyntyn HTML-cnhfybws djpdhfoftncz d ,hfepth gjkmpjdfntkz. Ïjckt
'njuj ,hfepth gjkmpjdfntkz yfxbyftn pfuhe;fnm cnfnbxtcrbq rjyntyn
(Javascript, CSS, bpj,hf;tybz) c cthdthf Nginx, tckb 'njn rjyntyn tot
yt pfr'ibhjdfy ,hfepthjv, f nfr;t ajnjuhfabb b fdfnfhs c dytiyb[
cthdthjd ajnj[jcnbyuf.
5) Áhfepth gjkmpjdfntkz ghbvtyztn CSS- b Javascript-ghtj,hfpjdfybz r
pfuhe;tyyjve DOM-lthtde b d bnjut jnhbcjdsdftn gjkmpjdfntk. ujnjde.
cnhfybwe.
Äfyyfz c[tvf gjpdjkztn, dj-gthds[, cybpbnm yfuhepre yf cthdth
ghbkj;tybq b vbybvbpbhjdfnm nhfabr, f, dj-dnjhs[, ecrjhbnm j,oe.
pfuhepre cnhfybws pf cxtn ghtjljktybz juhfybxtybz ,hfepthf,
gjpdjkz.otuj pfuhe;fnm lfyyst njkmrj gj xtnshtv gjnjrfv jlyjdhtvtyyj c
jlyjuj htcehcf. Î,hfnyjq cnjhjyjq vtlfkb zdkztncz gj,jxysq 'aatrn,
yf,k.lftvsq yf cnfhs[ ,hfepthf[ nbgf IE 6, rjnjhst yt ecgtdf.n
ghbvtybnm dct lbyfvbxtcrbt cnbktdst ghtj,hfpjdfybz r cnhfybwt lj
vjvtynf tt jnj,hf;tybz, bp-pf xtuj gjkmpjdfntkm vj;tn yf,k.lfnm, rfr
rhbdfz cnhfybxrf e ytuj yf ukfpf[ ghtdhfoftncz d rhfcbde.. Êhjvt njuj,
gthdjyfxfkmyfz pfuheprf dct[ CSS- b Java-crhbgnjd yf vtlktyys[ rfyfkf[
vj;tn gjnht,jdfnm ytrjnjhjuj dhtvtyb.
Êcnfnb, nen dcgjvybkfcm ghj,ktvf c j,yjdktybtv pfr'ibhjdfyyjuj
cnfnbxtcrjuj rjyntynf (CSS, JS) d ,hfeptht gjkmpjdfntkz. Äkz tt htitybz
vs lj,fdkztv d URL cnfnbxtcrjuj htcehcf yjvth tuj dthcbb. Åckb d
crhbgns dyjczncz bpvtytybz, vtyztncz yjvth b[ dthcbb d URL, b ,hfepth
dsrfxbdftn c cthdthf j,yjdktyyst afqks.
×nj,s crfpfyyjt dsit ktuxt ekj;bkjcm d ujkjdt, yf hbceyrt bpj,hf;tyf
dscjrjehjdytdfz lbfuhfvvf hfpdthnsdfybz Web-ghbkj;tybz Campus.ru. ×nj,s
yt eckj;yznm lbfuhfvve, ytrjnjhst cdzpb vt;le rjvgjytynfvb yt
bpj,hf;tys.
Figure 1. Äbfuhfvvf hfpdthnsdfybz Campus.ru
Îgsn gjrfpsdftn, xnj JVM 'aatrnbdyj hf,jnftn c j,]tvfvb gfvznb lj 2 Ã,,
c extnjv htrjvtylfwbb, ujdjhzotq, xnj yf rf;lsq 'rptvgkzh JVM yf
cthdtht ljk;yj ghb[jlbnmcz, gj vtymitq vtht, ldf zlhf ghjwtccjhf. Èp
'nb[ cjj,hf;tybq, yf rf;ljv fggfhfnyjv cthdtht ,skb hfpdthyens gj 4
'rptvgkzhf cthdthjd ghbkj;tybq Tomcat. Â rf;ljv rjyntqytht Tomcat ,skb
hfpdthyens Web-ghbkj;tybz Campus b Chandler. Ífuhexyjt ntcnbhjdfybt
gjrfpfkj, xnj ghb ghjbpdtltyys[ yfcnhjqrf[ GC, lfyyfz rjyabuehfwbz
gjpdjkztn ghfrnbxtcrb kbytqyj enbkbpbhjdfnm fggfhfnyst htcehcs ghb
hjcnt yfuheprb b dslfdfnm ghb 'njv ghbtvktvsq htpekmnfn gj dhtvtyb
jnrkbrf.
Íf dct[ fggfhfnys[ cthdthf[ ghbkj;tybz hf,jnf.n gjl eghfdktybtv ÎÑ
FreeBSD 7.1. Âs,jh d gjkmpe FreeBSD, f yt Linux, ,sk cltkfy gjnjve, xnj
ghb ghjxb[ hfdys[, dct Ëbyercs bvt.n cdjb jcj,tyyjcnb, b cbcntvysv
flvbybcnhfnjhfv ,skj ,s ckj;ytt gthtlfdfnm pyfybz lheu lheue. Ó yfc d
rjvgfybb dct ghjtrns gjrf hf,jnf.n yf FreeBSD, gj'njve jy cnfk ytxnj
dhjlt rjhgjhfnbdyjuj cnfylfhnf. Èp vbyecjd FreeBSD d Java-ghjtrnt – Sun
yt dsgecrftn JDK lkz FreeBSD, f gjhns gjl FreeBSD pfgfplsdf.n
jnyjcbntkmyj j,yjdktybq Sun. Òfr;t d gjhnf[ JDK tcnm yt dct jnkfljxyst
enbkbns.
Înrfpjecnjqxbdjcnm yf cthdthf[-,fkfycbhjdobrf[ yfuheprb htfkbpjdfyf gjchtlcndjv enbkbns HAProxy.
Àggfhfnyst cthdthf «Êfvgecf» bvt.n cktle.oe. rjyabuehfwb.:
1) Ñthdthf lkz ,fkfycbhjdrb yfuheprb b jnlfxb cnfnbxtcrjuj rjyntynf:
CPU Intel Xeon Dual Core 2.67GHz RAM DDR 2 8Gb HDD 4xSAS 73gb 15000 rpm
2) Ñthdthf lkz hfpdthnsdfybz Web-ghbkj;tybz:
CPU 2xIntel Xeon Quad Core 2.66GHz RAM DDR 2 16Gb HDD 4xSATA 300gb 15000 rpm
Ãkfdysq ghbywbg ghb ds,jht cthdthf lkz Web-ghbkj;tybz – xtv ,jkmit zlth/ghjwtccjhjd b jgthfnbdyjq gfvznb – ntv kexit.
3) Ñthdthf lkz ÁÄ:
CPU 2xIntel Xeon Quad Core 2.66 GHz RAM DDR 2 16Gb HDD 8xSAS 147gb 15000 rpm
Ãkfdysq ghbywbg ghb ds,jht cthdthf lkz ÁÄ c hfcxtnjv yf hf,jne c
,jkmibvb j,]tvfvb lfyys[ – xtv ,jkmit lbcrjd b xtv jyb ,scnhtt, ntv
kexit. Î,zpfntkmyj yfkbxbt fggfhfnyjuj RAID. Çfntv gj ghbjhbntnfv bltn
jgthfnbdyfz gfvznm, pf ybvb – ghjwtccjhs.
Ñthdthf [jcnzncz d lfnf-wtynht rhegyjuj vjcrjdcrjuj bynthytn-ghjdfqlthf pf fggfhfnysv afqhdjkjv jn Cisco.
 pfrk.xtybt [jxtncz crfpfnm, xnj, ytcvjhz yf ,jkmibt j,]tvs
ghjltkfyyjq hf,jns, yfv tot tcnm xnj cjdthitycndjdfnm. Ífghbvth, d
cdzpb c ds[jljv IE 8 vs yfvtnbkb ,jktpytyysq gtht[jl yf DOJO 1.3. Òfr;t
vs gkfybhetv cltkfnm dthcnre cfqnf ,jktt kturjq (e,hfd ntyb,
gjkeghjphfxyjcnm b kbiybt jrheukjcnb) d cdzpb c ntv, xnj exfobtcz d
htubjyf[ gj afrne bvt.n d irjkf[/depf[ rfyfk d 128Ê,bn/ctr b IÅ 6. Â
cfvs[ ,kb;fqib[ gkfyf[ htfkbpjdfnm r'ibhjdfybt lfyys[ yf ,fpt
ghjdthtyyjuj hfcghtltktyyjuj r'if Memcached.
Òfr;t e yfc yf ctujlyziybq ltym yt htity djghjc ifhlbyuf lfyys[, tckb
dlheu j,]tv lfyys[ yfxytn euhj;f.ot hfcnb. Ïj'njve d gthcgtrnbdt vs
yfvthtys bccktljdfnm Hibernate Shards, PLProxy b lheubt chtlcndf. Åckb
e rjuj-nj tcnm ghfrnbxtcrbq jgsn b ;tkfybt bv gjltkbnmcz – ,ele jxtym
hfl.
 cktle.otq cnfnmt, tckb gjllth;bnt, z gkfybhe. hfccrfpfnm j, eghfdktybb ghjtrnjv «Êfvgec» b j yfitq rjvfylt ☺
Ñgfcb,j pf dybvfybt!
Òt[ybxtcrbq lbhtrnjh ÎÎÎ «Êhtfnbd Ìtlbf»
Ñthutq Ñtljd
Îge,kbrjdfyj c hfphtitybz Ãtythfkmyjuj lbhtrnjhf rjvgfybb ÎÎÎ «Êhtfnbd Ìtlbf» Èdfyf Ñjrjkjdf
|
|