中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql數據庫推送平臺

發布時間:2020-04-11 15:17:17 來源:億速云 閱讀:817 作者:三月 欄目:MySQL數據庫

與其他CDN服務商相比,億速云CDN的主要優勢包括穩定快速、性價比高、簡單易用、高效智能。比較多的用戶會問到穩定快速這個優點,一般來說,億速云的CDN特點是分擔源站壓力,避免網絡擁塞,確保在不同區域、不同場景下加速網站內容的分發,提高資源訪問速度。以下給大家介紹下mysql數據庫推送平臺與CDN。

sendfile(數據直接從 kernal的buffer出去)適合小文件
Aio(nginx)全異步(與事件驅動io的區別是:數據會到達mem才會通知,其實也不需要通知 可以直接返回給客戶端) 支持:mmap event drive(處理大文件)

上一回說到,在數據庫修改后,redis里面的數據不能做到自動更新,必須手動刪除更改過的數據 根據以上問題我們做出如下改進:
所以接下來就要通過 mysql 觸發器將改變的數據同步到 redis 中
mysql數據庫推送平臺配置 gearman 實現數據同步
Gearman 是一個支持分布式的任務分發框架:
Gearman Job Server: Gearman 核心程序,需要編譯安裝并以守護進程形式運行在后臺。
Gearman Client:可以理解為任務的請求者。
Gearman Worker:任務的真正執行者,一般需要自己編寫具體邏輯并通過守護進程方式
運行,Gearman Worker 接收到 GearmanClient 傳遞的任務內容后,會按順序處理。

大致流程:下面要編寫的 mysql 觸發器,就相當于 Gearman 的客戶端。修改表,插入表就相當于直接
下發任務。然后通過 lib_mysqludf_json UDF 庫函數將關系數據映射為 JSON 格式,然后
在通過 gearman-mysql-udf 插件將任務加入到Gearman 的任務隊列中,最后通過
redis_worker.php,也就是 Gearman 的worker 端來完成 redis 數據庫的更新。

dd1:
cd /root/redis
安裝gearman軟件包:
yum install gearmand-1.1.8-2.el6.x86_64.rpm libgearman-1.1.8-2.el6.x86_64.rpm
/etc/init.d/php-fpm start
netstat -antlpe
mysql數據庫推送平臺
dd1:
安裝php的gearman擴展
tar zxf gearman-1.1.2.tgz
cd gearman-1.1.2
phpize
rpm -ivh libgearman-devel-1.1.8-2.el6.x86_64.rpmlibevent-devel-1.4.13-4.el6.x86_64.rpm libevent-doc-1.4.13-4.el6.noarch.rpmlibevent-headers-1.4.13-4.el6.noarch.rpm
./configure
make && make install
cd /etc/php.d/
cp mysql.ini gearman.ini
vim gearman.ini

mysql數據庫推送平臺
/etc/init.d/php-fpm restart

查看php已經安裝過的擴展:
php -m | grep gearman
php -m | grep mysql
php -m | grep redis

mysql數據庫推送平臺
cd redis/
scp gearman-mysql-udf-0.6.tar.gz 172.25.42.12
scp lib_mysqludf_json-master.zip 172.25.42.12:
scp libevent-* libgearman-* 172.25.42.12:


dd3:
/etc/init.d/mysqld start
tar zxf gearman-mysql-udf-0.6.tar.gz
yum install mysql-devel -y
rpm -ivh libgearman-devel-1.1.8-2.el6.x86_64.rpmlibevent-devel-1.4.13-4.el6.x86_64.rpm libevent-doc-1.4.13-4.el6.noarch.rpmlibevent-headers-1.4.13-4.el6.noarch.rpm
cd gearman-mysql-udf-0.6
./configure --libdir=/usr/lib64/mysql/plugin/
make && make install
cd /usr/lib64/mysql/plugin/

進入mysql環境:
注冊 UDF 函數
mysql> CREATE FUNCTION gman_do_background RETURNS STRING SONAME
'libgearman_mysql_udf.so';
mysql> CREATE FUNCTION gman_servers_set RETURNS STRINGSONAME
'libgearman_mysql_udf.so';

查看函數
mysql> select * from mysql.func;
mysql數據庫推送平臺
安裝 lib_mysqludf_json
lib_mysqludf_jsonUDF 庫函數將關系數據映射為 JSON 格式。通常,數據庫中的數據映射為 JSON 格式,是通過程序來轉換的
unzip lib_mysqludf_json-master.zip
cd lib_mysqludf_json-maste
gcc $(mysql_config --cflags) -shared -fPIC -olib_mysqludf_json.so
lib_mysqludf_json.c

查看 mysql 的模塊目錄:
mysql> show global variables like 'plugin_dir'
拷貝 lib_mysqludf_json.so 模塊:
cp lib_mysqludf_json.so /usr/lib64/mysql/plugin/
注冊 UDF 函數
mysql> CREATE FUNCTION json_object RETURNS STRING SONAME
'lib_mysqludf_json.so'

查看函數
mysql> select * from mysql.func;
mysql數據庫推送平臺
指定 gearman 的服務信息
mysql>SELECT gman_servers_set('172.25.42.10:4730');
編寫 mysql 觸發器 test.sql

mysql數據庫推送平臺
mysql < test.sql
查看觸發器
mysql> SHOW TRIGGERS FROM test

mysql數據庫推送平臺

mysql數據庫推送平臺


dd1:
編寫 gearman 的 worker 端
nohup php worker.php &>/dev/null & (后臺運行)
mysql數據庫推送平臺
測試:
更新 mysql 中的數據

mysql數據庫推送平臺
mysql> update test set name='test1' where id=1
mysql數據庫推送平臺
mysql> update test set name='dangdang' where id=1

mysql數據庫推送平臺

mysql數據庫推送平臺


Varnish:高速http緩存:
dd1:
varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm
rpm –ivh

mysql數據庫推送平臺
vim /etc/sysconfig/varnish

mysql數據庫推送平臺
cd /etc/varnish/
vim default.vcl

mysql數據庫推送平臺
/etc/init.d/varnish start

dd3:/etc/init.d/httpd start
mysql數據庫推送平臺
###
通過 varnishadm 手動清除緩存
# varnishadm ban.url .*$
#清除所有
# varnishadm ban.url /index.html
#清除 index.html 頁面緩存
# varnishadm ban.url /admin/$
#清除 admin 目錄緩存


vim default.vcl
###
查看緩存命中情況
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}

測試緩存命中:

mysql數據庫推送平臺

mysql數據庫推送平臺


定義多個不同域名站點的后端服務器:
backend default {
  .host = "172.25.42.12";
  .port = "80";
}

backend web {
  .host = "172.25.42.11";
  .port = "80";
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?dd.org") {
set req.http.host = "www.dd.org";
set req.backend = default;
} elsif (req.http.host ~ "^bbs.dd.org") {
set req.backend = web;
} else {error 404 "westos cache";
}
測試:www.dd.org 和 dd.org 是同一個緩存

mysql數據庫推送平臺 

而bbs.dd.org是一個緩存

mysql數據庫推送平臺


#
當訪問 www.dd.org 域名時從 default 上取數據,訪問 bbs.dd.org 域名時到web 取數據,訪問其他頁面報錯 //注意:測試主機加解析

負載均衡:(域名負載均衡)
訪問www.dd.org 時 兩臺主機響應它
避免再開一臺虛擬機 給dd2 做虛擬主機(一個ip 多個域名)
mysql數據庫推送平臺
dd1:

vim default.vcl
director lb round-robin {
{.backend = default;}
{.backend = web;}
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?dd.org") {
set req.http.host = "www.dd.org";
set req.backend = lb;
return (pass); (
測試用)
} elsif (req.http.host ~ "^bbs.dd.org") {
set req.backend = web;
} else {error 404 "westos cache";
}
}

mysql數據庫推送平臺

mysql數據庫推送平臺

mysql數據庫推送平臺


varnish cdn 推送平臺 (清空緩存)
#需要安裝 php 支持
# unzip bansys.zip -d /var/www/html
# vi /var/www/html/bansys/config.php
#只保留如下設置,其余注釋掉
<?php
$var_group1 = array(
'host' => array('172.25.42.10'),
'port' => '80',
);
//varnish 群組定義
//對主機列表進行綁定
$VAR_CLUSTER = array(
'www.dd.org' => $var_group1,
);

vim /etc/varnish/default.vcl
/etc/init.d/varnish reload

測試:

mysql數據庫推送平臺

如果大家還有什么地方需要了解的可以在億速云官網找我們的CDN技術工程師的,億速云CDN技術工程師在行業內擁有十幾年的經驗了,所以會比小編回答的更加詳細專業。億速云官網鏈接www.5655pk.com

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥中县| 墨江| 公安县| 富平县| 汶川县| 阳山县| 犍为县| 江源县| 手游| 射洪县| 铅山县| 西和县| 台州市| 思茅市| 静乐县| 蓝山县| 清水县| 金华市| 泰宁县| 吴堡县| 天津市| 东至县| 德阳市| 四会市| 杂多县| 简阳市| 镇康县| 长宁县| 象州县| 渑池县| 瓦房店市| 天台县| 邯郸市| 甘德县| 安阳县| 通辽市| 浪卡子县| 南雄市| 葵青区| 吴忠市| 乌拉特后旗|