Skip to content

Commit a3d37e1

Browse files
leizhiyuancaojie09
authored andcommitted
Optimize auto configuration rpc (#526)
1 parent 2f768bd commit a3d37e1

File tree

2 files changed

+46
-20
lines changed

2 files changed

+46
-20
lines changed

sofa-boot-project/sofa-boot-autoconfigure/src/main/java/com/alipay/sofa/boot/autoconfigure/rpc/SofaRpcAutoConfiguration.java

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,6 @@
1616
*/
1717
package com.alipay.sofa.boot.autoconfigure.rpc;
1818

19-
import java.util.HashMap;
20-
import java.util.List;
21-
import java.util.Map;
22-
23-
import org.springframework.beans.factory.annotation.Value;
24-
import org.springframework.boot.actuate.health.Health;
25-
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
26-
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
27-
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
28-
import org.springframework.boot.context.properties.EnableConfigurationProperties;
29-
import org.springframework.context.ApplicationListener;
30-
import org.springframework.context.annotation.Bean;
31-
import org.springframework.context.annotation.Configuration;
32-
import org.springframework.context.annotation.Lazy;
33-
3419
import com.alipay.sofa.healthcheck.startup.ReadinessCheckCallback;
3520
import com.alipay.sofa.rpc.boot.config.ConsulConfigurator;
3621
import com.alipay.sofa.rpc.boot.config.FaultToleranceConfigurator;
@@ -53,6 +38,21 @@
5338
import com.alipay.sofa.rpc.boot.runtime.adapter.helper.ConsumerConfigHelper;
5439
import com.alipay.sofa.rpc.boot.runtime.adapter.helper.ProviderConfigHelper;
5540
import com.alipay.sofa.rpc.boot.swagger.SwaggerServiceApplicationListener;
41+
import org.springframework.beans.factory.annotation.Value;
42+
import org.springframework.boot.actuate.health.Health;
43+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
44+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
45+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
46+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
47+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
48+
import org.springframework.context.ApplicationListener;
49+
import org.springframework.context.annotation.Bean;
50+
import org.springframework.context.annotation.Configuration;
51+
import org.springframework.context.annotation.Lazy;
52+
53+
import java.util.HashMap;
54+
import java.util.List;
55+
import java.util.Map;
5656

5757
/**
5858
* @author <a href="mailto:[email protected]">LiWei</a>
@@ -62,26 +62,31 @@
6262
@ConditionalOnClass(SofaBootRpcProperties.class)
6363
public class SofaRpcAutoConfiguration {
6464
@Bean
65+
@ConditionalOnMissingBean
6566
public ProviderConfigContainer providerConfigContainer() {
6667
return new ProviderConfigContainer();
6768
}
6869

6970
@Bean
71+
@ConditionalOnMissingBean
7072
public FaultToleranceConfigurator faultToleranceConfigurator() {
7173
return new FaultToleranceConfigurator();
7274
}
7375

7476
@Bean
77+
@ConditionalOnMissingBean
7578
public ServerConfigContainer serverConfigContainer(SofaBootRpcProperties sofaBootRpcProperties) {
7679
return new ServerConfigContainer(sofaBootRpcProperties);
7780
}
7881

7982
@Bean
83+
@ConditionalOnMissingBean
8084
public RegistryConfigContainer registryConfigContainer() {
8185
return new RegistryConfigContainer();
8286
}
8387

8488
@Bean
89+
@ConditionalOnMissingBean
8590
public ConsumerConfigHelper consumerConfigHelper(SofaBootRpcProperties sofaBootRpcProperties,
8691
@Lazy RegistryConfigContainer registryConfigContainer,
8792
@Value("${"
@@ -91,31 +96,37 @@ public ConsumerConfigHelper consumerConfigHelper(SofaBootRpcProperties sofaBootR
9196
}
9297

9398
@Bean
99+
@ConditionalOnMissingBean
94100
public ProviderConfigHelper providerConfigHelper() {
95101
return new ProviderConfigHelper();
96102
}
97103

98104
@Bean
105+
@ConditionalOnMissingBean
99106
public ZookeeperConfigurator zookeeperConfigurator() {
100107
return new ZookeeperConfigurator();
101108
}
102109

103110
@Bean
111+
@ConditionalOnMissingBean
104112
public LocalFileConfigurator localFileConfigurator() {
105113
return new LocalFileConfigurator();
106114
}
107115

108116
@Bean
117+
@ConditionalOnMissingBean
109118
public MeshConfigurator meshConfigurator() {
110119
return new MeshConfigurator();
111120
}
112121

113122
@Bean
123+
@ConditionalOnMissingBean
114124
public RegistryConfigureProcessor nacosConfigurator() {
115125
return new NacosConfigurator();
116126
}
117127

118128
@Bean
129+
@ConditionalOnMissingBean
119130
public RegistryConfigureProcessor sofaRegistryConfigurator() {
120131
return new SofaRegistryConfigurator();
121132
}
@@ -130,16 +141,19 @@ public Map<String, RegistryConfigureProcessor> configureProcessorMap(List<Regist
130141
}
131142

132143
@Bean
144+
@ConditionalOnMissingBean
133145
public RegistryConfigureProcessor consulConfigurator() {
134146
return new ConsulConfigurator();
135147
}
136148

137149
@Bean
150+
@ConditionalOnMissingBean
138151
public ConsumerConfigContainer consumerConfigContainer() {
139152
return new ConsumerConfigContainer();
140153
}
141154

142155
@Bean
156+
@ConditionalOnMissingBean
143157
public ApplicationContextClosedListener applicationContextClosedListener(ProviderConfigContainer providerConfigContainer,
144158
ServerConfigContainer serverConfigContainer) {
145159
return new ApplicationContextClosedListener(providerConfigContainer, serverConfigContainer);
@@ -153,6 +167,7 @@ public ApplicationContextRefreshedListener applicationContextRefreshedListener()
153167
}
154168

155169
@Bean
170+
@ConditionalOnMissingBean
156171
public SofaBootRpcStartListener sofaBootRpcStartListener(ProviderConfigContainer providerConfigContainer,
157172
FaultToleranceConfigurator faultToleranceConfigurator,
158173
ServerConfigContainer serverConfigContainer,

sofa-boot-project/sofa-boot-core/rpc-sofa-boot/src/main/java/com/alipay/sofa/rpc/boot/runtime/param/RpcBindingParam.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@
1616
*/
1717
package com.alipay.sofa.rpc.boot.runtime.param;
1818

19-
import java.util.ArrayList;
20-
import java.util.List;
21-
import java.util.Map;
22-
import java.util.concurrent.ConcurrentHashMap;
23-
2419
import com.alipay.sofa.rpc.boot.runtime.binding.RpcBindingMethodInfo;
2520
import com.alipay.sofa.rpc.filter.Filter;
2621
import com.alipay.sofa.rpc.server.UserThreadPool;
2722
import com.alipay.sofa.runtime.api.client.param.BindingParam;
2823

24+
import java.util.ArrayList;
25+
import java.util.List;
26+
import java.util.Map;
27+
import java.util.concurrent.ConcurrentHashMap;
28+
2929
/**
3030
* XML 元素和属性会被解析为 RpcBindingParam 。
3131
*
@@ -79,6 +79,8 @@ public abstract class RpcBindingParam implements BindingParam {
7979

8080
protected List<String> registrys = new ArrayList<String>();
8181

82+
private Integer repeatReferLimit;
83+
8284
/**
8385
* Getter method for property <tt>timeout</tt>.
8486
*
@@ -534,4 +536,13 @@ public int hashCode() {
534536
result = 31 * result + (registrys != null ? registrys.hashCode() : 0);
535537
return result;
536538
}
539+
540+
public Integer getRepeatReferLimit() {
541+
return repeatReferLimit;
542+
}
543+
544+
public void setRepeatReferLimit(Integer repeatReferLimit) {
545+
this.repeatReferLimit = repeatReferLimit;
546+
}
547+
537548
}

0 commit comments

Comments
 (0)