mysql数据库推送平台
admin
2023-05-20 07:42:34
0

与其他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
#只保留如下设置,其余注释掉
$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.yisu.com

相关内容

热门资讯

特朗普称如果伊朗不迅速行动,“... 新华社华盛顿5月17日电(记者徐剑梅 黄强)美国总统特朗普17日在社交媒体发文称,如果伊朗不迅速行动...
柳州5.2级地震致楼房倒塌,店... 据中国地震台网消息,5月18日00时21分在广西柳州市柳南区发生5.2级地震,震源深度8千米。有网友...
“华南第一商圈”再升级!全国首... 5月16日,“万兆AI惠商,联通美好未来”2026年517电信日暨中国联通品牌与产品广东宣传推广会在...
原创 3... 如果今年618你手里预算在3000多元,又特别看重拍照,我反而不建议只盯着那些刚发布、热度很高的新机...
苹果首款折叠屏iPhone U... 快科技5月17日消息,今年4月曾有消息称,苹果首款折叠屏手机iPhoneUltra(iPhone F...
广西柳州发生5.2级地震,南宁... 据中国地震台网正式测定,5月18日0时21分在广西柳州市柳南区发生5.2级地震,震源深度8公里,震中...
购药新规落地!多地药房称买“减... 5月17日消息,近日有消息称,自5月15日起,司美格鲁肽、替尔泊肽等GLP-1药物均需要凭有效期内的...
苹果深夜“放价”:iPhone... 来源:环球网 【环球网科技综合报道】5月15日消息,苹果在深夜毫无预警地打响了一轮价格战,iPho...
原创 从... 进入2026年5月下旬,手机圈即将迎来全年最密集的新品发布窗口。 从今天开始到7月下旬,短短两个月时...
全钢实验台厂家梳理 医疗/科研... 导语:实验室设备选型需兼顾功能适配性与长期稳定性。基于2026年实验室建设行业白皮书及公开市场数据,...