# govern-service **Repository Path**: mirrors/govern-service ## Basic Information - **Project Name**: govern-service - **Description**: Govern Service 是一个轻量级、低成本的服务注册、服务发现、 配置服务 SDK,通过使用现有基础设施中的 Redis (相信你已经部署了Redis),不用给运维部署带来 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: https://www.oschina.net/p/govern-service - **GVP Project**: No ## Statistics - **Stars**: 30 - **Forks**: 8 - **Created**: 2021-05-07 - **Last Updated**: 2026-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # [CoSky](https://github.com/Ahoo-Wang/CoSky) - 高性能、低成本微服务治理平台 [![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) [![GitHub release](https://img.shields.io/github/release/Ahoo-Wang/CoSky.svg)](https://github.com/Ahoo-Wang/CoSky/releases) [![Maven Central Version](https://img.shields.io/maven-central/v/me.ahoo.cosky/cosky-core)](https://central.sonatype.com/artifact/me.ahoo.cosky/cosky-core) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/9e31358946b645abb283e83b10e85e2d)](https://www.codacy.com/gh/Ahoo-Wang/CoSky/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Ahoo-Wang/CoSky&utm_campaign=Badge_Grade) [![codecov](https://codecov.io/gh/Ahoo-Wang/CoSky/branch/main/graph/badge.svg?token=N114DHHBUI)](https://codecov.io/gh/Ahoo-Wang/CoSky) [![Integration Test Status](https://github.com/Ahoo-Wang/CoSky/actions/workflows/integration-test.yml/badge.svg)](https://github.com/Ahoo-Wang/CoSky) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Ahoo-Wang/CoSky) > [English Document](https://github.com/Ahoo-Wang/CoSky/blob/main/README.md) *[CoSky](https://github.com/Ahoo-Wang/CoSky)* 是一个轻量级、低成本的服务注册、服务发现、配置服务 SDK,通过使用现有基础设施中的 Redis(相信您已经部署了 Redis),无需给运维部署带来额外的成本与负担。借助 Redis 的高性能,*CoSky* 提供了超高的 TPS&QPS (10W+/s [JMH 基准测试](#jmh-benchmark))。*CoSky* 结合本地进程缓存策略 + *Redis PubSub*,实现实时进程缓存刷新,兼具无与伦比的 QPS 性能 (7000W+/s [JMH 基准测试](#jmh-benchmark)) 和进程缓存与 Redis 的实时一致性。 ## 服务注册与发现

CoSky-Discovery

## 配置中心

CoSky-Configuration

## Examples [Service Consumer --RPC--> Service Provider Examples](https://github.com/Ahoo-Wang/CoSky/tree/main/examples) ## 安装 ### Gradle > Kotlin DSL ``` kotlin val coskyVersion = "lastVersion"; implementation("me.ahoo.cosky:spring-cloud-starter-cosky-config:${coskyVersion}") implementation("me.ahoo.cosky:spring-cloud-starter-cosky-discovery:${coskyVersion}") implementation("org.springframework.cloud:spring-cloud-starter-loadbalancer:3.0.3") ``` ### Maven ```xml 4.0.0 demo lastVersion me.ahoo.cosky spring-cloud-starter-cosky-config ${cosky.version} me.ahoo.cosky spring-cloud-starter-cosky-discovery ${cosky.version} org.springframework.cloud spring-cloud-starter-loadbalancer 3.0.3 ``` ### bootstrap.yaml (Spring-Cloud-Config) ```yaml spring: application: name: ${service.name:cosky} data: redis: url: redis://localhost:6379 cloud: cosky: namespace: ${cosky.namespace:cosky-{system}} config: config-id: ${spring.application.name}.yaml service-registry: auto-registration: enabled: ${cosky.auto-registry:true} logging: file: name: logs/${spring.application.name}.log ``` ## 🌐 REST-API Server(可选) 根据您的环境选择三种部署方式之一: ### 🖥️ 方式一:独立可执行文件 下载最新版本并直接运行: ```shell # 下载 cosky-server wget https://github.com/Ahoo-Wang/cosky/releases/latest/download/cosky-server.tar # 解压并运行 tar -xvf cosky-server.tar cd cosky-server bin/cosky --server.port=8080 --spring.data.redis.url=redis://localhost:6379 ``` ### 🐳 方式二:Docker 部署 使用 Docker 快速部署: ```shell docker pull ahoowang/cosky:latest docker run --name cosky -d -p 8080:8080 \ -e SPRING_DATA_REDIS_URL=redis://your-redis-host:6379 \ ahoowang/cosky:latest ``` ### ☸️ 方式三:Kubernetes 部署 在 Kubernetes 集群中部署: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: cosky labels: app: cosky spec: replicas: 1 selector: matchLabels: app: cosky template: metadata: labels: app: cosky spec: containers: - name: cosky image: ahoowang/cosky:latest ports: - containerPort: 8080 protocol: TCP env: - name: SPRING_DATA_REDIS_URL value: redis://your-redis-host:6379 resources: requests: cpu: 250m memory: 1024Mi limits: cpu: "1" memory: 1280Mi volumeMounts: - name: volume-localtime mountPath: /etc/localtime volumes: - name: volume-localtime hostPath: path: /etc/localtime type: "" --- apiVersion: v1 kind: Service metadata: name: cosky labels: app: cosky spec: selector: app: cosky ports: - name: rest port: 80 protocol: TCP targetPort: 8080 ``` ### 🎨 Dashboard 访问基于Web的管理界面: > [http://localhost:8080](http://localhost:8080)

CoSky-Dashboard

CoSky Dashboard 提供以下功能: - 实时服务监控和管理 - 配置管理(含版本控制) - 命名空间隔离和管理 - 基于角色的访问控制(RBAC) - 审计日志用于合规性 - 服务拓扑可视化 - 简单的导入/导出功能 ### 登录

CoSky-Dashboard-login

### 服务依赖拓扑

CoSky-Dashboard-topology

### 基于角色的访问控制(RBAC) - cosky: 保留用户名,超级用户,拥有最高权限。应用首次启动时会初始化超级用户(*cosky*)的密码,并打印在控制台。忘记密码也不用担心,可以通过配置 `enforce-init-super-user: true`,*CoSky* 会帮助你重新初始化密码并打印在控制台。 ```log ---------------- ****** CoSky - init super user:[cosky] password:[6TrmOux4Oj] ****** ---------------- ``` - admin: 保留角色,超级管理员角色,拥有所有权限,一个用户可以绑定多个角色,一个角色可以绑定多个资源操作权限。 - 权限控制粒度为命名空间,读写操作 #### 角色权限

CoSky-Dashboard-role

##### 添加角色

CoSky-Dashboard-role-add

#### 用户管理

CoSky-Dashboard-user

##### 添加用户

CoSky-Dashboard-user-add

#### 审计日志

CoSky-Dashboard-audit-log

#### 命名空间管理

CoSky-Dashboard-namespace

#### 配置管理

CoSky-Dashboard-config

##### 编辑配置

CoSky-Dashboard-config-edit

##### 回滚配置

CoSky-Dashboard-config-rollback

##### 从 Nacos 导入配置

CoSky-Dashboard-config-rollback

#### 服务管理

CoSky-Dashboard-service

##### 编辑服务实例信息

CoSky-Dashboard-service-edit

### REST-API > https://ahoo-cosky.apifox.cn/ ## 🚀 性能基准测试

CoSky 提供卓越的性能,相比其他方案性能提升数个数量级

### 测试环境 - **硬件**: MacBook Pro (M1) - **Redis**: 在同一台机器上本地部署 - **方法论**: 所有基准测试均使用 JMH (Java Microbenchmark Harness) 进行 ### 配置服务性能 ```shell gradle cosky-config:jmh # or java -jar cosky-config/build/libs/cosky-config-lastVersion-jmh.jar -bm thrpt -t 25 -wi 1 -rf json -f 1 ``` #### 测试结果 ``` Benchmark Mode Cnt Score Error Units ConsistencyRedisConfigServiceBenchmark.getConfig thrpt 256733987.827 ops/s RedisConfigServiceBenchmark.getConfig thrpt 241787.679 ops/s RedisConfigServiceBenchmark.setConfig thrpt 140461.112 ops/s ``` ### 服务发现性能 ```shell gradle cosky-discovery:jmh # or java -jar cosky-discovery/build/libs/cosky-discovery-lastVersion-jmh.jar -bm thrpt -t 25 -wi 1 -rf json -f 1 ``` #### 测试结果 ``` Benchmark Mode Cnt Score Error Units ConsistencyRedisServiceDiscoveryBenchmark.getInstances thrpt 76621729.048 ops/s ConsistencyRedisServiceDiscoveryBenchmark.getServices thrpt 455760632.346 ops/s RedisServiceDiscoveryBenchmark.getInstances thrpt 226909.985 ops/s RedisServiceDiscoveryBenchmark.getServices thrpt 304979.150 ops/s RedisServiceRegistryBenchmark.deregister thrpt 255305.648 ops/s RedisServiceRegistryBenchmark.register thrpt 110664.160 ops/s RedisServiceRegistryBenchmark.renew thrpt 210960.325 ops/s ``` > 🔥 **关键洞察**: CoSky 的一致性层在配置检索方面提供超过 800 倍的性能提升,在服务发现方面提供超过 250 倍的性能提升,相比标准 Redis 操作。 ## 🔁 CoSky-Mirror (实时同步服务实例变更状态) > CoSky-Mirror 就像一座桥梁连接 Nacos 和 CoSky,构建一个统一的服务发现平台,实现无缝集成。

CoSky-Mirror

CoSky-Mirror-Unified

通过 CoSky-Mirror,您可以: - 在 Nacos 和 CoSky 之间实时同步服务实例 - 保持不同服务注册中心之间的一致性 - 零停机从 Nacos 迁移到 CoSky - 构建混合服务发现架构 ## 📊 功能对比 | 功能 | CoSky | Eureka | Consul | CoreDNS | Zookeeper | Nacos | Apollo | |----------------------------|------------------|---------------|-------------------|---------------|---------------|------------------------------|---------------| | **CAP** | CP+AP | AP | CP | CP | CP | CP+AP | CP+AP | | **健康检查** | Client Beat | Client Beat | TCP/HTTP/gRPC/Cmd | Keep Alive | Keep Alive | TCP/HTTP/Client Beat | Client Beat | | **负载均衡策略** | Weight/Selector | Ribbon | Fabio | RoundRobin | RoundRobin | Weight/metadata/RoundRobin | RoundRobin | | **雪崩保护** | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | | **自动注销实例** | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | | **访问协议** | HTTP/Redis | HTTP | HTTP/DNS | DNS | TCP | HTTP/DNS | HTTP | | **监听支持** | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | | **多数据中心** | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | | **跨注册中心同步** | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | | **SpringCloud集成** | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | | **Dubbo集成** | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | | **K8S集成** | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | | **持久化** | Redis | - | - | - | - | MySql | MySql | > ✅ **CoSky 的核心优势**: > - **混合 CP+AP 模型**兼顾一致性和可用性 > - **基于 Redis 的超高性能**(10万+ QPS) > - **跨注册中心同步**能力 > - **轻量级部署**,运维成本极低 > - **全面的生态系统集成**(Spring Cloud、Dubbo、K8S) --- ## 🤝 贡献 欢迎社区贡献!无论是报告错误、提出功能建议还是提交拉取请求,您的参与都能帮助 CoSky 变得更好。 ## 📄 许可证 CoSky 是基于 [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0.html) 许可的开源软件。