You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
SOP/doc/docs/files/10107_扩展其它注册中心.md

3.1 KiB

扩展其它注册中心

注: nacos注册中心已经实现,本篇以nacos为例介绍如何扩展,如果要改成consul,可按照此方式进行修改

SOP默认使用eureka注册中心,如果要换成nacos注册中心,步骤如下:

  • 实现com.gitee.sop.registryapi.service.RegistryService接口

1.找到SOP/sop-common/sop-registry-api工程,在service.impl包下新建一个类,实现RegistryService接口

public class RegistryServiceNacos implements RegistryService {
    
    @Override
    public List<ServiceInfo> 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中新增

/**
 * 当配置了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服务发现依赖

<!-- 注册中心【只能用一个,不用的注释掉】 -->
<!-- 使用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相关配置

spring:
  cloud:
    # nacos注册中心,和eureka只能用一个
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  • 网关修改

找到sop-gateway工程,步骤同上

  • SOP-admin修改

修改yml文件,新增nacos服务器地址,registry.name填nacos

# 注册中心地址,根据实际情况改,这里只是参数,并不会去注册
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介绍及安装

2.nacos spring cloud注册发现