CoSky
    CoSky
    • 简介
    • 认证授权
      • 登陆
        POST
      • 刷新
        POST
    • 命名空间
      • 添加命名空间
        PUT
      • 删除命名空间
        DELETE
      • 设置当前命名空间
        PUT
      • 获取所有命名空间
        GET
      • 获取当前命名空间
        GET
    • 配置中心
      • 获取配置信息
        GET
      • 修改配置信息
        PUT
      • 删除配置
        DELETE
      • 回滚配置
        PUT
      • 获取命名空间下配置列表
        GET
      • 新增配置
        POST
      • 获取配置版本信息
        GET
      • 获取对应版本的配置
        GET
      • 导出配置
        GET
    • 服务注册中心
      • 应用服务
        PUT
      • 删除服务
        DELETE
      • 获取服务实例列表
        GET
      • 注册服务实例
        PUT
      • 更新服务实例元数据
        PUT
      • 获取服务列表
        GET
      • 通过负载均衡器获取服务实例
        GET
      • 查看服务统计
        GET
      • 删除服务实例
        DELETE
    • 用户管理
      • 添加用户
      • 删除用户
      • 绑定用户角色
      • 修改密码
      • 获取用户列表
      • 解除账号锁定
    • 角色管理
      • 更新角色
      • 删除角色
      • 获取角色列表
      • 绑定角色权限
    • 统计
      • 获取统计信息
      • 获取服务拓扑
    • 审计日志
      • 查看审计日志

    简介

    CoSky 高性能、低成本微服务治理平台(服务注册/发现 & 配置中心)#

    English Document
    CoSky 是一个轻量级、低成本的服务注册、服务发现、 配置服务 SDK,通过使用现有基础设施中的 Redis (相信你已经部署了Redis),不用给运维部署带来额外的成本与负担。 借助于 Redis 的高性能, CoSky 提供了超高TPS&QPS (10W+/s JMH 基准测试)。CoSky 结合本地进程缓存策略 + Redis PubSub,实现实时进程缓存刷新,兼具无与伦比的QPS性能 (7000W+/s JMH 基准测试)、进程缓存与 Redis 的实时一致性。

    服务注册与发现#

    CoSky-Discovery

    配置中心#

    CoSky-Configuration

    Examples#

    Service Consumer --RPC--> Service Provider Examples

    安装#

    Gradle#

    Kotlin DSL

    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>
        <cosky.version>lastVersion</cosky.version>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>me.ahoo.cosky</groupId>
          <artifactId>spring-cloud-starter-cosky-config</artifactId>
          <version>${cosky.version}</version>
        </dependency>
        <dependency>
          <groupId>me.ahoo.cosky</groupId>
          <artifactId>spring-cloud-starter-cosky-discovery</artifactId>
          <version>${cosky.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-loadbalancer</artifactId>
          <version>3.0.3</version>
        </dependency>
      </dependencies>
    
    </project>

    bootstrap.yaml (Spring-Cloud-Config)#

    REST-API Server (Optional)#

    安装 REST-API Server#

    方式一:下载可执行文件#

    下载 cosky-server
    解压 cosky-lastVersion.tar

    方式二:在 Docker 中运行#

    方式三:在 Kubernetes 中运行#

    Dashboard#

    http://localhost:8080/dashboard
    CoSky-Dashboard

    服务依赖拓扑#

    CoSky-Dashboard-topology

    基于角色的访问控制(RBAC)#

    cosky: 保留用户名,超级用户,拥有最高权限。应用首次启动时会初始化超级用户(cosky)的密码,并打印在控制台。忘记密码也不用担心,可以通过配置 enforce-init-super-user: true,CoSky 会帮助你重新初始化密码并打印在控制台。
    ---------------- ****** 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-import

    服务管理#

    CoSky-Dashboard-service
    编辑服务实例信息#
    CoSky-Dashboard-service-edit

    JMH-Benchmark#

    基准测试运行环境:笔记本开发机 ( MacBook Pro (M1) )
    所有基准测试都在开发笔记本上执行。
    Redis 部署环境也在该笔记本开发机上。

    ConfigService#

    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

    ServiceDiscovery#

    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-Mirror (实时同步服务实例变更状态)#

    CoSky-Mirror 就像一个镜子放在 Nacos、CoSky 中间,构建一个统一的服务发现平台。
    CoSky-Mirror
    CoSky-Mirror-Unified

    其他同类产品对比#

    CoSkyEurekaConsulCoreDNSZookeeperNacosApollo
    CAPCP+APAPCPCPCPCP+APCP+AP
    健康检查Client BeatClient BeatTCP/HTTP/gRPC/CmdKeep AliveKeep AliveTCP/HTTP/Client BeatClient Beat
    负载均衡策略权重/RoundRobinRibbonFabioRoundRobinRoundRobin权重/metadata/SelectorRoundRobin
    雪崩保护无有无无无有无
    自动注销实例支持支持不支持不支持支持支持支持
    访问协议HTTP/RedisHTTPHTTP/DNSDNSTCPHTTP/DNSHTTP
    监听支持支持支持支持不支持支持支持支持
    多数据中心支持支持支持不支持不支持支持支持
    跨注册中心同步支持不支持支持不支持不支持支持不支持
    SpringCloud集成支持支持支持不支持不支持支持支持
    Dubbo集成支持不支持不支持不支持支持支持支持
    K8S集成支持不支持支持支持不支持支持不支持
    持久化RedisMySqlMySql
    修改于 2023-11-14 03:43:07
    下一页
    登陆
    Built with