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.
112 lines
3.1 KiB
112 lines
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接口
|
|
|
|
```java
|
|
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`中新增
|
|
|
|
```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
|
|
<!-- 注册中心【只能用一个,不用的注释掉】 -->
|
|
<!-- 使用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,填: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)
|
|
|