经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Redis » 查看文章
Govern Service 基于 Redis 的服务治理平台安装过程详解
来源:jb51  时间:2021/5/17 9:30:01  对本文有异议

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. val governVersion = "0.9.13";
  2. implementation("me.ahoo.govern:spring-cloud-starter-config:${governVersion}")
  3. implementation("me.ahoo.govern:spring-cloud-starter-discovery:${governVersion}")

Maven

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

bootstrap.yml (Spring-Cloud-Config)

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

REST-API Server (Optional)

安装 REST-API Server

方式一:下载可执行文件

下载 rest-api-server

解压 rest-api-0.9.13.tar

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

方式二:Docker run

  1. docker pull ahoowang/govern-service:0.9.13
  2. 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. docker pull ahoowang/govern-service:0.9.13-armv7
  2. 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

命名空间管理

配置管理

服务管理

REST-API

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

Namespace

/v1/namespaces
GET
/v1/namespaces/{namespace}
PUT
GET
/v1/namespaces/current
GET
/v1/namespaces/current/{namespace}
PUT

Config

/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

/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. # JMH version: 1.29
  2. # VM version: JDK 11.0.11, OpenJDK 64-Bit Server VM, 11.0.11+9-LTS
  3. # VM invoker: /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/java
  4. # 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
  5. # Blackhole mode: full + dont-inline hint
  6. # Warmup: 1 iterations, 10 s each
  7. # Measurement: 1 iterations, 10 s each
  8. # Timeout: 10 min per iteration
  9. # Threads: 50 threads, will synchronize iterations
  10. # Benchmark mode: Throughput, ops/time
  11.  
  12. Benchmark Mode Cnt Score Error Units
  13. ConsistencyRedisConfigServiceBenchmark.getConfig thrpt 265321650.148 ops/s
  14. RedisConfigServiceBenchmark.getConfig thrpt 106991.476 ops/s
  15. RedisConfigServiceBenchmark.setConfig thrpt 103659.132 ops/s

ServiceDiscovery

  1. gradle discovery:jmh
  1. # JMH version: 1.29
  2. # VM version: JDK 11.0.11, OpenJDK 64-Bit Server VM, 11.0.11+9-LTS
  3. # VM invoker: /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/java
  4. # 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
  5. # Blackhole mode: full + dont-inline hint
  6. # Warmup: 1 iterations, 10 s each
  7. # Measurement: 1 iterations, 10 s each
  8. # Timeout: 10 min per iteration
  9. # Threads: 50 threads, will synchronize iterations
  10. # Benchmark mode: Throughput, ops/time
  11.  
  12. Benchmark Mode Cnt Score Error Units
  13. ConsistencyRedisServiceDiscoveryBenchmark.getInstances thrpt 76894658.867 ops/s
  14. ConsistencyRedisServiceDiscoveryBenchmark.getServices thrpt 466036317.472 ops/s
  15. RedisServiceDiscoveryBenchmark.getInstances thrpt 107778.244 ops/s
  16. RedisServiceDiscoveryBenchmark.getServices thrpt 106920.412 ops/s
  17. RedisServiceRegistryBenchmark.deregister thrpt 114094.513 ops/s
  18. RedisServiceRegistryBenchmark.register thrpt 109085.694 ops/s
  19. 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 服务治理的资料请关注w3xue其它相关文章!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号