nacos——springcloud使用
nacos注册中心
文章目录
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/54ed8862b6072feb6e00b6b7d2250907.png)
1.Windows安装
开发阶段采用单机安装即可。
1.1.下载安装包
在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:
GitHub主页:https://github.com/alibaba/nacos
GitHub的Release下载页:https://github.com/alibaba/nacos/releases
如图:
本课程采用1.4.1.版本的Nacos,课前资料已经准备了安装包:
windows版本使用nacos-server-1.4.1.zip
包即可。
1.2.解压
将这个包解压到任意非中文目录下,如图:
目录说明:
- bin:启动脚本
- conf:配置文件
1.3.端口配置
Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。
如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中的端口:
修改其中的内容:
1.4.启动
启动非常简单,进入bin目录,结构如下:
然后执行命令即可:
-
windows命令:
startup.cmd -m standalone
执行后的效果如图:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
1.5.访问
在浏览器输入地址:http://127.0.0.1:8848/nacos即可:
默认的账号和密码都是nacos,进入后:
服务注册到Nacos
<!--nacos的管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- nacos客户端依赖包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
Nacos分级存储
cloud:
nacos:
server-addr: localhost:8848 # nacos服务二等服务名称
discovery:
cluster-name: SH # HZ 杭州
Nacos的负载均衡
为orderService也配置集群
application:
name: orderServer # order服务名称
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
cluster-name: HZ # 集群名称
配好后重启,访问几次后,还是轮询,因为没有修改配置负载均衡
在order-service中设置负载均衡,根据规则优先寻找与自相同集群的服务
userService: # 针对某个具体的微服务
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
这样就配置成了在本地集群访问,默认是随机的访问各个实例。如果本地没有,也会访问其他集群。
服务实例的权重配置
环境隔离
spring:
datasource:
url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
application:
name: orderServer # order服务名称
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
cluster-name: HZ # 集群名称
namespace: d21f7b38-b687-46c4-8af8-792fdb48a539 # dev 环境
nacos和Eureka对比
spring:
datasource:
url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
application:
name: orderServer # order服务名称
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
cluster-name: HZ # 集群名称
namespace: d21f7b38-b687-46c4-8af8-792fdb48a539 # dev 环境
ephemeral: false # 是否是临时实例