• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

CoSky

开源软件地址:

https://gitee.com/AhooWang/CoSky

开源软件介绍:

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

    val coskyVersion = "1.3.20";    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 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>1.3.20</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)

spring:  application:    name: ${service.name:cosky-rest-api}  cloud:    cosky:      namespace: ${cosky.namespace:cosky-{system}}      config:        config-id: ${spring.application.name}.yaml      redis:        mode: ${cosky.redis.mode:standalone}        url: ${cosky.redis.uri:redis://localhost:6379}logging:  file:    name: logs/${spring.application.name}.log

REST-API Server (Optional)

安装 REST-API Server

方式一:下载可执行文件

下载 rest-api-server

解压 cosky-rest-api-1.3.20.tar

cd cosky-rest-api-1.3.20# 工作目录: cosky-rest-api-1.3.20bin/cosky-rest-api --server.port=8080 --cosky.redis.uri=redis://localhost:6379

方式二:在 Docker 中运行

docker pull ahoowang/cosky-rest-api:1.3.20docker run --name cosky-rest-api -d -p 8080:8080 --link redis -e COSKY_REDIS_URI=redis://redis:6379  ahoowang/cosky-rest-api:1.3.20

方式三:在 Kubernetes 中运行

apiVersion: apps/v1kind: Deploymentmetadata:  name: cosky-rest-api  labels:    app: cosky-rest-apispec:  replicas: 1  selector:    matchLabels:      app: cosky-rest-api  template:    metadata:      labels:        app: cosky-rest-api    spec:      containers:        - env:            - name: COSKY_REDIS_MODE              value: standalone            - name: COSKY_REDIS_URI              value: redis://redis-uri:6379          image: ahoowang/cosky-rest-api:1.3.20          name: cosky-rest-api          ports:            - containerPort: 8080              protocol: TCP          resources:            limits:              cpu: "1"              memory: 1280Mi            requests:              cpu: 250m              memory: 1024Mi          volumeMounts:            - mountPath: /etc/localtime              name: volume-localtime      volumes:        - hostPath:            path: /etc/localtime            type: ""          name: volume-localtime---apiVersion: v1kind: Servicemetadata:  name: cosky-rest-api  labels:    app: cosky-rest-apispec:  selector:    app: cosky-rest-api  ports:    - name: rest      port: 80      protocol: TCP      targetPort: 8080

Dashboard

http://localhost:8080/dashboard

CoSky-Dashboard

服务依赖拓扑

CoSky-Dashboard-topology

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

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

REST-API

http://localhost:8080/swagger-ui/index.html#/

Namespace

rest-api-namespace

  • /v1/namespaces
    • GET
  • /v1/namespaces/{namespace}
    • PUT
    • GET
  • /v1/namespaces/current
    • GET
  • /v1/namespaces/current/{namespace}
    • PUT
Config

rest-api-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

rest-api-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 cosky-config:jmh# orjava -jar cosky-config/build/libs/cosky-config-1.3.20-jmh.jar -bm thrpt -t 25 -wi 1 -rf json -f 1
Benchmark                                          Mode  Cnt          Score   Error  UnitsConsistencyRedisConfigServiceBenchmark.getConfig  thrpt       256733987.827          ops/sRedisConfigServiceBenchmark.getConfig             thrpt          241787.679          ops/sRedisConfigServiceBenchmark.setConfig             thrpt          140461.112          ops/s

ServiceDiscovery

gradle cosky-discovery:jmh# orjava -jar cosky-discovery/build/libs/cosky-discovery-1.3.20-jmh.jar -bm thrpt -t 25 -wi 1 -rf json -f 1
Benchmark                                                Mode  Cnt          Score   Error  UnitsConsistencyRedisServiceDiscoveryBenchmark.getInstances  thrpt        76621729.048          ops/sConsistencyRedisServiceDiscoveryBenchmark.getServices   thrpt       455760632.346          ops/sRedisServiceDiscoveryBenchmark.getInstances             thrpt          226909.985          ops/sRedisServiceDiscoveryBenchmark.getServices              thrpt          304979.150          ops/sRedisServiceRegistryBenchmark.deregister                thrpt          255305.648          ops/sRedisServiceRegistryBenchmark.register                  thrpt          110664.160          ops/sRedisServiceRegistryBenchmark.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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap