网关、Nacos 和 Sentinel|学习笔记(三)

简介: 快速学习网关、Nacos 和 Sentinel

开发者学堂课程【5天突破 Spring Cloud网关、Nacos 和 Sentinel】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/781/detail/13704


网关、Nacos 和 Sentinel


六、下载安装、启动 nacos 服务

启动完毕之后会出现一个管理界面,如果微服务想集成需要进行修改,修改自助中心地址,换为 nacos 即可, addr 位置需要换为 8848,这是唯一一个区别,基本就可使用。还有就是 nacos 的设置中心,这个设置中心界面如图所示:

image.png基本上这个界面是可视化基于网页管理的模式,会出现一个服务的列表,调用端代码,分组可以采用不同的命名空间进行的分组模式,性能良好。展示版本为旧版本,可以使用新版本2.0进行尝试,寻找拉库斯网站搜索查看官网配置的版本,观察不同版本之间的差异,下图都是使用拉库斯的各个公司。

image.png查看官网各种服务的不同对接以及各种功能的解释,其中的 nacos 快速开始,可以用 linux 、麦克,注意一下单机模式, nacos 地址属于 http://127.0.0.1.8848 ,点击出现管理后台,可以打开其网页。给出测试地址和 AB 请求

Nacos spring boot 、nacos spring cloud。展示的可以使用对接不同服务,包括作用中心, feign ,feign 集成其实一样,只是改为 feign 的作用地址,可以直接进入。要加入引用,将图示部分换掉。nacos discover 替换,底层暴露 artifactid usual 那部分

image.png若要公开的注册该服务,实际上并没有很大的改动。 zuul proxy 换为 nacos ,具体修即,配置文件 Eureka 换为 nacos ,nacos 加后缀。Porn 文件的改造即为加入 nacos 客户端的一个依赖,插入一个发现包,主要是为发现而用。接下来还是启用的这种模式,对接注册中心,和之前的基本变化不大。

微服务也是这个套路,作为微服务也是这样的模式,即替换 Eureka。Nacos 本身用登录界面即 nacos nacos ,或者可以测试一下,使用工具的截图如下:

image.png打开默认登录 nacos 界面,进入之后可以看到已经注册的服务,点开设计代码,会看到服务的调用端的 miss 代码,趋于你的服务接口,给出各种微服务的或者是原生 java 的,还可以设计服务元数据 ID名为淘宝,可以进行更改。节点元数据,元数据即服务的简历,相当于个人简历,这是服务的简历,描述服务的基本信息,最后一次更新时间还有其中提供的 IP 地址,其中的主服务是什么?还包括承重 rock report,8848 的拉库斯自己的注册中心的服务地址。打开图需要注意一下,基于2.0 版本使用。这里使用的是1.4版本,之后还有阿里开源的其他服务可以进行查看。

涉及到各种不同的服务对接问题,网关其实本质一样。修改源代码即修改的注册中心的地址,接下来就可以进行注册了,注册成功之后可以看到网管代理进入。以前面课程为铺垫,就可以发现这些知识点与之前相似,另外一个阿里开源的熔断限流,与之前讲的 hystrix 相似,熔断限流本身相似于保险丝,保护系统后台,防止过载导致系统崩溃。

限制流量来缓慢进行数据处理,Sentinel 本身的英文原意是哨兵,放哨的人,观察敌情本质上是分支类的角色。严格来说, sentinel 是观测报警用的,不管其他问题。

同样的情况在 ready 缓存集群中,类似做集群监控和装载切换,这里理解为逐级建立,是阿里开发的较为优秀的项目。

现在很多公司将 spring cloud 加以使用,之前讲到的 hystrix 官方在spring cloud 最新版本中基于 spring boot 2.5版本中推荐你可以集成 sentinel ,集成也较为重要,注意版本的兼容性问题,适配的框架也较为多,在翻倍也可以做。

 

七、阿里巴巴 sentinel 分布式架构

image.png如图是官方给出的 sentinel 的逻辑架构图,图示出功能点、限流、熔断、异常熔断、系统支持与保护、削峰填谷、热点限流、调用关系限流等等,关联性非常强。

规则配置可以使用 Apollo、nacos、zookeeper, nacos 本身是注册中心加配置中心, zookeeper 严格讲是注册中心,所以在对接位置制作良好,之后适配的框架也非常多,包括 jrmz 可以使用过域源,其中的 remain 设计良好。

 image.pngSentinel 的开源生态是独立的,左侧网关空间有 netflix 公司的 zuul, 阿里开源的 tenglne 淘宝使用的服务器,几大著名的代理服务器软件。

 

八、Sentinel 实战 spring cloud

image.png实战先做集成,服务要求和 sentinel 先做集成,若用 sentinel 需要加个依赖,因为 nacos 需要加客户端,同样需要改配置文件。配置比之前多了哪些,你现在需要你的服务被监控到,之前讲到的课程相关联, spring boot2.5实战时提到过 spring boot2.0之后监控依赖于底层的机制,暴露监控的熔接点采集信息。

同样的 sentinel 监控也需要配置信息,数据库采集交给 sentinel 中心,通过这些数据分析在其他方方面进行决策。正常情况下,它会向前兼容, spring cloud 向之前提到的基于 spring boot ,spring cloud 2.0、2.1、2.2、2.3、2.4均可兼容,一般不考虑这个问题。 sentinel 属于独立的监控,不会随便将市场上沿用的微服务全替换掉。比如之前讲过的分析力,德利美志,这几个主流版本。Hoxen 等公司还没有使用

新版本,最新的版本可能没有公司在使用。

image.png推测前几个版本都可以支持,其本身是独立,从生态化角度来说的可支持不同的分度式空间,而且会考虑不同的问题,不会说更新之后,之前的均不可使用这样对很多用户造成影响。一般情况下,才会考虑 sentinel ,注意其本质上是微服务项同样和之前的 hystrix 项一样,要开启监控,其次配置文件需要改,两者相结合。

 

九、测试 sentinel 微服务熔断限流

image.pngSentinel本身也具有自己的监控界面,左侧的功能列表,簇点、流控、降级、热点都可以配置。该图是 Spring cloud 修改的对接做的测试图形化界面,这里较为简单。

image.png几次,QBS 均有,可以加一些降级的规则,若希望某个服务接口降级请求不能超过十次每秒或者一千次都可以加上熔断限流的规则或者叫流控的规则,直接点击流控,授权加身份验证,输入值进行保存。 sentinel 会帮助你进行监控,基于前期的数据采集,监控存在延迟没法做到精确快速的传输命令。

本质上要监控别人的数据,别人的数据愿意提供才行,否则无法监控。像老师想要监控学生的学习情况,学生不接电话就没办法进行监控。 sentinel 也可以到官方下载一个代码,开源数据在服务器都可以下载,可以看到官方的一些介绍。打开拉库斯, sentinel 或者说国内 level ,方法云上是否存在对应输入的仓库,实际上是对健康代码的域名,这个项目有中文版的文档,两者结合,大家可以动手操作一下,注意下提到的问题。

1. Spring cloud 微服务是一套解决方案不仅仅是一个框架,而是多种框架。

2. 注册中心是 Eureka 或者 nacos,ZK 也算一个

3. Feign 做调用

4. Ribbon 做负载平衡,一般同样的产品会出现两个, netflix 公司贡献一个以及 spring cloud loadbalancer 贡献一个。会有新的产品出现并替代。

5. Hystrix 是 netflix 公司贡献的和阿里贡献的 sentinel

6. Zuul 代理和 spring cloud gateway 代理

7. 安全服务的令牌方式身份调用案

8. 阿里开源的 dubboy 是较为优秀的分布式框架

9. SEATA 是分布式事务框架

10. RocketMQ 消息队列

11. 应届生:新技术、主流的框架知道,属于有潜力的选手

12. 老手:不懂这些程序是跟不上时代就会被淘汰,没潜力

熟悉框架,不能只懂理念,理论和实际相结合。像是之前讲到的 hystrix 底层或者 Eureka 优化策略, zuul 的优化策略基于什么样的策略做监控,取什么策略进行优化,不同层次的人员,不同经验的人员要求不同。应届生达到熟练层次即可。

相关文章
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
116 0
|
15天前
|
Java 测试技术 Nacos
|
2月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
225 0
|
2月前
|
SpringCloudAlibaba 监控 Java
SpringCloud Alibaba Sentinel实现熔断与限流--学习笔记
SpringCloud Alibaba Sentinel实现熔断与限流--学习笔记
28 0
|
2月前
|
Java 网络架构 微服务
SpringCloud GateWay网关-学习笔记
SpringCloud GateWay网关-学习笔记
35 0
|
4月前
|
存储 Cloud Native Nacos
恭喜 Nacos 和 Sentinel 荣获 2023 开源创新榜“优秀开源项目”
恭喜 Nacos 和 Sentinel 荣获 2023 开源创新榜“优秀开源项目”
|
6月前
|
监控 API Nacos
微服务轮子项目(19) -Alibaba Sentinel限流熔断(网关流控)
微服务轮子项目(19) -Alibaba Sentinel限流熔断(网关流控)
73 0
|
7月前
|
Java 测试技术 Nacos
Sentinel源码改造,实现Nacos双向通信!
Sentinel源码改造,实现Nacos双向通信!
155 0
Sentinel源码改造,实现Nacos双向通信!
|
8月前
|
SQL Java Nacos
SpringCloud+SpringCloudAlibaba+SOA架构搭建,使用nacos注册中心,gateway网关配置
SpringCloud+SpringCloudAlibaba+SOA架构搭建,使用nacos注册中心,gateway网关配置
173 0
|
9月前
|
负载均衡 监控 安全