我正在研究一种解决方案,使大型数据库中的某些数据可用于远程网站。我的第一个想法是简单地制作一些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,但我并没有真正清楚地了解它们应该用于什么,以及它们在这个项目中是否有用。
我知道我的实现可能有一些缺点,比如当数据库响应不快时,网站会变得缓慢,当网站发出大量请求时,数据库的负载会很高,消息代理是否能够防止这种并发症?
1条答案
按热度按时间guicsvcw1#
消息代理的作用是检查请求并将其分派到正确的服务或从缓存返回响应。
如果你期待大流量,你可能应该考虑使用消息代理。
问候,Alin