文章目录
构建Nacos服务
下载与安装
- Nacos下载,可在浏览器直接输入如下地址:
https://github.com/alibaba/nacos/releases
- 选择对应版本,直接下载,如图所示:
- 解压Nacos(最好不要解压到中文目录下),其目录结构如下:
初始化配置
- 打开操作系统命令行,登陆mysql,执行sql脚本,不是nacos/conf目录下自带的。
例如,我们可以使用mysql自带客户端,在命令行首先登录mysql,然后执行如下指令:
source d:/nacos-mysql.sql
执行成功以后,会创建一个nacos_config数据库
- 打开/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
服务启动与访问
- 启动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,…)
- 访问Nacos服务。
默认账号密码为nacos/nacos.
打开浏览器,输入http://localhost:8848/nacos地址,出现如下登陆页面:
idea配置nacos
idea中启动sentinel设置
安装sentinel服务并运行
Sentinel 提供一个轻量级的控制台, 它提供机器发现、单机资源实时监控以及规则管理等功能,其控制台安装步骤如下:
-
打开sentinel下载网址
https://github.com/alibaba/Sentinel/releases
-
下载Jar包(可以存储到一个sentinel目录),如图所示:
-
在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的写法,编写相对简单,编写过程都有提示,但是将来的可运维性比较差,项目打包以后,我们无法再修改负载均衡算法。