前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Govern Service || 新的服务发现、配置管理实现

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

作者头像
冷冷
发布2021-05-20 14:45:33
4530
发布2021-05-20 14:45:33
举报
文章被收录于专栏:冷冷

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

服务发现

  • maven 依赖,如下服务间调用还需要添加 spring-cloud-starter-loadbalancer
代码语言:javascript
复制
<dependency>
    <groupId>me.ahoo.govern</groupId>
    <artifactId>spring-cloud-starter-discovery</artifactId>
</dependency>

服务提供方

  • 服务提供方接口
代码语言:javascript
复制
public class DemoController {

    @GetMapping("/get")
    public String demo() {
        return "hello provider";
    }
}
  • application.yml 配置文件,指定 redis 地址
代码语言:javascript
复制
spring:
  cloud:
    govern:
      redis:
        mode: standalone
        url: redis://127.0.0.1:6379
  application:
    name: provider

服务消费方

  • application.yml 配置文件,指定 redis 地址
代码语言:javascript
复制
spring:
  cloud:
    govern:
      redis:
        mode: standalone
        url: redis://127.0.0.1:6379
  application:
    name: consumer
  • 接口调用演示
代码语言:javascript
复制
public class DemoController {
    private final RestTemplate restTemplate;

    @GetMapping
    public String req() {
        String url = "http://provider/get";
        return restTemplate.getForEntity(url, String.class).getBody();
    }
}

调用测试

代码语言:javascript
复制
curl http://localhost:8090

hello world

配置管理

  • maven 依赖
代码语言:javascript
复制
<dependency>
  <groupId>me.ahoo.govern</groupId>
  <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
  • application.yml 配置
代码语言:javascript
复制
spring:
  application:
    name: config
  cloud:
    govern:
      config:
        config-id: config.yml
      redis:
        mode: standalone
        url: redis://localhost:6379
  • 代码注入配置 key
代码语言:javascript
复制
@RefreshScope
public class DemoController {

    @Value("${config.key}")
    private String key;

    @GetMapping
    public String demo(){
        return key;
    }

}
  • 新增配置管理

总结

  • 作者使用基础设施 redis 作为注册、配置中心,实现基于 Spring Cloud Commons 标准的 微服务注册发现、配置管理。 Govern Service 源码非常的简洁,对于初学者学习参考 Spring Cloud 核心源码设计非常有帮助。
  • 笔者曾在春节期间,基于 Spring Cloud Commons 实现了一套 pig-mesh 基本实现了全部的 Spring Cloud 抽象 (服务发现、配置管理、负载均衡、语言异构) 可以和 Govern Service 一并参考学习。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务发现
    • 服务提供方
      • 服务消费方
        • 调用测试
        • 配置管理
        • 总结
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档