# nacos注册中心

使用nacos作为注册中心，源码在`registry-nacos`分支

这里演示如何将默认的eureka注册中心替换成nacos，步骤如下：

- 准备工作

1.安装nacos，前往[最新稳定版本](https://github.com/alibaba/nacos/releases)，下载最新版nacos

2.启动nacos服务器，cd nacos/bin

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

`sh startup.sh -m standalone`

Windows，启动命令：

`cmd startup.cmd`

或者双击startup.cmd运行文件。 

更多访问：https://nacos.io/zh-cn/docs/quick-start.html

- 微服务端修改

1.修改微服务应用pom，打开`sop-example/sop-story/sop-story-web/pom.xml`，注释eureka服务发现依赖，添加nacos服务发现依赖

```xml
<!-- 注册中心【只能用一个，不用的注释掉】 -->
<!-- 使用eureka注册中心
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
-->

<!-- 使用nacos注册中心
    版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本，版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
   https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-alibaba-nacos-discovery
-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>0.2.2.RELEASE</version>
</dependency>
<!-- 注册中心end -->
```

2.yml文件新增nacos配置，并注释掉eureka相关配置

```yaml
spring:
  cloud:
    # nacos注册中心，和eureka只能用一个
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
```

- 网关修改

找到`sop-gateway`工程，步骤同上

- SOP-admin修改


修改yml文件，设置nacos服务器地址，`registry.name`填nacos

```yaml
# 注册中心地址，根据实际情况改，这里只是参数，并不会去注册
registry:
  eureka-server-addr: http://localhost:1111/eureka/
  # nacos服务器地址
  nacos-server-addr: 127.0.0.1:8848
  # 使用eureka，填：eureka，使用nacos填：nacos
  name: nacos
```

- website-server修改

步骤同`SOP-admin修改`

如果要改成consul注册中心，可参照以上步骤。

- 参考资料

1.[nacos介绍及安装](https://nacos.io/zh-cn/docs/quick-start.html)

2.[nacos spring cloud注册发现](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html)
