号外号外:麻烦点击左侧
我正在参加博客之星评选,请您投票
,给个五星好评,谢谢大家了!!!
写在前面
通过本文一起来看下如何使用sentinel来进行限流。
1:sentinel控制台
在这里 下载控制台jar包(这是一个springboot项目)。 下载完毕后通过如下命令启动:java -jar sentinel-dashboard-1.7.0.jar --server.port=8010 --auth.username=sentinel --auth.password=sentinel
,启动成功后通过http://192.168.10.119:8010/#/login
访问,如下:
录入账号sentinel/sentinel
,登录如下页面即为成功:
因为此时还没有任何的dubbo接口注册,所以是空的。
2:rpc-service-provider-04
2.1:引入依赖
引入sentinel相关的依赖:
<!-- Sentinel 核心库 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>1.7.0</version>
</dependency>
<!-- Sentinel 接入控制台 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.7.0</version>
</dependency>
<!-- Sentinel 对 Dubbo 的支持 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-apache-dubbo-adapter</artifactId>
<version>1.7.0</version>
</dependency>
2.2:增加配置
在resources目录下增加sentinel.properties
,如下:
csp.sentinel.dashboard.server=192.168.10.119:8010
3:rpc-service-consumer-04
3.1:引入依赖
引入sentinel相关的依赖:
<!-- Sentinel 核心库 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>1.7.0</version>
</dependency>
<!-- Sentinel 接入控制台 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.7.0</version>
</dependency>
<!-- Sentinel 对 Dubbo 的支持 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-apache-dubbo-adapter</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.2:增加配置
在resources目录下增加sentinel.properties
,如下:
csp.sentinel.dashboard.server=192.168.10.119:8010
3.3:UserController
@RestController
@RequestMapping("/user")
public class UserController {
@Reference(version = "${dubbo.consumer.UserRpcService.version}")
private UserRpcService userRpcService;
@GetMapping("/get")
public UserDTO get(@RequestParam("id") Integer id) {
return userRpcService.get(id);
}
}
3.4:简单测试
启动后,访问http://192.168.10.119:8024/user/get?id=55
:
此时可以随意访问,接下来通过sentinel控制台配置该接口每秒只可以访问一次,点击消费者的簇点链路->流控
,如下图:
然后设置如下:
然后再访问http://192.168.10.119:8024/user/get?id=55,重复点击看到如下被限制访问页面则说明成功了: