ÖøÃûÉç½»ÍøÕ¾LinkedInµÄJava¼Ü¹¹¼¼Êõ
Ç¿ÁÒÍÆ¼ö£ºÖøÃûÉç½»ÍøÕ¾LinkedInµÄJava¼Ü¹¹¼¼Êõ
ÔÚJavaOne 2008µÄ»áÒéÉÏ£¬ÖøÃûÉç½»ÍøÕ¾LinkedInµÄ¿ª·¢Õß×öÁË2¸ö¹ØÓÚLinkedIn
ÍøÕ¾µÄ¼Ü¹¹¼¼ÊõµÄÑݽ²£¬Ä¿Ç°ÕâÁ½¸öÑݽ²µÄPPTÒѾ¿ÉÒÔÏÂÔØÁË¡£ÏÂÔØµØÖ·ÈçÏ£º
LinkedIn - A Professional Social Network Built with Java™ Technologies and Agile Practices
LinkedIn Communication Architecture
ÐèҪע²á²Å¿ÉÒÔÏÂÔØ£¬ÄÜÏÂÔØPDF°æ±¾¡£
¿ÉÒÔ¿´Ò»ÏÂLinkedInÍøÕ¾µÄ»ù±¾Çé¿ö£º
1¡£2ǧ2°ÙÍòÓû§
2¡£Ã¿¸öÔÂ4°ÙÍò¶ÀÁ¢Óû§·ÃÎÊ
3¡£Ã¿Ìì4ǧÍòpage view
4¡£Ã¿Ìì2°ÙÍòËÑË÷Á÷Á¿
5¡£Ã¿Ìì25ÍòÑûÇë·¢ËÍ
6¡£Ã¿Ìì1°ÙÍòµÄ»Ø´ðÌá½»
7¡£Ã¿Ìì2°ÙÍòµÄemailÏûÏ¢·¢ËÍ
ÕâÊÇÒ»¸öÊÀ½ç¶¥¼â¼¶±ðÁ÷Á¿µÄÍøÕ¾ÁË£¬¿´¿´LinkedInµÄϵͳ¼Ü¹¹£º
* ²Ù×÷ϵͳ£ºSolaris (running on Sun x86 platform and Sparc)
* Ó¦Ó÷þÎñÆ÷£ºTomcat and Jetty as application servers
* Êý¾Ý¿â£ºOracle and MySQL as DBs
* ûÓÐORM£¬Ö±½ÓÓÃJDBC No ORM (such as Hibernate); they use straight JDBC
* ÓÃActiveMQÔÚ·¢ËÍJMS. (It’s partitioned by type of messages. Backed by MySQL.)
* ÓÃlucene×öËÑË÷Lucene as a foundation for search
* Spring×öÂß¼¼Ü¹¹Spring as glue
ÏÂÃæÊÇËæ×ÅÁ÷Á¿Ôö¼Ó£¬LinkedInµÄ¼Ü¹¹ÑÝ»¯£º
2003£2005
1¡£Ò»¸öÕûÌåµÄweb³ÌÐò£¬
2¡£Ò»¸öºËÐÄÊý¾Ý¿â£¬
3¡£ÔÚCloudÖлº´æËùÓÐnetworkͼ£¬CloudÊÇÓÃÀ´×ö»º´æµÄ¶ÀÁ¢server¡£
4¡£ÓÃlucene×öËÑË÷£¬Ò²ÅÜÔÚCloudÖС£
2006Äê
1¡£¸´ÖÆÁíÍâÒ»¸öÊý¾Ý¿â£¬¼õÉÙÖ±½ÓloadºËÐÄÊý¾Ý¿â£¬ÁíÍâÒ»¸öserverÀ´¹ÜÀí·ÇÖ»¶ÁÊý¾Ý¿âµÄÊý¾Ý¸üС£
2¡£°ÑËÑË÷´ÓCloudÖÐÒÆ³öÀ´£¬µ¥¶ÀÒ»¸öserverÅÜËÑË÷
3¡£Ôö¼ÓDatabusÊý¾Ý×ÜÏßÀ´¸üÐÂÊý¾Ý£¬ÕâÊÇͨ¹ý·Ö²¼Ê½¸üеĺËÐÄ×é¼þ£¬ÈκÎ×é¼þ¶¼ÐèÒªDatabus
2008Äê
1¡£WebApp²»ÔÙÈκÎÊÂÇé¶¼Ëü×Ô¼º×ö£¬°ÑÒµÎñÂß¼·Ö³ÉºÜ¶à²¿·Ö£¬Í¨¹ýserverȺÀ´×ö¡£WebAppÈÔÈ»ÌṩÓû§½çÃæ¸øÓû§£¬µ«ÊÇ£¬Í¨¹ýserverȺÀ´¹ÜÀíÓû§×ÊÁÏ£¬Ð¡×éµÈµÈ¡£
2¡£Ã¿¸ö·þÎñÓÐ×Ô¼ºµÄÓòÊý¾Ý¿â
3¡£Ðµļܹ¹ÔÊÐíÆäËûÓ¦ÓÃÁ´½ÓLinkedIn£¬±ÈÈçÔö¼ÓµÄÕÐÆ¸ºÍ¹ã¸æÒµÎñ¡£
The Cloud
1¡£CloudÊÇÕû¸ö¼Ü¹¹×îÖØÒªµÄ²¿·Ö£¬Õû¸öLinkedInµÄÍøÂçͼ¶¼»º´æÔÚCloudÀïÃæ
2¡£Cloud´óС£º22M nodes, 120M edges
3¡£ÐèÒª12GB RAM
4¡£ÔÚÉú²ú»·¾³Òª
Ïà¹ØÎĵµ£º
×î½üÓöµ½Ò»¸öÐèÇóÒªÔÚlinuxÏÂÓÃjava µ÷ÓÃmysql¿Í»§¶ËÔ¶³ÌµÇ½mysql·þÎñÆ÷£¬´Ó¿Í»§¶Ë»úÆ÷µ¼Èëmysql½Å±¾£¬´Ómysql·þÎñÆ÷¶Ëµ¼³ö±íÖеÄÊý¾Ý¡£ÒÔÏÂÊÇÓõ½µÄÖ÷Òª·½·¨£º
Java ´úÂë
/**
* µ¼ÈëÊý¾Ý
* @param ½Å±¾µÄµØÖ·ºÍÃû³Æ
* @return ÊÇ·ñ³ ......
import java.awt.*;
import javax.swing.*;
import java.util.Date;
import java.awt.*;
class Time extends JFrame implements Runnable{//ʵÏÖ½Ó¿Ú
Thread clockThread;
JLabel jLabel=new JLabel();
public Time()
{
Container con=this.getContentPane() ......
1.Listת»»³ÉΪÊý×é¡££¨ÕâÀïµÄListÊÇʵÌåÊÇArrayList)
µ÷ÓÃArrayListµÄtoArray·½·¨¡£
Àý£ºString[] arr = (String[])list.toArray(new String[size]);
2.Êý×éת»»³ÉΪList¡£
µ÷ÓÃArraysµÄasList·½·¨¡£
Àý£ºList stooges = Arrays.asList("Larry", "Moe", "Curly"); ......
ǰһÕóÔÚ¹«Ë¾ÀïʹÓà jconsle ʱһÇÐÕý³££¬È»¶øÔÚ¼ÒÖеĻúÆ÷ÉÏÈ´³öÏÖÁ˱êÌâËùʾµÄÎÊÌ⣺
jconsole ºÍ jps ÎÞ·¨ÏÔʾ±¾µØ Java ½ø³ÌÁÐ±í¡£
µ±Ê±Ö±½ÓÀûÓà -Dcom.sun.management.jmxremote.port=port Æô¶¯Ä¿±ê java ½ø³Ì£¬²¢ÔÚ jconsole ÖÐͨ¹ý localhost:port ·½Ê½³É¹¦Á¬½ÓÉÏÄ¿±ê java ½ø³Ì¡£ÓÐÁËÕâ¸ö work around Ö®ºó£¬¶ÔÕ ......
Java±à³ÌÄÇЩʶù52—·½·¨ÉùÃ÷
µÚÆßÕÂ ·½·¨
·½·¨µÄÀ´Ô´
·½·¨µÄ¸ÅÄîÀ´Ô´ÓÚÊýѧÉϵĺ¯Êý£¬ÔÚÊýѧÖУ¬µ±Êý¾Ý¾ßÓÐÒ»¶¨µÄ¹æÂÉʱ£¬¾ÍÊÇÓÃÒ»¸öº¯ÊýÀ´´úÂë¸ÃÊý×ֵĹæÂÉ£¬ÀýÈçf£¨n£©=nÔò´ú±í1¡¢2¡¢3¡¢……ÕâÑùµÄÒ»¸öÊýÁС£ÔÚÊýѧÉÏnÊDzÎÊý£¬¶ÔÓÚÈ·¶¨µÄnÖµÖ»ÓÐÒ»¸öf£¨n£©µÄÖµºÍËü¶ÔÓ¦
·½·¨ÊÇÒ»×éΪÁËʵÏÖÌØ¶¨¹¦Ä ......