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

OSCHINA-MIRROR/mistin-go-chassis

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

Go-Chassis — это микросервисный фреймворк для быстрой разработки микросервисов на Go.

Зачем использовать Go-Chassis?

Go-Chassis разработан как независимый от протокола фреймворк, любой протокол может интегрироваться с Go-Chassis и использовать такие функции, как балансировка нагрузки, автоматический выключатель, ограничение скорости, управление маршрутизацией, которые делают ваш сервис устойчивым.

Go-Chassis делает сервис наблюдаемым благодаря открытой трассировке и Prometheus.

Go-Chassis является гибким, многие различные модули могут быть заменены другими реализациями, такими как реестр, метрики, цепочка обработчиков, центр конфигурации и т. д.

Благодаря множеству встроенных функций, таких как управление маршрутами, автоматические выключатели, балансировка нагрузки и мониторинг, вам не нужно самостоятельно исследовать, внедрять и интегрировать множество решений.

Go-Chassis поддерживает платформу Istio, хотя Istio — отличная платформа с сервисной сеткой в плоскости данных, она, безусловно, снижает пропускную способность и увеличивает задержку вашего сервиса. Go-Chassis может повысить производительность программы Go, вы можете использовать конфигурации Istio для управления Go-Chassis.

У Go-Chassis также есть решение для сервисной сетки https://github.com/go-mesh/mesher, оно построено на основе Go-Chassis. Вы можете использовать один и тот же реестр и конфигурацию для управления всеми сервисами, написанными на разных языках.

Особенности

  • Настраиваемый регистратор и служба обнаружения: поддержка центра обслуживания, пилота Istio, Kubernetes и реестра на основе файлов, подходит как для обнаружения на стороне клиента, так и для шаблона обнаружения на стороне сервера.
  • Настраиваемый протокол: вы можете настроить собственный протокол, по умолчанию поддерживаются HTTP и gRPC.
  • Управление несколькими серверами: вы можете разделить API по протоколам и портам.
  • Автоматический выключатель: защищает вашу систему микросервисов во время выполнения.
  • Управление маршрутами: возможность направлять к различным сервисам на основе веса и правил соответствия для лёгкого достижения канареечного выпуска.
  • Балансировка нагрузки на стороне клиента: возможность настройки стратегии.
  • Ограничение скорости: ограничение скорости как на стороне клиента, так и на стороне сервера.
  • Настраиваемое шифрование: возможность настроить собственное шифрование для AKSK и сертификатов TLS.
  • Цепочка обработчиков: возможность добавления собственного кода во время вызова службы для клиентской и серверной сторон.
  • Метрики: возможность предоставлять метрический API Prometheus автоматически и настраиваемый репортёр метрик.
  • Трассировка: использование opentracing-go в качестве стандартной библиотеки, легко интегрируется с трассировкой.
  • Регистратор: возможность настраивать собственный модуль записи для приёма логов, по умолчанию поддерживается файл и стандартный вывод.
  • Горячее изменение конфигурации: благодаря go-archaius, конфигурации можно перезагружать во время выполнения, например, балансировку нагрузки, автоматические выключатели и ограничение скорости.
  • Динамическая структура конфигурации: благодаря go-archaius разработчики могут легко разрабатывать сервисы с функцией горячего изменения конфигурации.
  • Внедрение неисправностей: на стороне потребителя вы можете внедрить неисправности, чтобы провести тестирование на хаос в вашей системе.

Вы можете ознакомиться с плагинами, чтобы увидеть больше возможностей.

Быстрый старт

Вы можете увидеть дополнительные документы здесь, этот документ предназначен для последней версии Go-Chassis, если вы хотите увидеть документацию своей версии, следуйте здесь, чтобы создать её.

  1. Установите Go 1.10+.
  2. Клонируйте. Проект
git clone git@github.com:go-chassis/go-chassis.git
  1. Используйте go mod (go 1.11+, экспериментальный, но рекомендуемый способ)
cd go-chassis
export GO111MODULE=on 
go mod download
#опционально
export GO111MODULE=on 
go mod vendor

Обратите внимание: если вы не используете мод, мы не можем гарантировать вам совместимость. Однако вы всё ещё можете поддерживать своего собственного поставщика, что означает, что вы должны решать проблемы компиляции самостоятельно.

  1. Установите service-center

  2. Напишите свой первый HTTP микросервис

Примеры

Вы можете посмотреть примеры здесь

Обратите внимание: сейчас примеры переносятся на сюда

Коммуникационные протоколы

Go-Chassis поддерживает 3 типа коммуникационных протоколов.

  1. Rest — REST — это подход, который использует протокол HTTP для коммуникации.
  2. Highway — Это RPC-протокол связи, он устарел.
  3. grpc — собственный протокол grpc, go chassis добавляет прерыватель цепи, управление маршрутами и т. д. в grpc.

Предложение по отладке для dlv:

Добавьте -tags debug в аргументы сборки перед отладкой, если ваша версия go — go1.10 или выше.

Пример:

go build -tags debug -o server -gcflags "all=-N -l" server.go

Chassis настроил тег debug, чтобы решить проблему с отладкой dlv:

https://github.com/golang/go/issues/23733

https://github.com/derekparker/delve/issues/865

Экосистема

Эта часть представляет некоторые экосистемы, с которыми может работать go chassis.

Apache ServiceComb

С сервисным центром ServiceComb в качестве реестра go chassis предоставляет больше функций, таких как управление контрактами и множественный реестр сервисов, настоятельно рекомендуется. Это не помешает вам использовать kubernetes или Istio, потому что сервисный центр может агрегировать разнородные реестры и предоставить вам единую точку входа в реестр служб.

Kubernetes и Istio

У go chassis есть плагины для реестра k8s и реестра Istio, а также поддержка управления трафиком Istio. Вы можете использовать spring cloud или Envoy с go chassis под одной службой обнаружения служб.

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

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

Введение

Фреймворк для микросервисов для быстрой разработки микросервисов на Go. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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