コンセプト
大規模な単一のアプリケーションとサービスを複数または数十に分割します。それぞれがマイクロサービスをサポートします。これにより、サービス レベル アグリーメントを満たすためにアプリケーション スタック全体ではなく、個々のコンポーネントがスケーリングされます。
従来の開発モデルでは、すべての機能を 1 つのパッケージにまとめており、基本的に依存関係はありません。この利点は、開発が簡単、集中管理、すべての機能がローカルであり、分散管理やスケジューリングがないことです。 。しかし、欠点も明らかです。効率が低く、開発者全員が同じプロジェクト内のコードを変更してお互いを待ち、競合が続きます。安定性が悪く、小さな問題によりアプリケーション全体がハングアップする可能性があります。さらに、リソースの利用には明らかな欠点があり、たとえば、電子商取引のダブル 11 プロモーション シナリオでは、注文のプレッシャーが非常に高く、評価のプレッシャーが比較的小さいため、一時的に割り当てを増やすことができればと考えています。ダブル 11 の大規模なプロセスに対処するには、固定点でサービスを注文するために追加の割り当てを追加するだけではなく、すべてのリソースの割り当てを増やすことしかできません。したがって、マイクロサービス アーキテクチャは徐々に普及し、大規模な Web サイト プラットフォームに適用されるようになりました。
おすすめ: 「Yii2.0 フレームワークの紹介と実践的なプロジェクト開発ビデオチュートリアル #」
それでは、今日のトピックである Yii でマイクロサービスを実行する方法を紹介します。 ? Yii は、基本テンプレートと高度なテンプレートに含まれる機能がなくても簡単に使用できます。言い換えれば、Yii はすでにマイクロフレームワークです。テンプレートによって提供されるディレクトリ構造は、Yii で動作するために必要ありません。
Yii のインストール
プロジェクトのディレクトリを作成し、作業ディレクトリをそのパスに変更します。例で使用されているコマンドは Unix ベースですが、同様のコマンドが Windows にも存在します。
mkdir micro-app cd micro-app
注: 続行するには、Composer の知識が必要です。 Composer の使用方法がまだわからない場合は、時間をかけて Composer ガイドを読んでください。
お好みのエディターを使用して、マイクロアプリ ディレクトリにcomposer.json ファイルを作成し、次の内容を追加します。
{ "require": { "yiisoft/yii2": "~2.0.0" }, "repositories": [ { "type": "composer", "url": "https://asset-packagist.org" } ] }
ファイルを保存して、 コンポーザー インストール # を実行します。 # #注文。これにより、フレームワークとそのすべての依存関係がインストールされます。
プロジェクト構造の作成
<?php // comment out the following two lines when deployed to production defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); $config = require __DIR__ . '/../config.php'; (new yii\web\Application($config))->run();
<?php return [ 'id' => 'micro-app', //设置`micro-app`的根目录 'basePath' => __DIR__, // 控制器所在目录。 'controllerNamespace' => 'micro\controllers', // 设置命名空间为 micro 'aliases' => [ '@micro' => __DIR__, ], //默认访问地址 'defaultRoute' => 'home/index', 'components' => [ //请求配置 'request' => [ 'cookieValidationKey' => 'test&123456', 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ] ], //Url 美化 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'enableStrictParsing' => false, 'rules' => [ '<controller:\w+>/<action:\w+>/<id:\w+>' => '<controller>/<action>', ], ], //数据库配置 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=micro', 'username' => 'root', 'password' => '数据库密码', 'charset' => 'utf8', ], ], ];
情報: 設定は、index.php ファイルに保存できますが、個別に使用することをお勧めします。このようにして、以下に示すようにコンソール アプリケーションでも使用できます。プロジェクトをコーディングする準備が整いました。ただし、名前空間を尊重する限り、プロジェクトのディレクトリ構造を決定するのはあなた次第です。
最初のコントローラーの作成
<?php namespace micro\controllers\base; use yii\web\Controller; class BaseController extends Controller { //关闭 csrf 验证 public $enableCsrfValidation = false; }
<?php namespace micro\controllers; use yii\web\Controller; class HomeController extends BaseController { public function actionIndex() { return '欢迎来到 Yii2.0 微服务!'; } }
micro-app/ ├── composer.json ├── config.php ├── web/ └── index.php └── controllers/ └── base └── BaseController.php └── HomeController.php └── vendor
vendor/bin/yii serve --docroot=./web
情報: この例では、デフォルトのアプリケーション名前空間 app を micro に変更して、この名前に制限されていないことを示し (そう思われる場合)、コントローラーの名前空間を調整して、正しい別名。
以上がYii2.0を使用してマイクロサービスを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。