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
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-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 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
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
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
作者: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 服務治理的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- docker compose快速開始超詳細教程
- 詳解redis在微服務領域的貢獻
- 解決使用Docker Compose管理容器的問題
- IDEA通過Docker插件部署SpringBoot項目的過程詳解
- docker-compose教程之安裝使用和快速入門