开发阶段采用单机安装即可。
在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
包即可。
将这个包解压到任意非中文目录下,如图:
目录说明:
Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。
如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中的端口:
修改其中的内容:
启动非常简单,进入bin目录,结构如下:
然后执行命令即可:
windows命令:
startup.cmd -m standalone
执行后的效果如图:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在浏览器输入地址:http://127.0.0.1:8848/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>
cloud:
nacos:
server-addr: localhost:8848 # nacos服务二等服务名称
discovery:
cluster-name: SH # HZ 杭州
为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 环境
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 # 是否是临时实例