1.配置中心简介
Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用。作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为这些环境创建配置,并且在需要迁移环境的时候获取对应环境的配置来运行
2.配置中心原理图
3.配置中心案例
1.导入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2.添加资源文件(application.yml)
server:
port: 8888
spring:
cloud:
config:
server:
git:
//你的资源文件的地址或者ip
uri: https://github.com/wp520168/configcenter
3.创建main方法
package cn.ps;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
public static void main(String[] args) {
SpringApplication.run(ConfigServer.class, args);
}
}
4.创建服务层微服务
1.资源文件(bootstrap.yml)
spring:
application:
name: userservice
profiles:
//你要抓取的资源文件环境
active: dev
cloud:
config:
uri: http://localhost:8888
- 引入配置客户端依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
4.zuul简介
路由是微服务架构的不可或缺的一部分。例如:”/” 可能映射到你应用主页,/api/users映射到用户服务,/api/shop映射到购物服务。Zuul。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器 当一个UI应用想要代理调用一个或者多个后台服务的时候,Sping cloud创建了一个嵌入的Zuul proxy很方便的开发一个简单的案例。这个功能对于代理前端需要访问的后端服务非常有用,避免了所有后端服务需要关心管理CORS和认证的问题.
5.zuul原理图
6.如何配置zuul路由
1.引入配置依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
2.配置资源文件
server:
port: 88
eureka:
instance:
#将来注册到该注册中心的微服务包括注册中心都是用IP地址
preferIpAddress: true
hostname: localhost
client:
#是否注册到注册中心,注册中心自己不需要注册
registerWithEureka: true
#是否抓取注册中心的注册信息
fetchRegistry: true
serviceUrl:
#是微服务和客户端用来注册和发现的地址
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: userzuul
3.创建main方法
package cn.ps;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class);
}
}
7.zuul访问
http://zuul服务器ip:zuul服务端口/zuul/被调用服务id/被调用服务的方法