Nacos、Sentinel简介与安装

一:用于服务注册、消费、配置中心的Nacos、

二:用于流量限流、降级的Sentinel

搭建:SpringcloudAlibaba框架案例https://blog.csdn.net/qq_42227281/article/details/109067633

本文gitee地址:https://gitee.com/wangwenlongGitHub/SpringCloudAlibaba-practice.git

一:中间件 Nacos

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少团队的支持;同时,由于Spring Cloud Alibaba中的几项主要功能都直指Netflix OSS中的重要组件,而后者最近频繁宣布各组件不在更新新特性,这使得Spring Cloud Alibaba关注度不断飙升,不少开发者或团队也开始小范围试水

什么是Nacos

Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施

安装Nacos

1、下载地址:https://github.com/alibaba/nacos/releases

本文版本:1.0.0

2、下载完成之后,解压。

3、修改配置文件

①在nacos\conf文件目录下找到nacos-mysql.sql文件,一键复制该文件下的所有sql语句。创建mysql库,名称自己定,该文件中推荐的库名是nacos_config,设置字符集:utf8 ,排序规则:utf8_general_ci。然后运行nacos-mysql.sql文件下的所有sql语句即可

②在nacos\conf文件目录下找到application.properties配置文件,打开并编辑,将刚才创建的数据库配置到该文件下(将下面的配置放到application.properties文件中最下面即可),保存并关闭该文件

#*******************MySql*************************************

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root1234

4、根据不同平台,执行不同命令,启动单机版Nacos服务:

●Linux/Unix/Mac:sh startup.sh -m standalone

●Windows:cmd startup.cmd -m standalone、

●非命令操作:启动脚本在 nacos/bin目录下,Windows 双击startup.cmd,Linux操作系统为图形界面的话也可以这么做

5、启动完成之后,访问:http://localhost:8848/nacos/,可以进入Nacos的服务管理页面,具体如下;

如果报错:nable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat

解决方案:将nacos\target文件下的 nacos-server.jar文件复出到nacos\bin\work\Tomcat\localhost\nacos文件中并解压,删除jar文件即可

二:中间件 Sentinel分布式系统的流量防卫兵

Sentinel 是什么?

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

Sentinel的官方标题是:分布式系统的流量防卫兵。从名字上来看,很容易就能猜到它是用来作服务稳定性保障的。对于服务稳定性保障组件,如果熟悉Spring Cloud的用户,第一反应应该就是Hystrix。但是比较可惜的是Netflix已经宣布对Hystrix停止更新。那么,在未来我们还有什么更好的选择呢?除了Spring Cloud官方推荐的resilience4j之外,目前Spring Cloud Alibaba下整合的Sentinel也是用户可以重点考察和选型的目标。

部署

补充:本文案例已升级Spring Cloud Alibaba 0.2.2,由于该版本中升级了Sentinel到1.5.2,所以对sentinel-dashboard做一次升级。但是sentinel-dashboard的1.5.2版本的打包文件没有提供下载,如果一定要该版本的话,需要自己编译。这里笔者尝试了一下直接使用1.6.0的sentinel-dashboard,暂时也没有发现什么问题,所以就以这个版本为例。

下载地址:sentinel-dashboard-1.6.0.jar

其他版本:Sentinel/releases

这里也不推荐跨版本使用,不然可能会出现各种各样的问题。

启动:java -jar sentinel-dashboard-1.6.0.jar、如果要启动时自定义端口则用这个命令 java -jar -Dserver.port=3377 sentinel-dashboard-1.6.0.jar

默认情况下,sentinel-dashboard以8080端口启动,所以可以通过访问:localhost:8080来验证是否已经启动成功,如果一切顺利的话,可以看到如下页面:

注意:

只有1.6.0及以上版本,才有这个简单的登录页面。默认用户名和密码都是sentinel。对于用户登录的相关配置可以在启动命令中增加下面的参数来进行配置:

● -Dsentinel.dashboard.auth.username=sentinel: 用于指定控制台的登录用户名为 sentinel;

● -Dsentinel.dashboard.auth.password=123456: 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel

● -Dserver.servlet.session.timeout=7200: 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;

输入账户密码登录后,可以看到如下页面:

猜你喜欢

转载自blog.csdn.net/qq_42227281/article/details/109074957