美文网首页
Govern Service || 新的服务发现、配置管理实现

Govern Service || 新的服务发现、配置管理实现

作者: 冷冷zz | 来源:发表于2021-05-19 09:33 被阅读0次

    Govern Service 是一个轻量级、低成本的服务注册、服务发现、 配置服务 SDK,通过使用现有基础设施中的 Redis (相信你已经部署了 Redis),不用给运维部署带来额外的成本与负担。 借助于 Redis 的高性能, Govern Service 提供了超高 TPS&QPS。Govern Service 结合本地进程缓存策略 + Redis PubSub,实现实时进程缓存刷新,兼具无与伦比的 QPS 性能、进程缓存与 Redis 的实时一致性。

    服务发现

    image
    • maven 依赖,如下服务间调用还需要添加 spring-cloud-starter-loadbalancer
    <dependency>
        <groupId>me.ahoo.govern</groupId>
        <artifactId>spring-cloud-starter-discovery</artifactId>
    </dependency>
    

    服务提供方

    • 服务提供方接口
    public class DemoController {
    
        @GetMapping("/get")
        public String demo() {
            return "hello provider";
        }
    }
    
    • application.yml 配置文件,指定 redis 地址
    spring:
      cloud:
        govern:
          redis:
            mode: standalone
            url: redis://127.0.0.1:6379
      application:
        name: provider
    

    服务消费方

    • application.yml 配置文件,指定 redis 地址
    spring:
      cloud:
        govern:
          redis:
            mode: standalone
            url: redis://127.0.0.1:6379
      application:
        name: consumer
    
    • 接口调用演示
    public class DemoController {
        private final RestTemplate restTemplate;
    
        @GetMapping
        public String req() {
            String url = "http://provider/get";
            return restTemplate.getForEntity(url, String.class).getBody();
        }
    }
    
    

    调用测试

    curl http://localhost:8090
    
    hello world
    

    配置管理

    image
    • maven 依赖
    <dependency>
      <groupId>me.ahoo.govern</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    
    • application.yml 配置
    spring:
      application:
        name: config
      cloud:
        govern:
          config:
            config-id: config.yml
          redis:
            mode: standalone
            url: redis://localhost:6379
    
    • 代码注入配置 key
    @RefreshScope
    public class DemoController {
    
        @Value("${config.key}")
        private String key;
    
        @GetMapping
        public String demo(){
            return key;
        }
    
    }
    
    • 新增配置管理
    image

    总结

    • 作者使用基础设施 redis 作为注册、配置中心,实现基于 Spring Cloud Commons 标准的 微服务注册发现、配置管理。 Govern Service 源码非常的简洁,对于初学者学习参考 Spring Cloud 核心源码设计非常有帮助。

    • 笔者曾在春节期间,基于 Spring Cloud Commons 实现了一套 pig-mesh 基本实现了全部的 Spring Cloud 抽象 (服务发现、配置管理、负载均衡、语言异构) 可以和 Govern Service 一并参考学习。

    相关文章

      网友评论

          本文标题:Govern Service || 新的服务发现、配置管理实现

          本文链接:https://www.haomeiwen.com/subject/zuoujltx.html