您的位置:首页 > 编程语言 > Java开发

springcloud之服务网关Netflix Zuul与分布式配置Spring Cloud Config

2019-02-24 16:42 826 查看

  • 二、分布式配置——Spring Cloud Config
  • 2.2、与github集成
  • 2.3、服务端配置
  • 2.4、客户端配置
  • 阅读前须知:[spring cloud入门+注册中心搭建Netflix Eureka](https://blog.csdn.net/qq_38061322/article/details/87474406

    一、服务网关——Netflix Zuul

    1.1、简介

    Zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。
    Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门,也要注册入Eureka.
    官网资料
    https://github.com/Netflix/zuul

    1.2、使用

    创建maven项目

    1.2.1、导包

    <!--springboot支持-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
    </dependency>

    1.2.2、创建并配置application.yml

    server:
    port: 4399
    spring:
    application:
    name: MICROSERVICE-ZUUL-GATEWAY
    eureka:
    client:
    service-url:
    defaultZone: http://localhost:7001/eureka #注册到注册中心
    instance:
    instance-id: gateway-9527.com
    prefer-ip-address: false #不显示ip地址
    zuul:
    routes:
    springcloud-demo-ehr: /api/** #springcloud-demo-ehr的别名 通过访问http://localhost:4399/api/getEmp/1
    ignored-services: springcloud-demo-ehr #忽视不创建路由规则 这样不能访问http://localhost:4399/springcloud-demo-ehr/getEmp/1
    prefix: /ehr #前缀 访问http://localhost:4399/ehr/api/getEmp/1

    1.2.3、修改入口类

    @SpringBootApplication
    @EnableZuulProxy
    public class Zull_RunApp {
    
    public static void main(String[] args) {
    SpringApplication.run(Zull_RunApp.class,args);
    }
    }

    1.2.4、启动测试

    启动注册中心
    启动服务提供者
    启动zuul测试

    二、分布式配置——Spring Cloud Config

    微服务架构中,每个项目都有一个yml配置,管理起来麻烦。要使用spring cloud config来统一管理。

    2.1、简介

    2.1.1、介绍

    在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。

    2.1.2、架构

    2.1.3、作用

    1. 集中管理配置
    2. 不同环境不同配置,动态化的配置更新,分环境部署
    3. 运行期间动态调整配置,不需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
    4. 当配置发生冲突时,服务不需要重启即可感知到配置的变化并应用新的配置
    5. 将配置xinxi以REST接口的形式暴露

    2.2、与github集成

    创建maven项目

    2.3、服务端配置

    2.3.1、github创建配置文件

    2.3.2、导包

    <dependencies>
    <!--springboot支持-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</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>
    </dependencies>

    2.3.3、配置application.yml文件

    server:
    port: 1299
    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/hpyao/microservice-config.git
    username:    #你的github账号
    password:    #你的github密码

    2.3.4、启动类配置

    @SpringBootApplication
    @EnableDiscoveryClient  //标识是一个注册中心客户端
    @EnableConfigServer //开启配置服务端
    public class ConfigRunApp{
    
    public static void main(String[] args) {
    SpringApplication.run(ConfigRunApp.class,args);
    }
    }`

    2.3.5、测试

    http://localhost:1299/application-user/test
    http://localhost:1299/application-user/dev

    2.4、客户端配置

    .2.4.1、导包

    <!--springboot支持-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    
    <!--配置中心支持-->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>

    2.4.2、配置全局bootstrap.yml

    可以不要application.yml,如果有的话,则是合并

    spring:
    cloud:
    config:
    name: application-user #github上面名称
    profile: test #环境
    label: master #分支
    uri: http://127.0.0.1:1299 #配置服务器
    eureka:
    client:
    service-url:
    defaultZone: http://localhost:7001/eureka  #告诉服务提供者要把服务注册到哪儿 #单机环境
    instance:
    prefer-ip-address: true #显示客户端真实ip

    2.4.3、测试

    开启注册中心
    开启服务端配置中心
    开启客户端

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐