CoSky 3.3.5 发布 - 高性能、低成本微服务治理平台


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

License GitHub release Maven Central Codacy Badge codecov Integration Test Status

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

更新内容(v3.3.5) 🎉 🎉 🎉

  • 依赖:更新 Angular 版本到 v15
  • 依赖:更新 org.springframework.boot:spring-boot-dependencies 到 v2.7.10
  • 依赖:更新 monaco-editor 到 ^0.36.0
  • 依赖:更新 CosId 到 v1.18.5
  • 重构:使用 CoSec 替换内置安全认证服务

服务注册与发现

CoSky-Discovery

配置中心

CoSky-Configuration

Examples

Service Consumer --RPC--> Service Provider Examples

安装

Gradle

Kotlin DSL

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 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)

spring:
application:
name: ${service.name:cosky-rest-api}
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 (Optional)

安装 REST-API Server

方式一:下载可执行文件

下载 cosky-rest-api-server

解压 cosky-rest-api-lastVersion.tar

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

方式二:在 Docker 中运行

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

方式三:在 Kubernetes 中运行

apiVersion: apps/v1
kind: Deployment
metadata:
name: cosky-rest-api
labels:
app: cosky-rest-api
spec:
replicas: 1
selector:
matchLabels:
app: cosky-rest-api
template:
metadata:
labels:
app: cosky-rest-api
spec:
containers:
- env:
- name: SPRING_REDIS_URL
value: redis://redis-uri:6379
image: ahoowang/cosky-rest-api:lastVersion
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: v1
kind: Service
metadata:
name: cosky-rest-api
labels:
app: cosky-rest-api
spec:
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
# or
java -jar cosky-config/build/libs/cosky-config-lastVersion-jmh.jar -bm thrpt -t 25 -wi 1 -rf json -f 1
 
BenchmarkModeCntScore ErrorUnits
ConsistencyRedisConfigServiceBenchmark.getConfigthrpt 256733987.827ops/s
RedisConfigServiceBenchmark.getConfig thrpt241787.679ops/s
RedisConfigServiceBenchmark.setConfig thrpt140461.112ops/s
 

ServiceDiscovery

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
 
BenchmarkModeCntScore ErrorUnits
ConsistencyRedisServiceDiscoveryBenchmark.getInstancesthrpt76621729.048ops/s
ConsistencyRedisServiceDiscoveryBenchmark.getServices thrpt 455760632.346ops/s
RedisServiceDiscoveryBenchmark.getInstances thrpt226909.985ops/s
RedisServiceDiscoveryBenchmark.getServicesthrpt304979.150ops/s
RedisServiceRegistryBenchmark.deregisterthrpt255305.648ops/s
RedisServiceRegistryBenchmark.registerthrpt110664.160ops/s
RedisServiceRegistryBenchmark.renew thrpt210960.325ops/s
 

CoSky-Mirror (实时同步服务实例变更状态)

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

CoSky-Mirror

CoSky-Mirror-Unified

其他同类产品对比

  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
负载均衡策略 权重/RoundRobin Ribbon Fabio RoundRobin RoundRobin 权重/metadata/Selector RoundRobin
雪崩保护
自动注销实例 支持 支持 不支持 不支持 支持 支持 支持
访问协议 HTTP/Redis HTTP HTTP/DNS DNS TCP HTTP/DNS HTTP
监听支持 支持 支持 支持 不支持 支持 支持 支持
多数据中心 支持 支持 支持 不支持 不支持 支持 支持
跨注册中心同步 支持 不支持 支持 不支持 不支持 支持 不支持
SpringCloud集成 支持 支持 支持 不支持 不支持 支持 支持
Dubbo集成 支持 不支持 不支持 不支持 支持 支持 支持
K8S集成 支持 不支持 支持 支持 不支持 支持 不支持
持久化 Redis         MySql

 


相關推薦

2023-11-21

CoSky 高性能、低成本微服务治理平台(服务注册/发现 & 配置中心) CoSky 是一个轻量级、低成本的服务注册、服务发现、 配置服务 SDK,通过使用现有基础设施中的 Redis (相信你已经部署了Redis),不用给运维部署带

2022-12-22

3)部分组件服务治理功能不齐全,缺少动态路由、灰度发布等微服务核心功能。 为了解决上面的问题,降低用户开发及运营微服务的门槛。北极星为服务治理提供一站式解决方案,覆盖服务注册中心、服务网格和配置中心的

2023-03-22

nk 旗下开源网关 Apinto 本次带来了 Apinto Dashboad V2.0 的版本发布。 Dashboad 需要与 Apinto 主版本一起使用,目前 Dashboad 可兼容 Apinto 0.12.4 以上版本。 👉Apinto  : https://github.com/eolinker/apinto   1、Apinto Dashboad 简介 Apinto API 网

2023-07-13

台模板、提升效率的主题配置系统。 新发布项目二:高性能服务网格—Kmesh 服务网格作为云原生的下一代技术,已逐步成为云上基础设施标配,但其sidecar架构存在性能问题,是当前网格技术推广的关键;Kmesh高性能服务网

2023-03-01

数据治理服务,从而在云原生环境下构建和管理高可靠、高性能、可扩展和安全的数据基础设施。同时,该项目正式组建开源社区,并将基于国际开源社区的规则进行经营。 跬智信息(Kyligence)由首个来自中国的 Apache 顶级开

2023-03-25

微拓扑,基于更细粒度的微拓扑信息完成资源分配,满足高性能业务的 QoS 要求。 详细的功能规划请参考 roadmap。 虽然混部技术在字节内部已经经历了几次的技术迭代,但是一个通用、标准化的平台底座必然要经过各种场景

2023-09-23

算效率。 3. OpenTiny低代码开发引擎子项目TinyEngine正式发布,AI辅助加速应用创新 OpenTiny作为开源的跨端、跨框架、跨版本企业级前端组件方案,可以帮助开发者快速构建极致体验的云原生应用。在本次大会中,邓明昆正式对

2022-10-26

造的统信服务器操作系统具有高可用、强安全、高可靠、高性能、易维护的特点,是下一代核心信息技术以及新基建的基座,在数字化建设中发挥着无可替代的作用。针对CentOS迁移替换,统信软件为行业客户提供了从评估规划、

2023-10-19

宣布开源 tRPC ,一款基于插件化理念设计的支持多语言、高性能的 RPC 开发框架。首批开源支持 Go/Cpp 两种编程语言,预计接下来会开源更多编程语言的支持。 根据介绍吗,tRPC 通过对底层通信的封装提供RPC的调用方式,可以轻

2023-10-21

作负载的数据平台公司,现推出全新的 Alluxio Enterprise AI 高性能数据平台, 旨在满足人工智能 (AI) 和机器学习 (ML) 负载对于企业数据基础设施不断增长的需求。 Alluxio Enterprise AI 平台可综合优化企业 AI 和分析基础设施的性能、数

2023-05-08

Water(水孕育万物...) Water 为项目开发、服务治理,提供一站式解决方案(可以理解为微服务架构支持套件)。基于 Solon 框架开发,并支持完整的 Solon Cloud 规范;已在生产环境奔跑了5年。对中小型项目而言,有它便有一切。

2023-02-03

。 在一年多的孵化期间,Apache Linkis 由社区开发者主导发布了7个 Apache 版本,平均约两个月就会发布一个版本;新加入了4个 PPMC成员 和13个 Committers,来自不同的公司和团队,贡献人数达到127人。Apache Linkis 社区各项指标发展良

2023-12-24

特性 支持多企业微信同时配置作业 支持响应式,高性能 集成方便,适用于各种Java生态 学习成本低 目前实现企业微信接口200多个,能满足大部分企业微信业务场景的需求 全参数封装,入参、出参高度语义化

2023-09-14

多元共进|2023 Google 开发者大会精彩演讲回顾 升级内容: 1、增加时区配置字段; 2、修复jq和nc依赖包部署问题; 3、完善项目文档; 一键部署,一行代码接入,无需大数据研发运维经验,轻松实现海量数据实时统计,使用