服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Redis - Govern Service 基于 Redis 的服务治理平台安装过程详解

Govern Service 基于 Redis 的服务治理平台安装过程详解

2021-08-04 15:09阿虎 Redis

Govern Service 是一个轻量级、低成本的服务注册、服务发现、 配置服务 SDK,通过使用现有基础设施中的 Redis 不用给运维部署带来额外的成本与负担,接下来通过本文给大家分享Govern Service 基于 Redis 的服务治理平台的相关知识,感兴

govern service 基于 redis 的服务治理平台(服务注册/发现 & 配置中心)

govern service 是一个轻量级、低成本的服务注册、服务发现、 配置服务 sdk,通过使用现有基础设施中的 redis (相信你已经部署了redis),不用给运维部署带来额外的成本与负担。
借助于 redis 的高性能, govern service 提供了超高tps&qps (10w+/s jmh 基准测试)。govern service 结合本地进程缓存策略 + redis pubsub,实现实时进程缓存刷新,兼具无与伦比的qps性能、进程缓存与 redis 的实时一致性。

安装

gradle

kotlin dsl

?
1
2
3
val governversion = "0.9.13";
   implementation("me.ahoo.govern:spring-cloud-starter-config:${governversion}")
   implementation("me.ahoo.govern:spring-cloud-starter-discovery:${governversion}")

maven

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="utf-8"?>
 
<project xmlns="http://maven.apache.org/pom/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
         xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
  <modelversion>4.0.0</modelversion>
  <artifactid>demo</artifactid>
  <properties>
    <govern.version>0.9.13</govern.version>
  </properties>
 
  <dependencies>
    <dependency>
      <groupid>me.ahoo.govern</groupid>
      <artifactid>spring-cloud-starter-config</artifactid>
      <version>${govern.version}</version>
    </dependency>
    <dependency>
      <groupid>me.ahoo.govern</groupid>
      <artifactid>spring-cloud-starter-discovery</artifactid>
      <version>${govern.version}</version>
    </dependency>
  </dependencies>
 
</project>

bootstrap.yml (spring-cloud-config)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
spring:
  application:
    name: ${service.name:govern-rest-api}
  cloud:
    govern:
      namespace: ${govern.namespace:govern-{system}}
      config:
        config-id: ${spring.application.name}.yml
      redis:
        mode: ${govern.mode:standalone}
        url: ${govern.redis.uri:redis://localhost:6379}
logging:
  file:
    name: logs/${spring.application.name}.log

rest-api server (optional)

安装 rest-api server

方式一:下载可执行文件

下载 rest-api-server

解压 rest-api-0.9.13.tar

?
1
2
3
cd rest-api-0.9.13
# 工作目录: rest-api-0.9.13
bin/rest-api --server.port=8080 --govern.redis.uri=redis://localhost:6379

方式二:docker run

?
1
2
docker pull ahoowang/govern-service:0.9.13
docker run --name govern-service -d -p 8080:8080 --link redis -e govern_redis_uri=redis://redis:6379  ahoowang/govern-service:0.9.13

macbook pro (m1)

请使用 ahoowang/govern-service:0.9.13-armv7

?
1
2
docker pull ahoowang/govern-service:0.9.13-armv7
docker run --name govern-service -d -p 8080:8080 --link redis -e govern_redis_uri=redis://redis:6379  ahoowang/govern-service:0.9.13-armv7

http://localhost:8080/dashboard

dashboard

Govern Service 基于 Redis 的服务治理平台安装过程详解

命名空间管理

Govern Service 基于 Redis 的服务治理平台安装过程详解

配置管理

Govern Service 基于 Redis 的服务治理平台安装过程详解

Govern Service 基于 Redis 的服务治理平台安装过程详解

Govern Service 基于 Redis 的服务治理平台安装过程详解

Govern Service 基于 Redis 的服务治理平台安装过程详解

服务管理

Govern Service 基于 Redis 的服务治理平台安装过程详解

Govern Service 基于 Redis 的服务治理平台安装过程详解

rest-api

http://localhost:8080/swagger-ui/index.html

namespace

Govern Service 基于 Redis 的服务治理平台安装过程详解

/v1/namespaces
get
/v1/namespaces/{namespace}
put
get
/v1/namespaces/current
get
/v1/namespaces/current/{namespace}
put

config

Govern Service 基于 Redis 的服务治理平台安装过程详解

/v1/namespaces/{namespace}/configs
get
/v1/namespaces/{namespace}/configs/{configid}
get
put
delete
/v1/namespaces/{namespace}/configs/{configid}/versions
get
/v1/namespaces/{namespace}/configs/{configid}/versions/{version}
get
/v1/namespaces/{namespace}/configs/{configid}/to/{targetversion}
put

service

Govern Service 基于 Redis 的服务治理平台安装过程详解

/v1/namespaces/{namespace}/services/
get
/v1/namespaces/{namespace}/services/{serviceid}/instances
get
put
/v1/namespaces/{namespace}/services/{serviceid}/instances/{instanceid}
delete
/v1/namespaces/{namespace}/services/{serviceid}/instances/{instanceid}/metadata
put
/v1/namespaces/{namespace}/services/{serviceid}/lb
get

jmh-benchmark

  • 基准测试运行环境:笔记本开发机 ( macbook pro (m1) )
  • 所有基准测试都在开发笔记本上执行。
  • redis 部署环境也在该笔记本开发机上。

configservice

?
1
gradle config:jmh
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# jmh version: 1.29
# vm version: jdk 11.0.11, openjdk 64-bit server vm, 11.0.11+9-lts
# vm invoker: /library/java/javavirtualmachines/zulu-11.jdk/contents/home/bin/java
# vm options: -dfile.encoding=utf-8 -djava.io.tmpdir=/users/ahoo/govern-service/config/build/tmp/jmh -duser.country=cn -duser.language=zh -duser.variant
# blackhole mode: full + dont-inline hint
# warmup: 1 iterations, 10 s each
# measurement: 1 iterations, 10 s each
# timeout: 10 min per iteration
# threads: 50 threads, will synchronize iterations
# benchmark mode: throughput, ops/time
 
benchmark                                          mode  cnt          score   error  units
consistencyredisconfigservicebenchmark.getconfig  thrpt       265321650.148          ops/s
redisconfigservicebenchmark.getconfig             thrpt          106991.476          ops/s
redisconfigservicebenchmark.setconfig             thrpt          103659.132          ops/s

servicediscovery

?
1
gradle discovery:jmh
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# jmh version: 1.29
# vm version: jdk 11.0.11, openjdk 64-bit server vm, 11.0.11+9-lts
# vm invoker: /library/java/javavirtualmachines/zulu-11.jdk/contents/home/bin/java
# vm options: -dfile.encoding=utf-8 -djava.io.tmpdir=/users/ahoo/govern-service/discovery/build/tmp/jmh -duser.country=cn -duser.language=zh -duser.variant
# blackhole mode: full + dont-inline hint
# warmup: 1 iterations, 10 s each
# measurement: 1 iterations, 10 s each
# timeout: 10 min per iteration
# threads: 50 threads, will synchronize iterations
# benchmark mode: throughput, ops/time
 
benchmark                                                mode  cnt          score   error  units
consistencyredisservicediscoverybenchmark.getinstances  thrpt        76894658.867          ops/s
consistencyredisservicediscoverybenchmark.getservices   thrpt       466036317.472          ops/s
redisservicediscoverybenchmark.getinstances             thrpt          107778.244          ops/s
redisservicediscoverybenchmark.getservices              thrpt          106920.412          ops/s
redisserviceregistrybenchmark.deregister                thrpt          114094.513          ops/s
redisserviceregistrybenchmark.register                  thrpt          109085.694          ops/s
redisserviceregistrybenchmark.renew                     thrpt          127003.104          ops/s

作者:ahoo wang (阿虎)

github: https://github.com/ahoo-wang/

smartsql(高性能、高生产力,超轻量级的orm!): https://github.com/dotnetcore/smartsql

smartcode(不只是代码生成器!): https://github.com/dotnetcore/smartcode

govern service 基于 redis 的服务治理平台(服务注册/发现 & 配置中心): https://github.com/ahoo-wang/govern-service

govern eventbus 历经多年生产环境验证的事件驱动架构框架: https://github.com/ahoo-wang/govern-eventbus

以上就是govern service 基于 redis 的服务治理平台的详细内容,更多关于redis 服务治理的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/Ahoo-Wang/p/govern-service.html

延伸 · 阅读

精彩推荐
  • Redis如何使用Redis锁处理并发问题详解

    如何使用Redis锁处理并发问题详解

    这篇文章主要给大家介绍了关于如何使用Redis锁处理并发问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考学习...

    haofly4522019-11-26
  • Redis关于Redis数据库入门详细介绍

    关于Redis数据库入门详细介绍

    大家好,本篇文章主要讲的是关于Redis数据库入门详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览...

    沃尔码6982022-01-24
  • Redis详解三分钟快速搭建分布式高可用的Redis集群

    详解三分钟快速搭建分布式高可用的Redis集群

    这篇文章主要介绍了详解三分钟快速搭建分布式高可用的Redis集群,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    万猫学社4502021-07-25
  • RedisRedis 6.X Cluster 集群搭建

    Redis 6.X Cluster 集群搭建

    码哥带大家完成在 CentOS 7 中安装 Redis 6.x 教程。在学习 Redis Cluster 集群之前,我们需要先搭建一套集群环境。机器有限,实现目标是一台机器上搭建 6 个节...

    码哥字节15752021-04-07
  • RedisRedis Template实现分布式锁的实例代码

    Redis Template实现分布式锁的实例代码

    这篇文章主要介绍了Redis Template实现分布式锁,需要的朋友可以参考下 ...

    晴天小哥哥2592019-11-18
  • RedisRedis集群的5种使用方式,各自优缺点分析

    Redis集群的5种使用方式,各自优缺点分析

    Redis 多副本,采用主从(replication)部署结构,相较于单副本而言最大的特点就是主从实例间数据实时同步,并且提供数据持久化和备份策略。...

    优知学院4082021-08-10
  • Redis《面试八股文》之 Redis十六卷

    《面试八股文》之 Redis十六卷

    redis 作为我们最常用的内存数据库,很多地方你都能够发现它的身影,比如说登录信息的存储,分布式锁的使用,其经常被我们当做缓存去使用。...

    moon聊技术8182021-07-26
  • Redisredis缓存存储Session原理机制

    redis缓存存储Session原理机制

    这篇文章主要为大家介绍了redis缓存存储Session原理机制详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    程序媛张小妍9252021-11-25