Govern Service 基于 Redis 的服务治理平台
2021-05-17 00:05
1006 查看
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
val governVersion = "0.9.13"; implementation("me.ahoo.govern:spring-cloud-starter-config:${governVersion}") implementation("me.ahoo.govern:spring-cloud-starter-discovery:${governVersion}")
Maven
<?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)
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-0.9.13.tar
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
docker 2b14 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
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
Dashboard
命名空间管理
配置管理
服务管理
REST-API
Namespace
- /v1/namespaces GET
-
PUT
-
GET
-
PUT
Config
- /v1/namespaces/{namespace}/configs GET
-
GET
-
GET
-
GET
-
PUT
Service
- /v1/namespaces/{namespace}/services/ GET
-
GET
-
DELETE
-
PUT
-
GET
JMH-Benchmark
- 基准测试运行环境:笔记本开发机 ( MacBook Pro (M1) )
- 所有基准测试都在开发笔记本上执行。
- Redis 部署环境也在该笔记本开发机上。
ConfigService
gradle config:jmh
# 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
gradle discovery:jmh
# 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
相关文章推荐
- .NET平台下Redis使用(六)【ServiceStack.Redis发布、订阅服务示例】
- 基于 MOSN 和 Istio Service Mesh 的服务治理实践
- install redis service as windows service in windows platform--在windows平台下以windows服务方式安装redis
- 【微服务专场】融数数据基于Kubernetes的微服务治理和构建平台-2017CCTC大会-专题视频课程...
- 麻雀虽小五脏具全-基于Redis的极简服务发现框架Captain
- Redis教程--基于docker搭建redis文档服务
- 创意视觉应用︱基于深度学习的CVaaS计算机视觉即服务案例(Computer Vision as a Service)
- Node.js中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
- SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一个简单的基于 Eureka 服务治理发现的项目
- 面试系列26 如何基于dubbo进行服务治理、服务降级、失败重试以及超时重试
- Aooms_基于SpringCloud的微服务基础开发平台实战_002_工程构建
- OpenRS—— 开放式遥感数据处理与服务平台 OpenRS-Cloude:基于MapReduce的并行遥感处理系统
- 基于Web服务的应用、解决方案和开发平台
- Python Web中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
- 基于redis的分布式锁服务实现
- 基于Redis的开源分布式服务Codis
- 基于service服务后台运行的music播放器
- 基于Java的深入微服务原理改造房产销售平台 --------2、创建Spring Boot工程
- Spring-Redis基于Redis的MS消息服务
- 时代亿信基于CA服务的统一认证平台概览(图)[z]