1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/AhooWang-CoSky

27.02.2025 17:28
GitLife Service Account

Обновлено 🎉 🎉 🎉

Поддержка Spring Boot 3.4.0

  • Зависимости: обновлено значение версии org.springframework.boot:spring-boot-dependencies до v3.4.0
  • Зависимости: обновлено значение версии org.springframework.cloud:spring-cloud-dependencies до v2024
  • Зависимости: обновлено значение версии me.ahoo.cosid:cosid-bom до v2.10.1
  • Зависимости: обновлено значение версии me.ahoo.simba:simba-bom до v2.6.1
  • Зависимости: обновлено значение версии me.ahoo.cosec:cosec-bom до v2.9.1
Последнее сообщение коммита: Update CoSec to 2.9.1 (#530)
27.02.2025 17:27
GitLife Service Account

Обновлено 🎉 🎉 🎉

Полная совместимость с Spring Boot 3

  • Зависимости: Обновление версии org.springframework.boot:spring-boot-dependencies до v3.1.5
  • Зависимости: Обновление версии Angular до v17
  • Рефакторинг: Оптимизация стилей управления (UI)
  • Новое: Добавлена возможность печати входящего пользователя
  • Зависимости: Обновление версии io.mockk:mockk до v1.13.8
  • Зависимости: Обновление версии CosId до v2.5.6
  • Зависимости: Использование версии CoSec v2.4.3
  • Зависимости: Обновление версии Kotlin до v1.9.20
Последнее сообщение коммита: feat: Optimize management console(UI) style (#299)
27.02.2025 17:27
GitLife Service Account

Обновлено (v3.3.5) 🎉 🎉 🎉

  • Зависимости: Обновлен Angular до версии v15
  • Зависимости: Обновлен org.springframework.boot:spring-boot-dependencies до версии v2.7.10
  • Зависимости: Обновлен Monaco Editor до ^0.36.0
  • Зависимости: Обновлен CosId (https://github.com/Ahoo-Wang/CosId) до версии v1.18.5
  • Рефакторинг: Внедрен CoSec (https://github.com/Ahoo-Wang/CoSec) вместо встроенной службы безопасности
Последнее сообщение коммита: Update dependency jasmine-core to ~4.6.0 (#124)
27.02.2025 17:26
GitLife Service Account

⭐ Оптимизация

  • сжатие jwt-token Id
  • обновление лицензионного соглашения в заголовке файла Copyright [2021—настоящее время]
  • добавление файла integration-test.yml (CI)
  • удаление ненужного @EnableScheduling

🔨 Обновление зависимостей

  • Обновление до Simba 0.2.6
  • Обновление до CosId 1.8.9
Последнее сообщение коммита: - update version
27.02.2025 17:26
GitLife Service Account
  • Изменение cosky-rest-api Spring-Boot-баннера
    CoSky-Banner
  • Раскрытие /actuator/health для проверки состояния
  • Добавление *Probe для K8S-развертывания
  • Устранение проблемы повторной регистрации сервиса LoadBalancer при изменении экземпляров
  • Оптимизация кода AuthorizeService
  • Устранение проблемы блокировки входа в cosky-rest-api
Последнее сообщение коммита: change cosky-rest-api banner
27.02.2025 17:26
GitLife Service Account

ВСЕ ОТКРЫТЫЕ ПРЕДЛОЖЕНИЯ АППЛИКАЦИИ РАСПОЗНАЮТСЯ В РЕАКТИВНОМ ПРОГРАММИРОВАННОМ МОДЕЛИ!🎉🎉🎉🎉🎉

  • Изменение: модификация асинхронных API на реактивные программные API.
  • Изменение: использование WebFlux в качестве Web-фреймворка для cosky-rest-api.
  • Устранение: исправление отчета об ошибке авторизации 401 при экспорте конфигурационных файлов ( Dashboard-UI ).
Последнее сообщение коммита: Merge pull request #15 from Ahoo-Wang/reactor
27.02.2025 17:26
GitLife Service Account

Улучшение: Разделение сервисной зависимости топологии (Дашборд) для удобства чтения.
Сервисная зависимость топологии

Последнее сообщение коммита: - Visual enhancement: split service dependent topology (Dashboard)
27.02.2025 17:26
GitLife Service Account
  • Устранение проблемы несовместимости с версиями Redis 5.0 и ниже.
Последнее сообщение коммита: fix https://github.com/Ahoo-Wang/CoSky/issues/12
27.02.2025 17:26
GitLife Service Account
  • Улучшение: при использовании режима Redis Cluster обеспечивается автоматическое преобразование namespace в ключ с hashtag.
  • Улучшение: реализована защита от некорректных входных данных за счет проверки параметров, что повышает устойчивость кода.
Последнее сообщение коммита: update version
27.02.2025 17:26
GitLife Service Account

Улучшения:

  • Добавлена поддержка топологии связей сервисных подписок.

Service-Topology

Service-Topology-1

  • Добавлена поддержка аудита операционных логов.

dashboard-audit-log

Последнее сообщение коммита: update Service dependency topology diagram
27.02.2025 17:25
GitLife Service Account
  • Добавьте роль с правами администратора (Role.ADMIN).
  • Обновление зависимостей: обновите версию зависимости для распределённого генератора ID (CosId) с 1.3.1 до 1.3.2.
Последнее сообщение коммита: - Add reserved role(Role.ADMIN) description
27.02.2025 17:25
GitLife Service Account

Добавлен модуль безопасности на основе ролевой модели доступа (RBAC)

Ролевая модель доступа (RBAC)

  • cosky: имя пользователя, суперпользователя, имеющего максимальные права. При первом запуске приложения будет инициализирован пароль суперпользователя (cosky), который будет выведен в консоли. Не стоит беспокоиться, если забыли пароль; можно настроить enforce-init-super-user: true, и CoSky поможет вам заново инициализировать пароль и вывести его в консоли.
---------------- ****** CoSky -  init super user:[cosky] password:[6TrmOux4Oj] ****** ----------------
  • admin: роль, суперадминистраторская роль, имеющая все права. Один пользователь может привязаться к нескольким ролям, одна роль может привязываться к нескольким операциям доступа к ресурсам.
  • Гранулярность контроля прав доступна на уровне пространства имён, чтение и запись.

Ролевые права

dashboard-role

Добавление роли

dashboard-role-add

Управление пользователями

dashboard-user

Добавление пользователя

dashboard-user-add

Последнее сообщение коммита: Merge pull request #8 from Ahoo-Wang/rbac
27.02.2025 17:25
GitLife Service Account

Управление сервисами (платформа управления услугами на основе Redis с регистрацией/открытием услуг и центром конфигураций)

Сервер REST-API (Необязательный)

Установка сервера REST-API

Метод 1: Скачивание исполняемых файлов

Скачайте rest-api-server

Распакуйте rest-api-0.9.3.tar

cd rest-api-0.9.3
# Рабочий каталог: rest-api-0.9.3
bin/rest-api --server.port=8080 --govern.redis.uri=redis://localhost:6379

Метод 2: Запуск через Docker

docker pull ahoowang/govern-service:0.9.3
docker run --name govern-service -d -p 8080:8080 --link redis -e GOVERN_REDIS_URI=redis://redis:6379 ahoowang/govern-service:0.9.3

MacBook Pro (M1)

Используйте ahoowang/govern-service:0.9.3-armv7

docker pull ahoowang/govern-service:0.9.3-armv7
docker run --name govern-service -d -p 8080:8080 --link redis -e GOVERN_REDIS_URI=redis://redis:6379 ahoowang/govern-service:0.9.3-armv7

Панель управления

Последнее сообщение коммита: add DashboardConfig for fix dashboard-ui 404
27.02.2025 17:24
GitLife Service Account

Управление сервисами на Redis (Служба открытия и конфигурации)

Услуга управления (Govern Service) представляет собой легковесный, низкозатратный SDK для регистрации услуг, службы открытия и конфигураций. Используя Redis в существующей инфраструктуре (я уверен, что вы уже установили Redis), он не требует дополнительной нагрузки на операционную среду и обслуживание. Благодаря высокой производительности Redis, Govern Service обеспечивает сверхвысокую TPS&QPS. Govern Service объединяет стратегию кэширования процессов + Redis PubSub, чтобы достичь реального времени обновления кэша процессов с уникальной производительностью QPS и мгновенной согласованностью между кэшем процессов и Redis.

Требования к конфигурации Redis

notify-keyspace-events "Kg$shx"

Вы можете использовать следующую командную строку (redis-cli или любой другой клиент Redis) для установки notify-keyspace-events:

config set notify-keyspace-events "Kg$shx"

или

config set notify-keyspace-events "KA"

Установка

Gradle

val governVersion = "0.7.1";
implementation("me.ahoo.govern:spring-cloud-starter-config:${governVersion}")
implementation("me.ahoo.govern:spring-cloud-starter-discovery:${governVersion}")

Maven

<properties>
    <govern.version>0.7.1</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>

bootstrap.yml (Spring-Cloud-Config)

spring:
  application:
    name: govern-rest-api
  cloud:
    govern:
      namespace: dev
      config:
        config-id: ${spring.application.name}.yml
      redis:
        mode: standalone
        url: redis://localhost:6379

Сервер REST-API (необязательно)

bin/rest-api

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

Пространство имён

rest-api-namespace

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

Конфигурация

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

Сервис

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

Бенчмарк JMH

  • Разработочная ноутбук: MacBook Pro (M1)
  • Все тесты бенчмарка проводятся на разработочной машине.
  • Установка Redis с помощью Docker на разработочной машине.
gradle jmh

ConfigService

# JMH версия: 1.28
# Версия JVM: JDK 11.0.11, OpenJDK 64-Bit Server VM, 11.0.11+9-LTS
# Запуск JVM: /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/java
# Опции JVM: -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/Users/ahoo/govern-service/config/build/tmp/jmh -Duser.country=CN -Duser.language=zh -Duser.variant
# Режим черной дыры: полный + подсказка не-инлайн
# Подготовка: 1 итерация, 10 секунд каждая
# Измерение: 1 итерация, 10 секунд каждая
# Время ожидания: 10 минут на каждую итерацию
# Нити: 50 нитей, будут синхронизировать итерации
# Режим бенчмарка: пропускная способность, оп/время

Benchmark                                          Mode  Cnt          Score   Error  Units
ConsistencyRedisConfigServiceBenchmark.getConfig  thrpt       555275866.836          ops/s
RedisConfigServiceBenchmark.getConfig             thrpt           57397.188          ops/s
RedisConfigServiceBenchmark.setConfig             thrpt           56882.673          ops/s

ServiceDiscovery

# JMH версия: 1.29
# Версия JVM: JDK 11.0.11, OpenJDK 64-Bit Server VM, 11.0.11+9-LTS
# Запуск JVM: /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/java
# Опции JVM: -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/Users/ahoo/work/ahoo-git/govern-service/discovery/build/tmp/jmh -Duser.country=CN -Duser.language=zh -Duser.variant
# Режим черной дыры: полный + подсказка не-инлайн
# Подготовка: 1 итерация, 10 секунд каждая
# Измерение: 1 итерация, 10 секунд каждая
# Время ожидания: 10 минут на каждую итерацию
# Нити: 50 нитей, будут синхронизировать итерации
# Режим бенчмарка: пропускная способность, оп/время

Benchmark                                                Mode  Cnt           Score   Error  Units
ConsistencyRedisServiceDiscoveryBenchmark.getInstances  thrpt        567329996.255          ops/s
ConsistencyRedisServiceDiscoveryBenchmark.getServices   thrpt       1929377291.635          ops/s
RedisServiceDiscoveryBenchmark.getInstances             thrpt            43760.035          ops/s
RedisServiceDiscoveryBenchmark.getServices              thrpt            60953.971          ops/s
RedisServiceRegistryBenchmark.deregister                thrpt            63133.011          ops/s
RedisServiceRegistryBenchmark.register                  thrpt            53957.797          ops/s
RedisServiceRegistryBenchmark.renew                     thrpt            67116.116          ops/s

TODO

  1. Дашборд - UI
Последнее сообщение коммита: optimize applicationDefaultJvmArgs for rest-api
30.11.2024 15:09
GitLife Service Account
  • add Comparison with others section.
  • replace io.codearte.nexus-staging -> io.github.gradle-nexus.publish-plugin
  • update cosid version to 1.4.15
  • update simba version to 0.2.5
  • add distributed scheduling(StatServiceScheduler) by Simba
Последнее сообщение коммита: update dokcer image version
30.11.2024 15:09
GitLife Service Account

What's Changed

Последнее сообщение коммита: * Update dependency CosId to 1.12.0
30.11.2024 15:09
GitLife Service Account

:tada: :tada: :tada: :tada: :tada: :tada:

  1. Project name changed to CoSky(Consul + Sky)!!! :tada:
  2. Release 1.0.0 version, production-level verification!!! :tada:
Последнее сообщение коммита: ## :tada::tada::tada::tada::tada::tada:
1
https://api.gitlife.ru/oschina-mirror/AhooWang-CoSky.git
git@api.gitlife.ru:oschina-mirror/AhooWang-CoSky.git
oschina-mirror
AhooWang-CoSky
AhooWang-CoSky