13
13
import cn .springcloud .gray .core .GrayManager ;
14
14
import cn .springcloud .gray .core .InformationClient ;
15
15
import cn .springcloud .gray .decision .DefaultGrayDecisionFactory ;
16
- import com .netflix .appinfo .EurekaInstanceConfig ;
17
- import com .netflix .discovery .EurekaClient ;
16
+ import cn .springcloud .gray .utils .ServiceUtil ;
18
17
import org .springframework .beans .factory .annotation .Autowired ;
19
18
import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
20
19
import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
21
20
import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
22
21
import org .springframework .boot .context .properties .EnableConfigurationProperties ;
22
+ import org .springframework .cloud .client .serviceregistry .Registration ;
23
23
import org .springframework .cloud .netflix .ribbon .RibbonClients ;
24
+ import org .springframework .context .ApplicationContext ;
24
25
import org .springframework .context .annotation .Bean ;
25
26
import org .springframework .context .annotation .Configuration ;
26
27
import org .springframework .core .annotation .Order ;
@@ -54,16 +55,21 @@ public GrayClientInitializingBean grayClientInitializingBean() {
54
55
55
56
56
57
@ Bean
57
- public InstanceLocalInfo instanceLocalInfo (@ Autowired EurekaClient eurekaClient ) {
58
- EurekaInstanceConfig instanceConfig = eurekaClient .getApplicationInfoManager ().getEurekaInstanceConfig ();
58
+ @ ConditionalOnMissingBean
59
+ public InstanceLocalInfo instanceLocalInfo (@ Autowired ApplicationContext context ,
60
+ @ Autowired Registration registration ) {
61
+ String instanceId = ServiceUtil .getInstanceId (registration );
62
+ if (null == instanceId ){
63
+ context .getId ();
64
+ }
65
+
59
66
InstanceLocalInfo localInfo = new InstanceLocalInfo ();
60
- localInfo .setInstanceId (instanceConfig . getInstanceId () );
61
- localInfo .setServiceId (instanceConfig . getAppname ());
67
+ localInfo .setInstanceId (instanceId );
68
+ localInfo .setServiceId (registration . getServiceId ());
62
69
localInfo .setGray (false );
63
70
return localInfo ;
64
71
}
65
72
66
-
67
73
@ Bean
68
74
@ ConditionalOnMissingBean
69
75
public GrayDecisionFactory grayDecisionFactory () {
@@ -72,14 +78,16 @@ public GrayDecisionFactory grayDecisionFactory() {
72
78
73
79
74
80
@ Configuration
75
- @ ConditionalOnProperty (prefix = "gray.client" , value = "information-client" , havingValue = "http" , matchIfMissing = true )
81
+ @ ConditionalOnProperty (prefix = "gray.client" , value = "information-client" , havingValue = "http" , matchIfMissing
82
+ = true )
76
83
public static class HttpGrayManagerClientConfiguration {
77
84
@ Autowired
78
85
private GrayClientProperties grayClientProperties ;
79
86
80
87
@ Bean
81
88
public InformationClient informationClient () {
82
- InformationClient client = new HttpInformationClient (grayClientProperties .getServerUrl (), new RestTemplate ());
89
+ InformationClient client = new HttpInformationClient (grayClientProperties .getServerUrl (), new
90
+ RestTemplate ());
83
91
if (!grayClientProperties .isRetryable ()) {
84
92
return client ;
85
93
}
0 commit comments