如何理解Spring Cloud alibaba网关

发布时间:2021-09-29 16:22:55 作者:iii
来源:亿速云 阅读:90

这篇文章主要讲解了“如何理解Spring Cloud alibaba网关”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解Spring Cloud alibaba网关”吧!

spring cloud alibaba 集成了 他内部开源的 Sentinel 熔断限流框架

Sentinel 介绍

官方网址 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinel 具有以下特征:

Sentinel 的主要特性:

如何理解Spring Cloud alibaba网关

Sentinel 的开源生态:

如何理解Spring Cloud alibaba网关

介绍一下 如果搭建。本次并不会一点点延伸更深层次的地方。只教大家快速使用。等spring cloud gateway更新完成之后会带大家更深层次的挖掘 Sentinel 的功能。

Sentinel的快速搭建

直接下载官网已经打好的jar包

release地址 https://github.com/alibaba/Sentinel/releases

源码编译 git clone https://github.com/alibaba/Sentinel.git

然后进入目录执行 mvn clean package

命令启动

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

如果需要docker 的话 可编写 docker Dockerfile

# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar /app.jar
ADD ./*.jar app.jar
RUN mkdir -p /var/logs/Sentinel
RUN mkdir -p /var/logs/jvm
RUN mkdir -p /var/logs/dump
RUN bash -c 'touch /app.jar'
# 开放8080端口
EXPOSE 8080
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-XX:-PrintGCDetails","-XX:-PrintGCTimeStamps","-XX:-HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/var/logs/dump/oom_dump.dump","-Xloggc:/var/logs/jvm/app.log","-Dfile.encoding=UTF8","-Duser.timezone=GMT+08","-XX:CMSInitiatingOccupancyFraction=90","-XX:MaxGCPauseMillis=200","-XX:StringTableSize=20000","-XX:+UseG1GC","-Xss256k","-Xmx1024m","-Xms512m","-jar","/app.jar"]

执行 docker 镜像制作

docker  build --tag sentinel:1.0 .

--tag projectname:version 注意写法

如何理解Spring Cloud alibaba网关

如何理解Spring Cloud alibaba网关 然后docker run 启动镜像。这里作者使用的docker镜像方式启动 docker run -d -p9088:8080 304342c105e9

然后控制台输入 http://localhost:9088/ 用户名密码 sentinel/sentinel

登录参数配置:

从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是 sentinel。可以参考 鉴权模块文档 配置用户名和密码。

输入密码登录

服务已启动我们在整合 网关zuul 服务于sentinel的整合。

pom 添加

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

操作添加俩个文件在resources下面

[
  {
    "apiName": "cloud-discovery-server",
    "predicateItems": [
      {
        "pattern": "/server/**"
      },
      {
        "pattern": "/server/server/**",
        "matchStrategy": 1
      },
      {
        "items": [
          {
            "pattern": "/server/**"
          }
        ]
      }
    ]
  },
  {
    "apiName": "cloud-discovery-client",
    "predicateItems": [
      {
        "pattern": "/client/**"
      }
    ]
  }
]

启动服务并进行之前的一次访问

[
  {
    "resource": "cloud-discovery-server",
    "count": 1
  },
  {
    "resource": "cloud-discovery-client",
    "count": 10,
    "intervalSec": 2,
    "controlBehavior": 1,
    "maxQueueingTimeoutMs": 200,
    "paramItem": {
      "parseStrategy": 3,
      "fieldName": "test"
    }
  }
]

多次请求 curl http://localhost:9083/server/server/hello?name=tom

然后在控制台 如何理解Spring Cloud alibaba网关

api.json 对应的是控制台 api 管理

用户自定义的 API 定义分组,可以看做是一些 URL 匹配的组合。比如我们可以定义一个 API 叫 my_api,请求 path 模式为 /foo/** 和 /baz/** 的都归到 my_api 这个 API 分组下面。限流的时候可以针对这个自定义的 API 分组维度进行限流。

gateway 对应的是控制台流控管理

其实在控制台上 可以看到请求链路、还有流量规则。编辑的位置,都能匹配这是各种的组合配置。因为Sentinel 是阿里巴巴开源的流控框架。非常简单实用。文档也非常全面,强烈推荐能自己去官网学习这些资料。我这里只是做一个简单的整合。

Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

感谢各位的阅读,以上就是“如何理解Spring Cloud alibaba网关”的内容了,经过本文的学习后,相信大家对如何理解Spring Cloud alibaba网关这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Spring Cloud Gateway及Security认证
  2. spring cloud gateway整合sentinel实现网关限流的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring cloud

上一篇:ubuntu下如何实现右键菜单添加新建word、excel文档等快捷方式

下一篇:ubuntu12.04中如何使用c编写php扩展模块

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》