55. PHPクラウドへ
ØMQ (zoeromq)
class GatewayDaemon {
public function __construct($frontDSN,$backDSNs){
$this->frontDSN = $frontDSN;
$this->backDSNs = $backDSNs;
$this->zmqCtx = new ZMQContext();
$this->zmqSockFront = new ZMQSocket($this->zmqCtx, ZMQ::SOCKET_XREP);
$this->zmqSockBack = new ZMQSocket($this->zmqCtx, ZMQ::SOCKET_XREQ);
}
public function main(){
$this->zmqSockFront->bind($this->frontDSN);
foreach($this->backDSNs as $backDSN ) {
$this->zmqSockBack->connect($backDSN);
}
new ZMQDevice(ZMQ::DEVICE_QUEUE,$this->zmqSockFront,$this->zmqSockBack);
}
} 55
56. PHPクラウドへ
インターネット
インターネット
Controller
WEB
WEB φMQ
Zookeeper View
Model API
API φMQ φMQ
分散 分散 分散 分散
DB DB DB DB
56
71. Cockatoo概要
Internet
Internet
Request SessionDB
LayoutDB Gat page layout
MongoDB
WEB
WEB ReplSet
MongoDB
ReplSet Get components
Call APIs Memcache
API
API
Retrieve data
ContentsDB MongoDB
ReplSet 71
72. Cockatoo概要
Internet
Internet
Request SessionDB
LayoutDB Gat page layout
MongoDBはREADには強く
MongoDB
WEBアクセスに十分耐える
WEB
WEB ReplSet
MongoDB 性能がある。
ReplSet Get components
しかしWRITEそれ程でも無いCall APIs Memcache
セッションなどは
API
Memcachedの方が無難
API
Retrieve data
ContentsDB MongoDB
ReplSet 72
73. Cockatoo概要
Internet
Internet
Request SessionDB
LayoutDB Gat page layout
MongoDB
WEB
WEB ReplSet
MongoDB
ReplSet Get components
Call APIs Memcache
API
API
Zookeeper
Retrieve data
ContentsDB MongoDB
ReplSet 73
74. Cockatoo概要
Internet
Internet
Request SessionDB
LayoutDB Gat page layout
MongoDB
WEB
WEB ReplSet
MongoDB
ReplSet Get components
Call APIs Memcache
API
API
Zookeeper Solr
Retrieve data
ContentsDB MongoDB
ReplSet 74
75. Cockatoo概要
Developer
HTML markup
LayoutDB Set page layout & Deploy API
API settings
CMS Batch servers
MongoDB
ReplSet Set components
Insert Data
API servers
API servers
Set static contents
ContentsDB MongoDB
ReplSet 75
80. Cockatooクラスタ構成(サービス環境)
Load Balancer
HTTP
WEB cloud
WEB cloud
Web server
Web server
Web server
ClearSilver apache
ClearSilver apache
ClearSilver apache LayoutDB(replset)
cockatoo-web
cockatoo-web
cockatoo-web
φMQ Mongo server
φMQ page info Mongo server
φMQ Mongo server
φMQ php
φMQ php MongoDB
MongoDB
φMQ php
cockatoo-gateway
cockatoo-gateway MongoDB
cockatoo-gateway
φMQ
φMQ
φMQ
session data
API info
API cloudAPI call (RPC) SessionDB
API cloud
API server
API server Memcached server
API server Memcached server
φMQ php Memcached server
φMQ php
φMQ php
cockatoo-action
cockatoo-action session data Memcache
Memcache
cockatoo-action Memcache
business logics
query
regist
ContentsDB(replset) zookeeper cluster
Mongo server Zookeeper server
Mongo server Zookeeper server
Mongo server Zookeeper server
MongoDB
MongoDB
MongoDB zookeeper
80
81. Cockatooスタンドアロン構成(開発環境)
Local machine
Blowser
HTTP
apache
LayoutDB
ClearSilver
cockatoo-web info
page
API call (function call) Filesystem
cockatoo-action session data
business logics
SessionDB
query session data
ContentsDB
Filesystem
Filesystem
API呼び出しのRPC部分をショートカット(zmq,zookeeper要らない)
ストレージ処理も同様に簡素化(Mongo,memcached要らない) 81
82. クラスタ構成 開発環境
Load Balancer Local machine
HTTP Blowser
WEB cloud
WEB cloud HTTP
Web server
Web server
Web server
ClearSilver
ClearSilver
apache
apache LayoutDB
ClearSilver apache LayoutDB(replset) ClearSilver
apache
cockatoo-web
cockatoo-web
cockatoo-web
φMQ Mongo server cockatoo-web info
page
φMQ page info Mongo server
φMQ Mongo server
φMQ php
φMQ php MongoDB
MongoDB Filesystem
φMQ php API call (function call)
cockatoo-gateway
cockatoo-gateway MongoDB
cockatoo-gateway
φMQ
φMQ
φMQ
session data cockatoo-action session data
business logics
API info SessionDB
API call (RPC)
API cloud SessionDB query session data
API cloud
API server
API server Memcached server ContentsDB
API server Memcached server
φMQ php Memcached server
φMQ php
φMQ
cockatoo-action php Memcache Filesystem
session data
cockatoo-action
cockatoo-action Memcache
Memcache Filesystem
business logics
Deploy
query Export
regist
ContentsDB(replset) zookeeper cluster Import
Tools
Mongo server Zookeeper server
Mongo server Zookeeper server
Mongo server Zookeeper server
Packaging
MongoDB
MongoDB
MongoDB zookeeper Capkg
82