私は、大規模なデータベースの特定のデータをリモート Web サイトで利用できるようにするソリューションに取り組んでいます。私が最初に考えたのは、データベースから特定のデータを取得するために、いくつかの SOAP Web サービスを簡単に作成することでした。これは、Zend_Soap_Server のユーザーを使用して、たとえば次のように数行で実行できます。
class MyClass
{
public function getlastname($id)
{
$dbh = new PDO("oci:dbname=bigdb", "theuser", "thepass");
$stmt = $dbh->prepare("select lastname from person where id = :id");
if ($stmt->execute(array(':id',$id)))
{
$row = $stmt->fetch();
return $row['lastname'];
}
}
}
$server = new Zend_Soap_Server(null, $options);
$server->setClass('MyClass');
$server->setObject(new MyClass());
$server->handle();
今、誰かが私にメッセージブローカー/キューも見てみるように言った. 私は apache activeMQ、stomp、zend_queue などのソフトウェアを調べてきましたが、それらが何に使用されるべきか、またこのプロジェクトで役立つかどうかについて明確な見解を得ることはできませんでした。
私の実装には、データベースの応答が速くないときに Web サイトが遅くなったり、Web サイトから多くのリクエストが来るときにデータベースに高負荷がかかるなど、いくつかの欠点がある可能性があることを理解しています。メッセージブローカーはそのような複雑さを防ぐことができますか?