go/golang микросервисный фреймворк
go 1.13.15+
Для RPC используется gRPC, при использовании необходимо установить зависимости:
Установка protoc:
wget https://github.com/google/protobuf/releases/download/v3.14.0/protobuf-all-3.14.0.zip
unzip protobuf-all-3.14.0.zip
cd protobuf-3.14.0/
./configure
make
make install
# Если есть ошибки, выполните:
ldconfig
# Для grpc:
go get -u google.golang.org/grpc@v1.32.0
go get -u google.golang.org/protobuf@v1.25.0
go get -u github.com/golang/protobuf/protoc-gen-go@v.1.4.3
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v1.14.3
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
go get -u github.com/jteeuwen/go-bindata/...
go get -u github.com/elazarl/go-bindata-assetfs/...
python 2.7 или 3.5
Адрес кластера etcd: ETCDV3_SERVER_URLS:
Конфигурация моего окружения (только для справки):
export ETCDCTL_API=3
export ETCDV3_SERVER_URLS=http://10.211.55.4:2379,http://10.211.55.7:2379
Если вы создаёте кластер etcd самостоятельно, то вам потребуется как минимум два узла (один главный и один подчинённый). Для локального создания кластера можно обратиться к ссылке: https://gitee.com/cristiane/micro-mall-api/blob/master/%E5%BE%AE%E5%95%86%E5%9F%8EETCD%E9%83%A8%E7%BD%B2.pdf
См. инструменты kelvins: https://gitee.com/kelvins-io/kelvins-tools/blob/master/README.md
Файл конфигурации по умолчанию находится в корне проекта /etc/app.ini. Большинство проектов, начинающихся с micro-mall-, уже содержат необходимые конфигурационные файлы. Вы можете просто изменить их в соответствии со своими настройками.
На момент последней версии kelvins все поддерживаемые проекты имеют следующие конфигурационные файлы (./etc/app.ini): Конфигурационный элемент, если он не заполнен, будет использовать значение по умолчанию. Конечно, соответствующие бизнес-функции также не могут быть использованы.
Рекомендуется настроить следующие параметры:
kelvins-server Окружение: выбор значения dev, test, release или prod. AppName: если не пусто, приоритет выше, чем у имени, указанного в коде. PIDFile: обратите внимание на формат пути в Windows.
[kelvins-сервер]
AppName = "kelvins-шаблон"
Окружающая среда = "dev"
PIDFile = "./kelvins-app.pid"
kelvins-logger Логирование: уровень, путь и т.д. RootPath: обратите внимание на формат пути в Windows.
[kelvins-логгер]
RootPath = "./logs"
Уровень = "отладка"
-- Самостоятельно настраиваемые параметры: kelvins-http-server Настройка RPC и HTTP сервисов. Network и *Timeout применяются только к онлайн-приложениям (h2c->gPRC, http). SupportH2 применим только к HTTP сервисам, вызовы RPC по умолчанию используют H2. После включения H2 HTTP сервисы всё ещё совместимы с HTTP1.1, но клиенты, использующие HTTP, должны настроить транспорт HTTP-клиента для обновления протокола до HTTP2.
[kelvins-HTTP-сервер]
Сеть = "TCP"
ReadTimeout = 30
WriteTimeout = 30
IdleTimeout = 30
ПоддержкаH2 = ложь
kelvins-http-rate-limit Настройка ограничения скорости HTTP сервисов. MaxConcurrent — максимальное количество одновременных подключений (больше 0 действует).
[kelvins-ограничитель скорости HTTP]
MaxConcurrent = 0
kelvins-mysql MySQL: информация о конфигурации подключения. *Timeout измеряется в секундах.
[kelvins-MySQL]
Хост = "127.0.0.1:3306"
Имя пользователя = "root"
Пароль = "2123afsdfadsffasdf"
DBName = "micro_mall_user"
Charset = "utf8"
PoolNum = 10
MaxIdleConns = 5
ConnMaxLifeSecond = 3600
MultiStatements = истина
ParseTime = истина
InterpolateParams = истина
ConnectionTimeout = "30s"
WriteTimeout = "30s"
ReadTimeout = "30s"
kelvins-redis Redis: информация о конфигурации подключения. *Timeout измеряется в секундах.
[kelvins-Redis]
Хост = "127.0.0.1:6379"
Пароль = "f434rtafadsfasd"
БД = 1
PoolNum = 10
IdleTimeout = 300
ConnectTimeout = 30
ReadTimeout = 30
WriteTimeout = 30
kelvins-g2cache CacheDebug: включить режим отладки. CacheMonitor: включить функцию мониторинга статистики. FreeCacheSize: максимальный объём памяти локального кэша (freecache) в байтах. OutCachePubSub: включить функцию публикации и подписки для экземпляра.
[kelvins-g2cache]
CacheDebug = ложь
CacheMonitor = ложь
FreeCacheSize = 52428800
RedisConfDSN = "127.0.0.1:6379"
RedisConfDB = 3
RedisConfPwd = "xxxx"
RedisConfMaxConn = 10
OutCachePubSub = ложь
PubSubRedisChannel = "kelvins-g2cache-pubsub-channel"
PubSubRedisConfDSN = "127.0.0.1:6379"
PubSubRedisConfDB = 5
PubSubRedisConfPwd = "xxxx"
PubSubRedisConfMaxConn = 3
kelvins-mongodb MongoDB: информация о конфигурации подключения.
[kelvins-MongoDB]
Uri = "mongodb://127.0.0.1:27017"
Username = "admin"
Password = "fadfadsf3"
Database = "micro_mall_sku"
AuthSource = "admin"
MaxPoolSize = 9
MinPoolSize = 3
kelvins-queue-redis Информация о конфигурации Redis для функций очередей. ResultsExpireIn измеряется в секундах. DisableConsume указывает, выполняется ли потребление задач в очереди в качестве типа приложения очереди.
[kelvins-очередь-redis]
Брокер = "redis://xxx"
DefaultQueue = | https://gitee.com/cristiane | На основе сигналов операционной системы, есть различия на разных платформах
2021-4-19 | Поддержка gin | https://gitee.com/cristiane | Разрешено регистрировать gin http handler в приложении
2021-7-9 | Совместимость с Windows | https://gitee.com/cristiane | Исправлена проблема невозможности запуска приложения на платформе Windows
2021-8-1 | Оптимизация функции выполнения при выходе из приложения | https://gitee.com/cristiane | Улучшена обработка исключений при завершении работы приложения
2021-8-1 | Поддержка балансировки нагрузки | https://gitee.com/cristiane | Для gRPC и HTTP приложений; автоматическое распределение нагрузки между несколькими экземплярами одного приложения
2021-8-7 | Команда запуска | https://gitee.com/cristiane | -s параметр запуска, поддержка запуска процесса, перезапуска процесса, остановки процесса
2021-8-13 | Проверка работоспособности RPC | https://gitee.com/cristiane | Поддерживается использование инструментов типа grpc-health-probe для проверки работоспособности
2021-8-14 | Авторизация доступа к RPC — токен | https://gitee.com/cristiane | В приложениях RPC поддерживается включение авторизации доступа
2021-8-14 | Инструмент нагрузочного тестирования RPC-ghz | https://gitee.com/cristiane | Поддерживает тестирование приложений RPC под нагрузкой и создание отчётов
2021-9-1 | Несколько обновлений | https://gitee.com/cristiane | Выравнивание журналов RPC, параметризация конфигурации сервера RPC и оптимизация запуска
2021-9-11 | Несколько обновлений | https://gitee.com/cristiane | Оптимизированы client_service, print, queue и другие
2021-9-18 | Оптимизация среды выполнения, оптимизация HTTP | https://gitee.com/cristiane | Вывод информации на основе журнала среды выполнения
2021-9-20 | Добавление метаданных в RPC и HTTP, оптимизация регистрации сервисов | https://gitee.com/cristiane | Например, request-id, version, время запроса, имя сервиса, узел сервиса и т. д.
2021-9-25 | Рефакторинг перехватчика RPC-сервисов, поддержка H2 для HTTP-сервиса | https://gitee.com/cristiane | Перехватчик, HTTP2
2021-10-1 | Сервисы RPC и HTTP поддерживают ограничители потока | https://gitee.com/cristiane | Ограничение потока
2021-10-15 | Мониторинг состояния онлайн-сервисов | https://gitee.com/cristiane | Слежение за триггерами resolver в узлах etcd
2021-10-15 | Регистрация онлайн-сервисов в etcd без необходимости отдельной настройки хоста сервиса | https://gitee.com/cristiane | Не нужно отдельно настраивать хост сервиса
2021-11-5 | Внедрение многоуровневого кэша g2cache, исправление ошибок | https://gitee.com/cristiane | Модуль g2cache включается на основе конфигурации
2023-12-27 | Удаление util/test_tool | https://gitee.com/cristiane | Библиотека ghz вызвала конфликт версий grpc
2023-12-28 | Решение конфликта версий зависимостей mod, обновление версии gin | https://gitee.com/cristiane | Конфликт версий библиотек etcd и grpc
2023-12-28 | Поддержка распределённых транзакций seata-go | https://gitee.com/cristiane | Версия go seata поддерживает только режимы at (SQL прокси) и tcc
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )