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

OSCHINA-MIRROR/osgochina-dmicro

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md
dmicro logo

Сделайте вашу разработку на Go невероятно простой

GitHub release report card github issues github closed issues GoDoc view examples OSCS Status

Обзор

DMicro — это эффективный, масштабируемый и удобный в использовании микросервисный фреймворк. Включает компоненты DRPC, DServer и другие.

Компонент DRPC является фреймворком удалённого вызова процедур (RPC). Он использует endpoint как единую сущность, предоставляющую унифицированные API для RPC Server и RPC Client. DRPC компоненты:* Простота понимания и научно обоснованная многоуровневая абстракция.

  • end_point, session, handler, message, protocol, encoding, transfer_filter, plugin.

  • Поддержка распространённых протоколов передачи сообщений (JSON, Protobuf, HTTP, JSON-RPC). Хорошая абстрактная структура делает создание пользовательских протоколов простым и быстрым.

  • Поддержка различных сетевых протоколов (TCP, Unix, KCP, QUIC, WebSocket).

  • Полностью жизненный цикл плагинов (более 27 плагинов), что позволяет системе плагинов реализовать множество разнообразных функций.

    • Встроенные плагины: авторизация, сердцебиение, игнорировать_случаи, прокси, защищенное_тело и другие.
  • Благодаря богатому набору плагинов, выделена удобная система событий Event, которая значительно улучшает процесс разработки.

  • Высокопроизводительный уровень передачи данных, который делает производительность не проблемой.

  • Автоматическое восстановление соединения клиентской стороны.

  • Совместно с компонентом DServer обеспечивает гладкий и элегантный процесс перезапуска, чтобы ваш сервис всегда был доступен.

  • Совместно с компонентом Registry обеспечивает регистрацию сервиса.

    • Компонент Registry предлагает рациональный интерфейс для удобной интеграции с несколькими регистратурами сервисов, включая etcd, mDNS.
  • Совместно с компонентом Selector обеспечивает функцию открытия сервиса.* Использует компонент metrics для сбора метрик и статистики. Компонент DServer управления приложениями предоставляет полный цикл управления жизненным циклом приложений.Характеристики компонента DServer:

  • Использует трехуровневую структуру (server, service, sandbox). Это позволяет бизнес-логике сосредоточиться на уровне sandbox, поддерживающем однопроцессный и многопроцессный режимы. Разработка и отладка выполняются в одном процессе, а запуск может осуществляться как в одном, так и во многих процессах.

  • Полностью сформированная команда запуска, поддерживающая команды start, stop, reload, ctrl и другие.

  • Поддерживает компоненты drpc и другие компоненты, такие как ghttp, которые реализуют плавное перезапускание интерфейсов (если плавное перезапускание не требуется, все сервисные компоненты поддерживаются).

  • Удобные возможности управления через командную строку, позволяющие в реальном времени управлять работающими приложениями.

  • Полноценный компонент управления процессами supervisor, который обеспечивает управление всем жизненным циклом процессов.

Подробная документация

Установка

go get -u -v github.com/osgochina/dmicro

Рекомендуется использовать go.mod:

require github.com/osgochina/dmicro latest
  • импорт
import "github.com/osgochina/dmicro"

Китайская зеркальная версия: https://gitee.com/osgochina/dmicro

Ограничения

версия Go >= 1.16

Создание службы RPC с помощью DServer

Как быстро создать настоящую службу RPC с помощью простого кода. Ниже приведён пример кода:

// rpc_server.go
package main
``````md
# Создание обычного `rpc` сервера

Тип документа для перевода: markdown  
Язык исходного текста: китайский  
Язык финального текста: русский  

## Создание обычного `rpc` сервера

Сервер уже создан, как его запустить и скомпилировать?

### Компиляция

```shell
$ go build rbc_server.go

Запуск

$ ./rbc_server start

Создание обычного rpc клиента

Как подключиться к серверу с помощью клиента?

package main

import (
    time
    "github.com/osgochina/dmicro/drpc"
    "github.com/osgochina/dmicro/drpc/message"
    "github.com/osgochina/dmicro/logger"
)

func main() {
    cli := drpc.NewEndpoint(drpc.EndpointConfig{PrintDetail: true, RedialTimes: -1, RedialInterval: time.Second})
    defer cli.Close()

    sess, stat := cli.Dial("127.0.0.1:9091")
    if !stat.OK() {
        logger.Fatalf("%v", stat)
    }
    var result int
    stat = sess.Call("/math/add",
        []int{1, 2, 3, 4, 5},
        &result,
        message.WithSetMeta("author", "liuzhiming"),
    ).Status()
    if !stat.OK() {
        logger.Fatalf("%v", stat)
    }
    logger.Printf("Результат: %d", result)
}

Приведённый пример поможет вам понять, как использовать фреймворк drpc. ```## Команды управления сервером через ctrl

Используйте команды ctrl, чтобы управлять запущенным сервером.

  • Откройте новое окно командной строки и выполните команду ctrl
$ ./rbc_server.exe ctl

  ____    ____
 |  _ \  / ___|    ___   _ __  __   __   ___   _ __ 
 | | | | \___ \   / _ \ | '__| \ \ / /  / _ \ | '__|
 | |_| |  ___) | |  __/ | |     \ V /  |  __/ | |   
 |____/  |____/   \___| |_|      \_/    \___| |_|  
Version:         No Version Info
Go Version:      No Version Info
DMicro Version:  v1.0.0
GF Version:      v1.16.9
Git Commit:      No Commit Info
Build Time:      No Time Info
Authors:         osgochina@gmail.com
Install Path:    D:\code\GolandProjects\dmicro\examples\simple_dserver\rbc_server.exe
DMicro_drpc »
  • Выполните команду help, чтобы получить справку по доступным командам
DMicro_drpc » help

Полезный инструмент для управления сервисами

Команды:
=========
  clear             очистка экрана
  debug             включение/выключение отладки
  exit              выход из консоли
  help              помощь по командам, используйте 'help [команда]'
  info, status, ps  просмотр текущего состояния сервиса
  log               вывод логов работы сервиса
  reload            плавный перезапуск сервиса
  start             запуск сервиса
  stop              остановка сервиса
  version, v        вывод версий программы

DMicro_drpc »

TODO

  • Registry регистрация сервиса
  • Selector поиск сервиса
  • Eventbus событийная шина
  • Supervisor управление процессами
  • Metrics метрики
  • OpenAPI автоматическое создание документации
  • Code gen генерация кода
  • Tracing трассировка запросов
  • Broker ограничение скорости и отказоустойчивость ```## БлагодарностьПроект DMicro был создан с использованием двух замечательных проектов — `erpc` и `GoFrame`.

Компонент drpc основан на архитектурных идеях проекта erpc, при этом использует библиотеки из проекта GoFrame в качестве базовых зависимостей.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

dmicro — это высокоэффективная, расширяемая и простая в использовании микросервисная архитектура. Содержит компоненты drpc, dserver и другие. Развернуть Свернуть
Go и 2 других языков
Apache-2.0
Отмена

Обновления (3)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/osgochina-dmicro.git
git@api.gitlife.ru:oschina-mirror/osgochina-dmicro.git
oschina-mirror
osgochina-dmicro
osgochina-dmicro
main