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

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

延伸 · 阅读

精彩推荐
  • RedisRedis全量复制与部分复制示例详解

    Redis全量复制与部分复制示例详解

    这篇文章主要给大家介绍了关于Redis全量复制与部分复制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis爬虫具有一定的参考学习...

    豆子先生5052019-11-27
  • RedisRedis如何实现数据库读写分离详解

    Redis如何实现数据库读写分离详解

    Redis的主从架构,能帮助我们实现读多,写少的情况,下面这篇文章主要给大家介绍了关于Redis如何实现数据库读写分离的相关资料,文中通过示例代码介绍...

    罗兵漂流记6092019-11-11
  • RedisRedis的配置、启动、操作和关闭方法

    Redis的配置、启动、操作和关闭方法

    今天小编就为大家分享一篇Redis的配置、启动、操作和关闭方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    大道化简5312019-11-14
  • Redis详解Redis复制原理

    详解Redis复制原理

    与大多数db一样,Redis也提供了复制机制,以满足故障恢复和负载均衡等需求。复制也是Redis高可用的基础,哨兵和集群都是建立在复制基础上实现高可用的...

    李留广10222021-08-09
  • RedisRedis 事务知识点相关总结

    Redis 事务知识点相关总结

    这篇文章主要介绍了Redis 事务相关总结,帮助大家更好的理解和学习使用Redis,感兴趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • Redisredis中如何使用lua脚本让你的灵活性提高5个逼格详解

    redis中如何使用lua脚本让你的灵活性提高5个逼格详解

    这篇文章主要给大家介绍了关于redis中如何使用lua脚本让你的灵活性提高5个逼格的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具...

    一线码农5812019-11-18
  • Redisredis实现排行榜功能

    redis实现排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用来实现排行榜功能,本文就来简单的介绍一下如何使用,具有一定的参考价值,感兴趣的小伙伴们...

    乘月归5022021-08-05
  • Redisredis 交集、并集、差集的具体使用

    redis 交集、并集、差集的具体使用

    这篇文章主要介绍了redis 交集、并集、差集的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    xiaojin21cen10152021-07-27