Tars driver for yii2.
Интеграция микросервисной системы управления Tars в Yii2.
Создайте проект. Создайте структуру каталогов проекта Tars (scripts, src, tars), поместите проект Yii2 в каталог src.
Установите пакет Yii2 Tars.
Обновите Composer-зависимости:
composer require "luoxiaojun1992/yii2-tars:*"
или добавьте требование в composer.json:
{
"require": {
"luoxiaojun1992/yiii2-tars": "*"
}
}
Инициализируйте Yii2 Tars:
./yii tars/publish
Измените файл конфигурации src/config/params.php в поле tars proto, замените appName, serverName и objName.
Если используется протокол http и требуется автоматическая регистрация в шлюзе (в настоящее время поддерживается только Kong), измените файл конфигурации src/config/params.php в поле registries:
'registries' => [
[
'type' => 'kong',
'url' => 'http://kong:8001/upstreams/tars_mysql8/targets' //заполните в соответствии с фактической ситуацией
]
]
Конфигурация центра (TarsConfig) и службы журнала (TarsLog).
При запуске сервиса автоматически извлекается конфигурация. Для ведения журнала можно использовать код, подобный Yii::info('test log');
.
Если необходимо указать минимальный уровень журнала TarsLog, измените файл конфигурации src/config/params.php в поле log_level:
'log_level' => ['info']
Для указания частоты записи TarsLog измените файл конфигурации src/config/params.php в поле log_interval:
'log_interval' => 1000
Если используется протокол http, напишите код в соответствии со способом фреймворка. Нет особых требований к маршрутизации.
Если используется протокол tars, создайте файл описания интерфейса в каталоге tars и измените файл конфигурации src/config/params.php в поле proto, добавив tarsFiles.
Выполните скрипт компиляции в каталоге scripts для генерации кода интерфейса:
/bin/bash tars2php.sh
В каталоге src/tars/impl создайте класс реализации интерфейса и напишите бизнес-логику.
Измените файл конфигурации src/config/params.php в поле services, заменив пространство имён интерфейса и пространства имён реализации.
Настройте среду разработки Tars-PHP.
Если используется протокол http, обратитесь к TARS-PHP-HTTP服务端与客户端开发.
Если используется протокол tars, обратитесь к TARS-PHP-TCP服务端与客户端开发
Упакуйте проект в среде разработки Tars-PHP (выполните ./yii tars/deploy
в каталоге src).
Опубликуйте проект на панели управления Tars, обратитесь к TARS-PHP-TCP服务端与客户端开发, протестируйте curl 'http://{ip}:{port}/{api_route}'
.
См. https://github.com/luoxiaojun1992/yii2-tars-demo.
Пример конфигурации Jenkins Pipeline (измените в соответствии с реальной ситуацией):
pipeline {
agent {
node {
label 'phpenv'
}
}
parameters {
string(defaultValue: 'upload_from_jenkins', name: 'TAG_DESC', description: '发布版本描述' )
string(defaultValue: 'master', name: 'BRANCH_NAME', description: 'git分支,如:develop,master 默认: master')
}
environment {
def JENKINS_HOME = "/root/jenkins"
def PROJECT_ROOT = "$JENKINS_HOME/workspace/yii2-tars-demo"
def APP_NAME = "PHPTest"
def SERVER_NAME = "Yii2Tars"
}
stages {
stage('代码拉取与编译'){
steps {
echo "checkout from git"
git credentialsId:'2', url: 'https://gitee.com/lb002/yii2-tars-demo', branch: "${env.BRANCH_NAME}"
script {
dir("$PROJECT_ROOT/src") {
echo "Composer Install"
sh "composer clearcache"
sh "composer install -vvv"
}
}
}
}
stage('单元测试') {
steps {
script {
dir("$PROJECT_ROOT/src") {
echo "phpunit 测试"
//sh "vendor/bin/phpunit tests/"
echo "valgrind 测试"
}
}
}
}
stage('覆盖率测试') {
steps {
echo "LCOV 覆盖率测试"
}
}
stage('打包与发布') {
steps {
script {
dir("$PROJECT_ROOT/src") {
echo "打包"
sh "./yii tars/deploy"
echo "Публикация" sh "ls *.tar.gz > tmp.log" echo "Загрузка build пакета" def packageDeploy = sh(script: "head -n 1 tmp.log", returnStdout: true).trim() sh "curl -H 'Host:172.18.0.3:3000' -F 'suse=@./${packageDeploy}' -F 'application=${APP_NAME}' -F 'module_name=${SERVER_NAME}' -F 'comment=${env.TAG_DESC}' http://172.18.0.3:3000/pages/server/api/upload_patch_package > curl.log" echo "Публикация build пакета" def packageVer = sh(script: "jq '.data.id' curl.log", returnStdout: true).trim() def postJson = '{"serial":true,"items":[{"server_id":"35","command":"patch_tars","parameters":{"patch_id":' + packageVer + ',"bak_flag":false,"update_text":"${env.TAG_DESC}"}}]}' echo postJson sh "curl -H 'Host:172.18.0.3:3000' -H 'Content-Type:application/json' -X POST --data '${postJson}' http://172.18.0.3:3000/pages/server/api/add_task" }
Jenkins процесс развёртывания

### Интеграция PHP фреймворка с TARS
[Как интегрировать TARS в PHP фреймворк](./docs/integration.md)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )