在使用springcloud的时候,我们的部分配置文件是放在远端云服务器上的,比如github,码云,等等代码托管中心,但Eureka和config_server的配置不会放在远端,因为注册中心服务需要启动,配置中心服务也不需要放在远端,因此,在知晓这个道理之后,我们在总结一下springcloud中的远端配置服务的构建
1.本地Eureka,config_server的配置
首先,pom,xml的依赖
<!--顶级父类,导入依赖的管理包-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
//这些就放前面解释一下,得知道
<dependencies>
<!--springboot中的web开始模块依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springboot中的测试模块依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--springcloud中注册中心服务eureka的服务依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!--eureka的客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--配置中心支持,配置中心的服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!--配置中心支持-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!--zuul网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
</dependencies>
首先,我们需要启动Eureka注册中心,已经配置中心的服务端,即Eureka7001和config_server_8848这两个模块
这两个模块都是正常启动,其application.yml配置文件,以及启动项都类似,这里列举一个
application.yml配置文件,根据自己服务的不同yml配置内容不同
server:
port: 7001
eureka:
instance:
hostname: eureka-7001.com
client:
fetch-registry: false #是否注册到eureka
register-with-eureka: false #是否从服务获取注册信息
service-url:
defaultZone: http://www.eureka-7001.com:7001/eureka/ #这里是另一个中心的地址
这是配置中心服务端的yml配置
server:
port: 8848
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
instance:
prefer-ip-address: true
spring:
application:
name: spring-cloud-config-server
cloud:
config:
server:
git:
uri: https://github.com/github-lanca/aigou_config_server.git
username: github-lanca #github的账号密码,账号可以写username或者email
password: ************ #github的密码
启动项,EurekaApplication7001,其他服务启动项类似
@SpringBootApplication
@EnableEurekaServer //eureka注册中心的服务端
public class aigou_EurekaApplication7001 {
public static void main(String[] args) {
SpringApplication.run(aigou_EurekaApplication7001.class);
}
}
以上2个yml配置就是需要在本地配置, 其他的配置,我们通过配置中心去远程拿到.
远程配置中心上的配置内容
spring:
profiles:
active:
- dev
---
server:
port: 8001
spring:
profiles: dev #开发环境
application:
name: USER-PROVIDER
eureka:
client:
service-url:
defaultZone: http://eureka-7001.com:7001/eureka #告诉服务提供者要把服务注册到哪儿 #单机环境
instance:
prefer-ip-address: true #显示客户端真实ip
---
server:
port: 8847
spring:
profiles: test #测试环境
application:
name: USER-PROVIDER-TEST
eureka:
client:
service-url:
defaultZone: http://eureka-7001.com:7001/eureka #告诉服务提供者要把服务注册到哪儿 #单机环境
instance:
prefer-ip-address: true #显示客户端真实ip
---
# 其他的服务配置,通过config_server8848的application.yml配置来获取
整体流程解释如下:
重点,Eureka服务注册中心和配置中心的服务端,必须得在本地启动,即远程配置文件的内容不配置这些,这两个服务开启了才能去网上获取其他服务的配置内容,因为那是基础的启动项配置,有了启动配置,再通过启动配置去远程获取其他服务配置,这就是一个远程配置中心的流程和思想
重点:基本服务得在本地配置,是通过在本地启动好了的服务去网上(远程)获取其他服务的配置中心,这样你就能通过远程配置修改,修改程序服务功能,对框架的整体,项目的整体控制更为方便