Sentinel整合Dubbo限流实战
创建provider项目
添加jar依赖
<dependency>
<artifactId>sentinel-api</artifactId>
<groupId>com.lucas.sentinel</groupId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.0</version>
</dependency>
SentinelService
public interface SentinelService {
String sayHello(String name);
}
SentinelServiceImpl
@Service
public class SentinelServiceImpl implements SentinelService{
@Override
public String sayHello(String name) {
System.out.println("begin execute sayHello:"+name);
return "Hello World:"+name+"->timer:"+LocalDateTime.now();
}
}
ProviderConfig
@Configuration
@DubboComponentScan("com.lucas.sentinel")
public class ProviderConfig {
@Bean
public ApplicationConfig applicationConfig() {
ApplicationConfig config = new ApplicationConfig();
config.setName("sentinel-web");
config.setOwner("Lucas");
return config;
}
@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://192.168.0.102:2181");
return registryConfig;
}
@Bean
public ProtocolConfig protocolConfig() {
ProtocolConfig protocolConfig = new ProtocolConfig();
protocolConfig.setName("dubbo");
protocolConfig.setPort(20880);
return protocolConfig;
}
}
BootstrapApp
public class BootstrapApp {
public static void main(String[] args) throws IOException {
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext(ProviderConfig.class);
((AnnotationConfigApplicationContext) applicationContext).start();
System.in.read();
}
}
创建SpringBoot的Consumer项目
添加jar依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope