# 扩展其它注册中心 **注: nacos注册中心已经实现,本篇以nacos为例介绍如何扩展,如果要改成consul,可按照此方式进行修改** SOP默认使用eureka注册中心,如果要换成nacos注册中心,步骤如下: - 实现`com.gitee.sop.registryapi.service.RegistryService`接口 1.找到`SOP/sop-common/sop-registry-api`工程,在service.impl包下新建一个类,实现RegistryService接口 ```java public class RegistryServiceNacos implements RegistryService { @Override public List listAllService(int pageNo, int pageSize) throws Exception { // TODO: 返回服务实例 } @Override public void onlineInstance(ServiceInstance serviceInstance) throws Exception { // TODO: 实例上线 } @Override public void offlineInstance(ServiceInstance serviceInstance) throws Exception { // TODO: 实例下线 } } ``` 2.在`com.gitee.sop.registryapi.config.BaseRegistryConfig`中新增 ```java /** * 当配置了registry.name=nacos生效 * * @return */ @Bean @ConditionalOnProperty(prefix = "registry", name = "name", havingValue = "nacos") RegistryService registryServiceNacos() { return new RegistryServiceNacos(); } ``` 其中`@ConditionalOnProperty(prefix = "registry", name = "name", havingValue = "nacos")` 表示`application.properties`配置了`registry.name=nacos`参数才能生效,registry.name=nacos下文会讲到。 - 微服务端修改 1.修改微服务应用pom.xml,注释eureka服务发现依赖,添加nacos服务发现依赖 ```xml org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery 0.2.2.RELEASE ``` 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,填:eureka,使用nacos填:nacos name: nacos eureka-server-addr: http://localhost:1111/eureka/ nacos-server-addr: 127.0.0.1:8848 ``` - website-server修改 步骤同`SOP-admin修改` - 参考资料 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)