mysqlテーブルデータが変化した場合、ビジネスシステム(mysql-udf-http)にアクティブに通知します.

6557 ワード

最近、ある任務を受けて、業者の商品情報が変わった後、直ちに業者の業務システムに通知し、変更後のデータを同期しなければならない.第一のアイデアは、メインシステムの業者編集モジュールに対応コードを挿入し、商品編集後、商品idをMQに送信し、サブシステムメッセージを購読し、対応する処理を行うことで、良い感じですが、メインシステムが拡張されると、システムコードはますます肥大化します.mysqlがビジネスシステムに自発的に通知し、データが変化したなど、より良いソリューションはありますか?そこでmysql-udf-httpを見つけました.
mysql-udf-httpは簡単なMySQLユーザーカスタム関数で、http_get()、http_post()、http_put()、http_delete()の4つの関数は、MySQLデータベースでHTTPプロトコルを使用してREST関連操作を行うことができ、そのインストール方法は以下の通りです.
tar zxvf mysql-udf-http-1.0.tar.gz
cd mysql-udf-http-1.0/
./configure --prefix=/usr/local/mysql --with-mysql=/usr/local/mysql/bin/mysql_config
make && make install

libcurlが見つからない場合はcurlをインストールします
yum install curl*

正常な場合mysql-udf-http.soなどのファイルが/usr/local/mysql/lib/pluginにインストールされます.なぜか私は/usr/local/mysql/lib/mysql/pluginにインストールされています.そこで、ソフトチェーンを追加します.
ln -s /usr/local/mysql/lib/mysql/plugin/mysql-udf-http.so /usr/local/mysql/lib/plugin/mysql-udf-http.so

インストールに成功したらmysqlコンソールに進み、関連関数を登録します.
create function http_get returns string soname 'mysql-udf-http.so';
create function http_post returns string soname 'mysql-udf-http.so';
create function http_put returns string soname 'mysql-udf-http.so';
create function http_delete returns string soname 'mysql-udf-http.so'; 

次に、ビジネス・テーブルに更新操作のトリガを追加します.
DELIMITER |  
DROP TRIGGER IF EXISTS test_update;  
CREATE TRIGGER test_update  
AFTER UPDATE ON test  
FOR EACH ROW BEGIN  
    SET @tt_re = (SELECT http_get(CONCAT('http://192.168.0.1:8080/my.do?id=', OLD.id)));  
END |  
DELIMITER ;

テストにより、商品テーブルのデータが更新されると、mysqlはgetリクエストをビジネスシステムに送信します.
INSERTトリガ
DELIMITER |  
DROP TRIGGER IF EXISTS test_insert;  
CREATE TRIGGER test_insert  
AFTER INSERT ON test
FOR EACH ROW BEGIN  
    SET @tt_re = (SELECT http_get(CONCAT('http://192.168.0.1:8080/my.do?id=', OLD.id))); 
END |  
DELIMITER ;

DELETEトリガ
DELIMITER |  
DROP TRIGGER IF EXISTS test_delete;  
CREATE TRIGGER test_delete  
AFTER DELETE ON test  
FOR EACH ROW BEGIN  
    SET @tt_re = (SELECT http_get(CONCAT('http://192.168.0.1:8080/my.do?id=', OLD.id)));  
END |  
DELIMITER ; 

ダウンロードアドレスhttp://code.google.com/p/mysql-udf-httpcsdnダウンロードhttp://download.csdn.net/detail/cyantide/9455805