nacos和sentinel---Http Client ---负载均衡策略

构建Nacos服务

下载与安装

  1. Nacos下载,可在浏览器直接输入如下地址:

https://github.com/alibaba/nacos/releases

  1. 选择对应版本,直接下载,如图所示:
    在这里插入图片描述
  2. 解压Nacos(最好不要解压到中文目录下),其目录结构如下:
    在这里插入图片描述

初始化配置

  1. 打开操作系统命令行,登陆mysql,执行sql脚本,不是nacos/conf目录下自带的。
    例如,我们可以使用mysql自带客户端,在命令行首先登录mysql,然后执行如下指令:
source d:/nacos-mysql.sql 

执行成功以后,会创建一个nacos_config数据库

  1. 打开/nacos/conf/application.properties里打开默认配置,并基于你当前环境配置要连接的数据库,连接数据库时使用的用户名和密码(假如前面有"#"要将其去掉):
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

服务启动与访问

  1. 启动Nacos服务(nacos的bin目录去通过指令启动)。

Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):

./startup.sh -m standalone

Windows启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone

说明:
1)执行执行令时要么配置环境变量,要么直接在nacos/bin目录下去执行.
2)nacos启动时需要本地环境变量中配置了JAVA_HOME(对应jdk的安装目录),
3)一定要确保你连接的数据库(nacos_config)是存在的.
4)假如所有的配置都正确,还连不上,检查一下你有几个数据库(mysql,…)

  1. 访问Nacos服务。
    默认账号密码为nacos/nacos.
    打开浏览器,输入http://localhost:8848/nacos地址,出现如下登陆页面:
    在这里插入图片描述

idea配置nacos

在这里插入图片描述

idea中启动sentinel设置

安装sentinel服务并运行

Sentinel 提供一个轻量级的控制台, 它提供机器发现、单机资源实时监控以及规则管理等功能,其控制台安装步骤如下:

  1. 打开sentinel下载网址
    https://github.com/alibaba/Sentinel/releases

  2. 下载Jar包(可以存储到一个sentinel目录),如图所示:
    在这里插入图片描述

  3. 在sentinel对应目录,打开命令行(cmd),启动运行sentinel

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

访问Sentinel服务

账户和密码都是sentinel
在这里插入图片描述在这里插入图片描述

idea配置sentinel

-Dserver.port=8180
-Dcsp.sentinel.dashboard.server=localhost:8180
-Dproject.name=sentinel-dashboard
-jar
D:\sentinel\sentinel-dashboard-1.8.1.jar

在这里插入图片描述

尝试实现基于idea连接指定数据库

第一步:打开DataSource,找到mysql,例如:
在这里插入图片描述第二步:配置连接的数据库,例如:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Idea中Http Client 工具的应用

在这里插入图片描述
在这里插入图片描述

修改sca-consumer端默认的负载均衡策略

方案1:修改sca-consumer配置文件(application.yml),添加如下语句,例如:

sca-provider: #这个是要进行远程调用的服务id(服务名)
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡算法

对于方案1写法,在写的过程没有提示,编写困难,但是将来的可运维性会比较好,我们这部分配置写到配置中心,不需要重启服务即可实现配置的动态发布,动态更新。

方案2:修改sca-consumer的启动类,在启动类中添加如下方法,例如:

@Bean
public IRule ribbonRule() {
    return new RandomRule();
}

对于方案2的写法,编写相对简单,编写过程都有提示,但是将来的可运维性比较差,项目打包以后,我们无法再修改负载均衡算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java小鲤鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值