現微服務盛行,服務之間通訊大概就兩種方式Api
和Rpc
。 下面兩個列子來讓你瞭解Api
和Rpc
的區別。php
Api
實現:Router::get('/article/{id}','ArticleController@get'); Router::post('/article','ArticleController@create'); Router::put('/article/{id}','ArticleController@edit'); Router::delete('/article/{id}','ArticleController@delete');
而後在控制器Article
調用模型git
return Article::find($id)->toArray();
Rpc
實現RpcServer::add('Article');
沒錯就一行代碼github
假如機器A上面一個計算器 Counter
,以Rpc的方式提供給其餘機器使用.框架
計算器Counter
代碼微服務
class Counter { private $i = 0; public function __construct($i = 0) { $this->i = $i; } // 加法 public function add($v) { $this->i += $v; return $this; } // 減法 public function sub($v) { $this->i -= $v; return $this; } // 乘法 public function mul($v) { $this->i *= $v; return $this; } // 除法 public function div($v) { $this->i /= $v; return $this; } // 獲取結果 public function get() { return $this->i; } }
Rpc
實現RpcServer::add('Counter');
Rpc客戶端調用post
$c = new ClientCounter(10); echo $c->add(3)->mul(2)->sub(10)->div(5)->get();
Api
實現:你以爲 Api
應該怎麼實現?this
以上代碼是我在設計 one
框架的一些思考?設計
如你喜歡請star https://github.com/lizhichao/onecode
如其餘觀點,歡迎留言討論.get