Govern Service 基于 Redis 的服務(wù)治理平臺(服務(wù)注冊/發(fā)現(xiàn) 配置中心)
Govern Service 是一個輕量級、低成本的服務(wù)注冊、服務(wù)發(fā)現(xiàn)、 配置服務(wù) SDK,通過使用現(xiàn)有基礎(chǔ)設(shè)施中的 Redis (相信你已經(jīng)部署了Redis),不用給運(yùn)維部署帶來額外的成本與負(fù)擔(dān)。
借助于 Redis 的高性能, Govern Service 提供了超高TPSQPS (10W+/s JMH 基準(zhǔn)測試)。Govern Service 結(jié)合本地進(jìn)程緩存策略 + Redis PubSub,實(shí)現(xiàn)實(shí)時進(jìn)程緩存刷新,兼具無與倫比的QPS性能、進(jìn)程緩存與 Redis 的實(shí)時一致性。
安裝
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
方式一:下載可執(zhí)行文件
下載 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
![](/d/20211018/802a6cdf02f16eed401412bb0378864e.gif)
命名空間管理
![](/d/20211018/62a46ff592a2de13ee23ccb439d4e1be.gif)
配置管理
![](/d/20211018/1ed2af95930f1bf6b13eb4a3b7259962.gif)
![](/d/20211018/dc59cde9e69f06025bdae20cbc75a2cb.gif)
![](/d/20211018/713b557a5c18949672099631fc97598f.gif)
![](/d/20211018/b489daa21a11046e1a9d1e47edd30446.gif)
服務(wù)管理
![](/d/20211018/615fbc2ca54f4abe8731dcdbdccc6dc0.gif)
![](/d/20211018/b01f4370a14c5d028c91ca4f82adee77.gif)
REST-API
http://localhost:8080/swagger-ui/index.html
Namespace
![](/d/20211018/b567b6420ceb535012d444b94073cb1c.gif)
/v1/namespaces
GET
/v1/namespaces/{namespace}
PUT
GET
/v1/namespaces/current
GET
/v1/namespaces/current/{namespace}
PUT
Config
![](/d/20211018/138123a9739b9181db15c09b9b3ea530.gif)
/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
![](/d/20211018/f44b26e37ac4e4dc275ab8152b29d261.gif)
/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
- 基準(zhǔn)測試運(yùn)行環(huán)境:筆記本開發(fā)機(jī) ( MacBook Pro (M1) )
- 所有基準(zhǔn)測試都在開發(fā)筆記本上執(zhí)行。
- Redis 部署環(huán)境也在該筆記本開發(fā)機(jī)上。
ConfigService
# 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
# 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(高性能、高生產(chǎn)力,超輕量級的ORM!): https://github.com/dotnetcore/SmartSql
SmartCode(不只是代碼生成器!): https://github.com/dotnetcore/SmartCode
Govern Service 基于 Redis 的服務(wù)治理平臺(服務(wù)注冊/發(fā)現(xiàn) 配置中心): https://github.com/Ahoo-Wang/govern-service
Govern EventBus 歷經(jīng)多年生產(chǎn)環(huán)境驗(yàn)證的事件驅(qū)動架構(gòu)框架: https://github.com/Ahoo-Wang/govern-eventbus
以上就是Govern Service 基于 Redis 的服務(wù)治理平臺的詳細(xì)內(nèi)容,更多關(guān)于Redis 服務(wù)治理的資料請關(guān)注腳本之家其它相關(guān)文章!
您可能感興趣的文章:- linux 開機(jī)自啟動redis服務(wù)的方法
- 一次centos Docker網(wǎng)橋模式無法訪問宿主機(jī)Redis服務(wù)的故障排除經(jīng)歷
- Windows服務(wù)器中PHP如何安裝redis擴(kuò)展
- springcloud微服務(wù)基于redis集群的單點(diǎn)登錄實(shí)現(xiàn)解析
- 淺談Redis在微服務(wù)架構(gòu)中的幾種應(yīng)用場景