Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½ÅäÖÃÖÐÐÄÑ¡ÐÍ
 
  4072  次浏览      28
 2020-6-8 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉܺͶԱÈÁ˼¸ÖÖ¿ªÔ´·Ö²¼Ê½ÅäÖÃÖÐÐĵÄÑ¡ÐÍ£¬²¢Öصã½éÉÜÁËÏÂÎÒÃÇ×îÖÕÑ¡ÔñµÄЯ³ÌApollo£¨°¢²¨ÂÞ£©·Ö²¼Ê½ÅäÖÃÖÐÐĵÄÌØÐԺͼòµ¥Ê¹ÓÃ.
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ëæ×ÅÒµÎñµÄ·¢Õ¹¡¢Î¢·þÎñ¼Ü¹¹µÄÉý¼¶£¬·þÎñµÄÊýÁ¿¡¢³ÌÐòµÄÅäÖÃÈÕÒæÔö¶à£¨¸÷ÖÖ΢·þÎñ¡¢¸÷ÖÖ·þÎñÆ÷µØÖ·¡¢¸÷ÖÖ²ÎÊý£©£¬´«Í³µÄÅäÖÃÎļþ·½Ê½ºÍÊý¾Ý¿âµÄ·½Ê½ÒÑÎÞ·¨Âú×㿪·¢ÈËÔ±¶ÔÅäÖùÜÀíµÄÒªÇó£º

°²È«ÐÔ£ºÅäÖøúËæÔ´´úÂë±£´æÔÚ´úÂë¿âÖУ¬ÈÝÒ×Ôì³ÉÅäÖÃй©¡£

ʱЧÐÔ£ºÐÞ¸ÄÅäÖã¬ÐèÒªÖØÆô·þÎñ²ÅÄÜÉúЧ¡£

¾ÖÏÞÐÔ£ºÎÞ·¨Ö§³Ö¶¯Ì¬µ÷Õû£ºÀýÈçÈÕÖ¾¿ª¹Ø¡¢¹¦ÄÜ¿ª¹Ø¡£

Òò´Ë£¬·Ö²¼Ê½ÅäÖÃÖÐÐÄÓ¦Ô˶øÉú£¡

¿ªÔ´ÏîÄ¿

¹ØÓÚ·Ö²¼Ê½ÅäÖÃÖÐÐÄ£¬ÍøÉÏÒѾ­Óкܶ࿪ԴµÄ½â¾ö·½°¸£¬ÀýÈ磺

Apollo

Apollo£¨°¢²¨ÂÞ£©ÊÇЯ³Ì¿ò¼Ü²¿ÃÅÑз¢µÄ·Ö²¼Ê½ÅäÖÃÖÐÐÄ£¬Äܹ»¼¯Öл¯¹ÜÀíÓ¦Óò»Í¬»·¾³¡¢²»Í¬¼¯ÈºµÄÅäÖã¬ÅäÖÃÐ޸ĺóÄܹ»ÊµÊ±ÍÆË͵½Ó¦Óöˣ¬²¢ÇҾ߱¸¹æ·¶µÄȨÏÞ¡¢Á÷³ÌÖÎÀíµÈÌØÐÔ£¬ÊÊÓÃÓÚ΢·þÎñÅäÖùÜÀí³¡¾°¡£

ÏîÄ¿µØÖ·

Diamond

DiamondÊÇÌÔ±¦Ñз¢µÄ·Ö²¼Ê½ÅäÖùÜÀíϵͳ¡£Ê¹ÓÃDiamond¿ÉÒÔÈü¯ÈºÖеķþÎñ½ø³Ì¶¯Ì¬¸ÐÖªÊý¾ÝµÄ±ä»¯£¬ÎÞÐèÖØÆô·þÎñ¾Í¿ÉÒÔʵÏÖÅäÖÃÊý¾ÝµÄ¸üС£

ÏîÄ¿µØÖ·

Disconf

רעÓÚ¸÷ÖÖ¡¸·Ö²¼Ê½ÏµÍ³ÅäÖùÜÀí¡¹µÄ¡¸Í¨ÓÃ×é¼þ¡¹ºÍ¡¸Í¨ÓÃÆ½Ì¨¡¹, ÌṩͳһµÄ¡¸ÅäÖùÜÀí·þÎñ¡¹

ÏîÄ¿µØÖ·

ÏîÄ¿¶Ô±È

×ۺ϶Աȣ¬¾õµÃЯ³ÌµÄApollo ¹¦ÄÜÇ¿´óÍêÉÆ£¬githubÉÏ¿ªÔ´ÉçÇø±È½Ï»îÔ¾£¬´úÂëÒ»Ö±ÔÚά»¤£¬¶øÇÒÎĵµÐ´µÃÇå³þ£¬¹Ê×îÖÕÑ¡ÔñApollo ×÷ΪÎÒÃǵķֲ¼Ê½ÅäÖÃÖÐÐÄ¡£ÏÂÃæ¼òÒª½éÉÜÏÂApolloÏîÄ¿¡£

Apollo¼ò½é

Apollo£¨°¢²¨ÂÞ£©ÊÇЯ³Ì¿ò¼Ü²¿ÃÅÑз¢µÄ·Ö²¼Ê½ÅäÖÃÖÐÐÄ£¬Äܹ»¼¯Öл¯¹ÜÀíÓ¦Óò»Í¬»·¾³¡¢²»Í¬¼¯ÈºµÄÅäÖã¬ÅäÖÃÐ޸ĺóÄܹ»ÊµÊ±ÍÆË͵½Ó¦Óöˣ¬²¢ÇҾ߱¸¹æ·¶µÄȨÏÞ¡¢Á÷³ÌÖÎÀíµÈÌØÐÔ£¬ÊÊÓÃÓÚ΢·þÎñÅäÖùÜÀí³¡¾°¡£

·þÎñ¶Ë»ùÓÚSpring BootºÍSpring Cloud¿ª·¢£¬´ò°üºó¿ÉÒÔÖ±½ÓÔËÐУ¬²»ÐèÒª¶îÍâ°²×°TomcatµÈÓ¦ÓÃÈÝÆ÷¡£

Java¿Í»§¶Ë²»ÒÀÀµÈκοò¼Ü£¬Äܹ»ÔËÐÐÓÚËùÓÐJavaÔËÐÐʱ»·¾³£¬Í¬Ê±¶ÔSpring/Spring Boot»·¾³Ò²ÓнϺõÄÖ§³Ö¡£

.Net¿Í»§¶Ë²»ÒÀÀµÈκοò¼Ü£¬Äܹ»ÔËÐÐÓÚËùÓÐ.NetÔËÐÐʱ»·¾³¡£

ÌØÐÔ

ͳһ¹ÜÀí²»Í¬»·¾³¡¢²»Í¬¼¯ÈºµÄÅäÖÃ

ApolloÌṩÁËÒ»¸öͳһ½çÃæ¼¯ÖÐʽ¹ÜÀí²»Í¬»·¾³£¨environment£©¡¢²»Í¬¼¯Èº£¨cluster£©¡¢²»Í¬ÃüÃû¿Õ¼ä£¨namespace£©µÄÅäÖá£

ͬһ·Ý´úÂ벿ÊðÔÚ²»Í¬µÄ¼¯Èº£¬¿ÉÒÔÓв»Í¬µÄÅäÖ㬱ÈÈçzookeeperµÄµØÖ·µÈ

ͨ¹ýÃüÃû¿Õ¼ä£¨namespace£©¿ÉÒԺܷ½±ãµØÖ§³Ö¶à¸ö²»Í¬Ó¦Óù²Ïíͬһ·ÝÅäÖã¬Í¬Ê±»¹ÔÊÐíÓ¦ÓöԹ²ÏíµÄÅäÖýøÐи²¸Ç

ÅäÖÃÐÞ¸ÄʵʱÉúЧ£¨ÈÈ·¢²¼£©

Óû§ÔÚApolloÐÞ¸ÄÍêÅäÖò¢·¢²¼ºó£¬¿Í»§¶ËÄÜʵʱ£¨1Ã룩½ÓÊÕµ½×îеÄÅäÖ㬲¢Í¨Öªµ½Ó¦ÓóÌÐò

°æ±¾·¢²¼¹ÜÀí

ËùÓеÄÅäÖ÷¢²¼¶¼Óа汾¸ÅÄ´Ó¶ø¿ÉÒÔ·½±ãµØÖ§³ÖÅäÖõĻعö

»Ò¶È·¢²¼

Ö§³ÖÅäÖõĻҶȷ¢²¼£¬±ÈÈçµãÁË·¢²¼ºó£¬Ö»¶Ô²¿·ÖÓ¦ÓÃʵÀýÉúЧ£¬µÈ¹Û²ìÒ»¶Îʱ¼äûÎÊÌâºóÔÙÍÆ¸øËùÓÐÓ¦ÓÃʵÀý

ȨÏÞ¹ÜÀí¡¢·¢²¼ÉóºË¡¢²Ù×÷Éó¼Æ

Ó¦ÓúÍÅäÖõĹÜÀí¶¼ÓÐÍêÉÆµÄȨÏÞ¹ÜÀí»úÖÆ£¬¶ÔÅäÖõĹÜÀí»¹·ÖΪÁ˱༭ºÍ·¢²¼Á½¸ö»·½Ú£¬´Ó¶ø¼õÉÙÈËΪµÄ´íÎó¡£

ËùÓеIJÙ×÷¶¼ÓÐÉó¼ÆÈÕÖ¾£¬¿ÉÒÔ·½±ãµØ×·×ÙÎÊÌâ

¿Í»§¶ËÅäÖÃÐÅÏ¢¼à¿Ø

¿ÉÒÔÔÚ½çÃæÉÏ·½±ãµØ¿´µ½ÅäÖÃÔÚ±»ÄÄЩʵÀýʹÓÃ

ÌṩJavaºÍ.NetÔ­Éú¿Í»§¶Ë

ÌṩÁËJavaºÍ.NetµÄÔ­Éú¿Í»§¶Ë£¬·½±ãÓ¦Óü¯³É

Ö§³ÖSpring Placeholder, AnnotationºÍSpring BootµÄConfigurationProperties£¬·½±ãÓ¦ÓÃʹÓã¨ÐèÒªSpring 3.1.1+£©

ͬʱÌṩÁËHttp½Ó¿Ú£¬·ÇJavaºÍ.NetÓ¦ÓÃÒ²¿ÉÒÔ·½±ãµØÊ¹ÓÃ

Ìṩ¿ª·Åƽ̨API

Apollo×ÔÉíÌṩÁ˱ȽÏÍêÉÆµÄͳһÅäÖùÜÀí½çÃæ£¬Ö§³Ö¶à»·¾³¡¢¶àÊý¾ÝÖÐÐÄÅäÖùÜÀí¡¢È¨ÏÞ¡¢Á÷³ÌÖÎÀíµÈÌØÐÔ¡£²»¹ýApollo³öÓÚͨÓÃÐÔ¿¼ÂÇ£¬²»»á¶ÔÅäÖõÄÐÞ¸Ä×ö¹ý¶àÏÞÖÆ£¬Ö»Òª·ûºÏ»ù±¾µÄ¸ñʽ¾ÍÄܱ£´æ£¬²»»áÕë¶Ô²»Í¬µÄÅäÖÃÖµ½øÐÐÕë¶ÔÐÔµÄУÑ飬ÈçÊý¾Ý¿âÓû§Ãû¡¢ÃÜÂ룬Redis·þÎñµØÖ·µÈ

¶ÔÓÚÕâÀàÓ¦ÓÃÅäÖã¬ApolloÖ§³ÖÓ¦Ó÷½Í¨¹ý¿ª·Åƽ̨APIÔÚApollo½øÐÐÅäÖõÄÐ޸ĺͷ¢²¼£¬²¢ÇҾ߱¸ÍêÉÆµÄÊÚȨºÍȨÏÞ¿ØÖÆ

²¿Êð¼òµ¥

ÅäÖÃÖÐÐÄ×÷Ϊ»ù´¡·þÎñ£¬¿ÉÓÃÐÔÒªÇó·Ç³£¸ß£¬Õâ¾ÍÒªÇóApollo¶ÔÍⲿÒÀÀµ¾¡¿ÉÄܵØÉÙ

ĿǰΨһµÄÍⲿÒÀÀµÊÇMySQL£¬ËùÒÔ²¿Êð·Ç³£¼òµ¥£¬Ö»Òª°²×°ºÃJavaºÍMySQL¾Í¿ÉÒÔÈÃApolloÅÜÆðÀ´

Apollo»¹ÌṩÁË´ò°ü½Å±¾£¬Ò»¼ü¾Í¿ÉÒÔÉú³ÉËùÓÐÐèÒªµÄ°²×°°ü£¬²¢ÇÒÖ§³Ö×Ô¶¨ÒåÔËÐÐʱ²ÎÊý

·¢²¼ÅäÖÃ

ͨ¹ýÅäÖÃÖÐÐÄ·¢²¼ÅäÖãº

Ìîд·¢²¼ÐÅÏ¢£º

¿Í»§¶Ë»ñÈ¡ÅäÖã¨Java APIÑùÀý£©

ÅäÖ÷¢²¼ºó£¬¾ÍÄÜÔÚ¿Í»§¶Ë»ñÈ¡µ½ÁË£¬ÒÔJavaΪÀý£¬»ñÈ¡ÅäÖõÄʾÀý´úÂëÈçÏ¡£Apollo¿Í»§¶Ë»¹Ö§³ÖºÍSpringÕûºÏ£¬¸ü¶à¿Í»§¶ËʹÓÃ˵Ã÷Çë²Î¼ûJava¿Í»§¶ËʹÓÃÖ¸ÄϺÍ.Net¿Í»§¶ËʹÓÃÖ¸ÄÏ¡£

Config config = ConfigService.getAppConfig();
Integer defaultRequestTimeout = 200;
Integer requestTimeout = config.getIntProperty ("requestTimeout", defaultRequestTimeout);

¿Í»§¶Ë¼àÌýÅäÖñ仯

ͨ¹ýÉÏÊö»ñÈ¡ÅäÖôúÂ룬ӦÓþÍÄÜʵʱ»ñÈ¡µ½×îеÄÅäÖÃÁË¡£

²»¹ýÔÚijЩ³¡¾°Ï£¬Ó¦Óû¹ÐèÒªÔÚÅäÖñ仯ʱ»ñµÃ֪ͨ£¬±ÈÈçÊý¾Ý¿âÁ¬½ÓµÄÇл»µÈ£¬ËùÒÔApollo»¹ÌṩÁ˼àÌýÅäÖñ仯µÄ¹¦ÄÜ£¬JavaʾÀýÈçÏ£º

Config config = ConfigService.getAppConfig();
config.addChangeListener (new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent changeEvent) {
for (String key : changeEvent.changedKeys()) {
ConfigChange change = changeEvent.getChange(key);
System.out.println (String.format(
"Found change - key: %s, oldValue: %s, newValue: %s, changeType: %s",
change.getPropertyName(), change.getOldValue(),
change.getNewValue(), change.getChangeType()));
}
}
});

Spring¼¯³ÉÑùÀý

ApolloºÍSpringÒ²¿ÉÒԺܷ½±ãµØ¼¯³É£¬Ö»ÐèÒª±ê×¢@EnableApolloConfigºó¾Í¿ÉÒÔͨ¹ý@Value»ñÈ¡ÅäÖÃÐÅÏ¢£º

@Configuration
@EnableApolloConfig
public class AppConfig {}

@Component
public class SomeBean {
//timeoutµÄÖµ»á×Ô¶¯¸üÐÂ
@Value("${request.timeout:200}")
private int timeout;
}

×ܽá

±¾ÎĽáÊø,ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔµ½¾ßÌåÏîÄ¿µÄ¹ÙÍø½øÐÐÏêϸÑо¿¡£

 
   
4072 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÿÈÕ¹¹½¨½â¾ö·½°¸
ÈçºÎÖÆ¶¨ÓÐЧµÄÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀíÖ÷Òª»î¶¯¼°ÊµÏÖ·½·¨
¹¹½¨¹ÜÀíÈëÃÅ
Ïà¹ØÎĵµ

ÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀí°×ƤÊé
CM09_CÅäÖùÜÀí±ê×¼
ʹÓÃSVN½øÐа汾¿ØÖÆ
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
gitÔ­Àíͼ½â
Git·ÖÖ§¹ÜÀíʵ¼ù
GitѧϰºÍÏîĿӦÓÃʵÀý
Git ÌìÌìÓà µ«ÊÇ Git Ô­ÀíÄãÁ˽âÂð£¿
¶Ô±È Git Óë SVN£¬ÕâÆª½²µÄºÜÒ×¶®
×îпγÌ
Git°æ±¾¿ØÖÆÏµÍ³
ÅäÖùÜÀíÓë³ÖÐø¼¯³Éʵ¼ù
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ßÓëÓ¦ÓÃ
³ÖÐø¼¯³ÉÓëÃô½Ý¿ª·¢
ÅäÖùÜÀíʵ¼ù£¨´Ó×éÖ¯¼¶µ½ÏîÄ¿¼¶£©
³É¹¦°¸Àý
ijµ¥Î»Ñз¢ÖÐÐÄ ²úÆ·¼¯³ÉÓë·þÎñƽ̨
ijµç×ÓÖÆÔìÉÌ ÅäÖùÜÀíÓë³ÖÐø¼¯³É
±±¾© ÅäÖùÜÀíÓë³ÖÐø¼¯³Éʵ¼ù
½ðÑÅÍØ ·Ö²¼Ê½³ÖÐø¼¯³É¹¤¾ßÁ´
±±¾© ³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù