Sentinel集成Nacos数据源

导读:本篇文章讲解 Sentinel集成Nacos数据源,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.1 安装Sentinel控制台

在https://github.com/alibaba/Sentinel/releases页面下载控制台的jar包,放到服务器某个文件夹下

通过如下命令来启动控制台程序,-Dserver.port指定了端口为9010,如果出现端口冲突,可以指定其他端口

java -Dserver.port=9010 -Dcsp.sentinel.dashboard.server=localhost:9010 -Dproject.name=sentinel-dashboard  -jar -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError  $APP_NAME >/dev/null 2>
&1 &

通过http://localhost:9010就可以访问控制台,用户名和密码默认为sentinel/sentinel

1.2 配置Sentinel

shop-user模块的pom文件中添加相应的依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

然后在yaml文件中配置客户端与控制台通信端口以及控制台地址

spring:
  cloud:
    sentinel:
      transport:
      	# sentinel客户端与控制台通信端口号(默认为8719,可以任意指定)
        port: 8719 
        dashboard: xxx.com:9010

启动shop-user应用,随便调用一个接口,就可以在sentinel的控制台看到shop-user服务的相关信息

注:sentinel是懒加载模式,只有调用了接口,才能在控制台看到服务,也可以通过设置spring.cloud.sentinel.eager:true,服务启动就建立心跳连接

详细的使用参考:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel

1.3 配置持久化

在Sentinel中,可以通过控制台为每个客户端设置各种各样的规则,但这些规则默认是存储在内存中,每次重复服务,配置都会被情况,不适用于生产环境。因此Sentinel提供了pullpush的动态扩展,这两种方式分别对应不同的数据源

模式 支持扩展数据源 获取规则方式 优点 缺点
pull 动态文件数据源、Consul、Eureka 定期轮询 接入简单 实时性差
push Zookeeper、Redis、Nacos、Apollo 监听规则变化 一致性,实时性高 规则同步至数据源比较复杂

以Sentinel集成Nacos做数据源为例

shop-userpom文件中添加相应的依赖

<!-- sentinel集成nacos作为数据源  -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

然后在配置文件配置数据源的相关属性,由于spring.cloud.sentinel.datasource属性对应的是一个Map,所以它的需要自定义指定Map的KEY,下面的配置中ds就作为KEY,然后后面就可以配置不同的数据源

spring:
  cloud:
    sentinel:
      datasource:
        ds:
          nacos:
            server-addr: 127.0.0.1:8848
            namespace: 24712b7c-05ad-4b79-af97-1d202431f521
            dataId: shop-user-sentinel.json
            groupId: LZ_GROUP_MASTER
            rule-type: flow
            data-type: json

DataSourcePropertiesConfiguration中可以看到不同数据源对应的属性类,具体的参数可以参考这些属性类

public class DataSourcePropertiesConfiguration {

   private FileDataSourceProperties file;

   private NacosDataSourceProperties nacos;

   private ZookeeperDataSourceProperties zk;

   private ApolloDataSourceProperties apollo;

   private RedisDataSourceProperties redis;

   private ConsulDataSourceProperties consul;
}

然后在Nacos的控制台创建限流规则的配置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/112114.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!