2
我正在研究一個解決方案,可以將大型數據庫中的某些數據提供給遠程網站。我的第一個想法是簡單地製作一些soap web服務來從數據庫中獲取某些數據。這可能在短短行完成,例如像這樣,與Zend_Soap_Server的用戶:PHP&SOAP什麼是消息代理?
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這樣的軟件,但是我沒有真正清楚它們應該用於什麼,以及在這個項目中它們會有用。
我明白我的實現可能會有一些缺點,比如當數據庫沒有快速響應時數據庫緩慢,當數據庫有大量來自網站的請求時數據庫負載過重,消息代理能夠防止這種併發症?
是信息經紀人也有用像SOAP調用我所描述的情況嗎?在這種情況下,發件人(網站)期待立即回答。 – Erikl 2010-10-05 08:54:56
我不認爲它與同步需要響應的事實有任何關係。經紀人只會從您的服務中獲取迴應並將其發送給客戶。如果緩存是可能的,你可以在代理中實現,也可以添加IP過濾,輸入驗證,輸出過濾器或任何你喜歡的。這是您如何設計應用程序的問題。就我個人而言,我會使用經紀人。 – 2010-10-05 09:14:28
謝謝Alin,我認爲你是對的。 – Erikl 2010-10-05 12:03:04