Skip to content

Commit 07e6587

Browse files
committed
优化代码
1 parent 5025d29 commit 07e6587

File tree

11 files changed

+90
-145
lines changed

11 files changed

+90
-145
lines changed

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientConfig.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,6 @@ public interface GrayClientConfig {
2525
int grayEnrollDealyTimeInMs();
2626

2727

28-
/**
29-
* 灰度服务器的url
30-
*
31-
* @return 返回gray-server的url
32-
*/
33-
String getServerUrl();
34-
35-
3628
/**
3729
* 更新灰度列表的时间间隔(ms),小于等于0将不会开启定时轮询
3830
*
@@ -41,18 +33,4 @@ public interface GrayClientConfig {
4133
int getServiceUpdateIntervalTimerInMs();
4234

4335

44-
/**
45-
* 在和灰度服务器通信时,如果交互失败,是否重试。
46-
*
47-
* @return 返回是否重试
48-
*/
49-
boolean isRetryable();
50-
51-
/**
52-
* 重试次数
53-
*
54-
* @return 返回重试次数
55-
*/
56-
int getRetryNumberOfRetries();
57-
5836
}

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
import cn.springcloud.gray.client.config.properties.GrayClientProperties;
66
import cn.springcloud.gray.client.config.properties.GrayLoadProperties;
77
import cn.springcloud.gray.client.config.properties.GrayRequestProperties;
8-
import cn.springcloud.gray.communication.HttpInformationClient;
8+
import cn.springcloud.gray.client.config.properties.GrayServerProperties;
99
import cn.springcloud.gray.communication.InformationClient;
10-
import cn.springcloud.gray.communication.RetryableInformationClient;
1110
import cn.springcloud.gray.decision.GrayDecisionFactoryKeeper;
1211
import cn.springcloud.gray.request.RequestLocalStorage;
1312
import cn.springcloud.gray.request.ThreadLocalRequestStorage;
@@ -18,15 +17,19 @@
1817
import org.springframework.context.annotation.Bean;
1918
import org.springframework.context.annotation.Configuration;
2019
import org.springframework.context.annotation.Import;
21-
import org.springframework.web.client.RestTemplate;
2220

2321
import java.util.List;
2422

2523
@Configuration
26-
@EnableConfigurationProperties({GrayClientProperties.class, GrayRequestProperties.class, GrayLoadProperties.class})
27-
//@ConditionalOnBean(GrayClientMarkerConfiguration.GrayClientMarker.class)
24+
@EnableConfigurationProperties(
25+
{GrayClientProperties.class,
26+
GrayServerProperties.class,
27+
GrayRequestProperties.class,
28+
GrayLoadProperties.class})
2829
@ConditionalOnProperty(value = "gray.enabled")
29-
@Import({GrayDecisionFactoryConfiguration.class, GrayTrackConfiguration.class})
30+
@Import({InformationClientConfiguration.class,
31+
GrayDecisionFactoryConfiguration.class,
32+
GrayTrackConfiguration.class})
3033
public class GrayClientAutoConfiguration {
3134

3235

@@ -61,31 +64,4 @@ public RequestLocalStorage requestLocalStorage() {
6164
return new ThreadLocalRequestStorage();
6265
}
6366

64-
65-
@Configuration
66-
public static class InformationClientConfiguration {
67-
68-
69-
@Bean("grayInformationRestTemplate")
70-
@ConditionalOnMissingBean(name = {"grayInformationRestTemplate"})
71-
public RestTemplate grayInformationRestTemplate() {
72-
return new RestTemplate();
73-
}
74-
75-
76-
@Bean
77-
@ConditionalOnMissingBean
78-
@ConditionalOnProperty(value = "gray.client.serverUrl")
79-
public InformationClient informationClient(
80-
@Autowired(required = false) RestTemplate grayInformationRestTemplate,
81-
GrayClientProperties grayClientProperties) {
82-
InformationClient httpClient = new HttpInformationClient(grayClientProperties.getServerUrl(), grayInformationRestTemplate);
83-
if (grayClientProperties.isRetryable()) {
84-
return new RetryableInformationClient(Math.max(3, grayClientProperties.getRetryNumberOfRetries()), httpClient);
85-
} else {
86-
return httpClient;
87-
}
88-
}
89-
}
90-
9167
}

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayLoadAutoConfigration.java

Lines changed: 0 additions & 38 deletions
This file was deleted.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package cn.springcloud.gray.client.config;
2+
3+
import cn.springcloud.gray.client.config.properties.GrayServerProperties;
4+
import cn.springcloud.gray.communication.HttpInformationClient;
5+
import cn.springcloud.gray.communication.InformationClient;
6+
import cn.springcloud.gray.communication.RetryableInformationClient;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
9+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
10+
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
11+
import org.springframework.context.annotation.Bean;
12+
import org.springframework.context.annotation.Configuration;
13+
import org.springframework.web.client.RestTemplate;
14+
15+
@Configuration
16+
@ConditionalOnProperty(value = "gray.server.url")
17+
public class InformationClientConfiguration {
18+
19+
20+
@Configuration
21+
@ConditionalOnProperty(value = "gray.server.loadbalanced", havingValue = "false", matchIfMissing = true)
22+
public static class DefaultGrayInformationRestTemplate {
23+
@Bean("grayInformationRestTemplate")
24+
@ConditionalOnMissingBean(name = {"grayInformationRestTemplate"})
25+
public RestTemplate grayInformationRestTemplate() {
26+
return new RestTemplate();
27+
}
28+
}
29+
30+
@Configuration
31+
@ConditionalOnProperty(value = "gray.server.loadbalanced")
32+
public static class LoadBalancedGrayInformationRestTemplate {
33+
@Bean("grayInformationRestTemplate")
34+
@LoadBalanced
35+
@ConditionalOnMissingBean(name = {"grayInformationRestTemplate"})
36+
public RestTemplate grayInformationRestTemplate() {
37+
return new RestTemplate();
38+
}
39+
}
40+
41+
42+
@Bean
43+
@ConditionalOnMissingBean
44+
public InformationClient informationClient(
45+
@Autowired(required = false) RestTemplate grayInformationRestTemplate,
46+
GrayServerProperties grayServerProperties) {
47+
InformationClient httpClient = new HttpInformationClient(grayServerProperties.getUrl(), grayInformationRestTemplate);
48+
if (grayServerProperties.isRetryable()) {
49+
return new RetryableInformationClient(Math.max(3, grayServerProperties.getRetryNumberOfRetries()), httpClient);
50+
} else {
51+
return httpClient;
52+
}
53+
}
54+
}
Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cn.springcloud.gray.client.config.properties;
22

33
import cn.springcloud.gray.GrayClientConfig;
4-
import cn.springcloud.gray.communication.RetryableInformationClient;
54
import org.springframework.boot.context.properties.ConfigurationProperties;
65

76
@ConfigurationProperties("gray.client")
@@ -11,24 +10,9 @@ public class GrayClientProperties implements GrayClientConfig {
1110

1211
private int serviceUpdateIntervalTimerInMs = 60000;
1312

14-
private String informationClient = "http";
15-
16-
private String serverUrl = "";
17-
18-
private boolean retryable = true;
19-
private int retryNumberOfRetries = RetryableInformationClient.DEFAULT_NUMBER_OF_RETRIES;
20-
2113
private InstanceConfig instance = new InstanceConfig();
2214

2315

24-
public String getInformationClient() {
25-
return informationClient;
26-
}
27-
28-
public void setInformationClient(String informationClient) {
29-
this.informationClient = informationClient;
30-
}
31-
3216
@Override
3317
public String runenv() {
3418
return runenv;
@@ -44,19 +28,12 @@ public int grayEnrollDealyTimeInMs() {
4428
return instance.getGrayEnrollDealyTimeInMs();
4529
}
4630

47-
public String getServerUrl() {
48-
return serverUrl;
49-
}
5031

5132
@Override
5233
public int getServiceUpdateIntervalTimerInMs() {
5334
return serviceUpdateIntervalTimerInMs;
5435
}
5536

56-
public void setServerUrl(String serverUrl) {
57-
this.serverUrl = serverUrl;
58-
}
59-
6037

6138
public void setServiceUpdateIntervalTimerInMs(int serviceUpdateIntervalTimerInMs) {
6239
this.serviceUpdateIntervalTimerInMs = serviceUpdateIntervalTimerInMs;
@@ -71,22 +48,6 @@ public void setInstance(InstanceConfig instance) {
7148
}
7249

7350

74-
public boolean isRetryable() {
75-
return retryable;
76-
}
77-
78-
public void setRetryable(boolean retryable) {
79-
this.retryable = retryable;
80-
}
81-
82-
public int getRetryNumberOfRetries() {
83-
return retryNumberOfRetries;
84-
}
85-
86-
public void setRetryNumberOfRetries(int retryNumberOfRetries) {
87-
this.retryNumberOfRetries = retryNumberOfRetries;
88-
}
89-
9051
/**
9152
* 实例
9253
*/
@@ -95,7 +56,6 @@ public class InstanceConfig {
9556
private boolean grayEnroll = false;
9657
private int grayEnrollDealyTimeInMs = 40000;
9758
private boolean useMultiVersion = false;
98-
private String instanceId;
9959

10060
public boolean isGrayEnroll() {
10161
return grayEnroll;
@@ -126,12 +86,6 @@ public void setUseMultiVersion(boolean useMultiVersion) {
12686
this.useMultiVersion = useMultiVersion;
12787
}
12888

129-
public String getInstanceId() {
130-
return instanceId;
131-
}
13289

133-
public void setInstanceId(String instanceId) {
134-
this.instanceId = instanceId;
135-
}
13690
}
13791
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package cn.springcloud.gray.client.config.properties;
2+
3+
import cn.springcloud.gray.communication.RetryableInformationClient;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
import org.springframework.boot.context.properties.ConfigurationProperties;
7+
8+
@Setter
9+
@Getter
10+
@ConfigurationProperties("gray.server")
11+
public class GrayServerProperties {
12+
13+
private String url;
14+
private boolean loadbalanced;
15+
//在和灰度服务器通信时,如果交互失败,是否重试。
16+
private boolean retryable = true;
17+
//重试次数
18+
private int retryNumberOfRetries = RetryableInformationClient.DEFAULT_NUMBER_OF_RETRIES;
19+
}

spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/src/main/resources/config/application.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ gray:
1818
client:
1919
instance:
2020
grayEnroll: false #是否在启动后自动注册成灰度实例
21-
serverUrl: http://localhost:20202 #灰度服务端的url
21+
server:
22+
url: http://localhost:20202 #灰度服务端的url

spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/resources/config/application.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ gray:
1919
client:
2020
instance:
2121
grayEnroll: true #是否在启动后自动注册成灰度实例
22-
serverUrl: http://localhost:20202 #灰度服务端的url
22+
server:
23+
url: http://localhost:20202 #灰度服务端的url

spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/resources/config/application.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ feign:
4545

4646
gray:
4747
enabled: true
48-
client:
49-
server-url: http://localhost:20202
48+
server:
49+
url: http://localhost:20202
5050
request:
5151
track:
5252
web:

spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/resources/config/application.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ zuul:
5050
# serviceId: eureka-client #指定路由到的serviceId
5151
gray:
5252
# enabled: true
53+
server:
54+
url: http://localhost:20202
5355
client:
54-
server-url: http://localhost:20202
5556
serviceUpdateIntervalTimerInMs: 0
5657
request:
5758
track:

0 commit comments

Comments
 (0)