张宴的博客 - Web系统架构与底层研发

Web Name: 张宴的博客 - Web系统架构与底层研发

WebSite: http://zyan.cc

ID:10942

Keywords:

底层,架构,系统,

Description:

传承自 APMServ 的 PHPTS,十年后隆重推出。 PHPTS 边缘计算协作服务器套件,是 Windows 系统上一键搭建 Nginx + PHP + MySQL + Memcached + Redis + MongoDB + InfluxDB 等网站、APP、小程序服务器端运行环境的软件。 它即可以运行在云服务器上用于生产环境,也能够运行在个人电脑上作为编程开发环境。任何个人和企业,均可免费使用,包括商用用途,并可与自有产品集成发布。 PHPTS 未来更大的用途,是运行在本地服务器、PC台式机、笔记本电脑、工控机上,作为边缘计算节点服务器,与摄像头、存储、音响、投屏、打印机、串口设备、工业设备、物联网终端互联互通,利用本地计算机、显卡实现AI人工智能运算、语音合成、人脸识别、视频流分析、音视频转码,不必购买各大公有云平台按次数、按时间、按使用量收费的昂贵计算型云服务;并将利用光纤宽带、5G网络与公有云互联,组建私有云、混合云。 【2020年02月15日 PHPTS 1.07 版本发布】 软件下载,请访问 PHPTS 官方网站:https://www.phpts.com/ PHPTS 1.06 版本,集成 Nginx 1.17.8、PHP 7.4.2、PHP 7.3.14、PHP 5.6.40、MySQL 8.0.19(x64)、Memcached 1.5.22、Redis 4.0.14(x64)、MongoDB 4.3.3(x64)、phpMyAdmin 5.0.1、Bash 终端,并可通过组件方式下载安装 InfluxDB(时间序列数据库)、HeidiSQL(MySQL客户端管理工具)、Another.Redis.Desktop.Manager(Redis客户端管理工具)。推荐在64位 Windows 系统上安装 PHPTS。 Nginx for PHPTS 是专门为 Windows 移植的高并发版本,采用 Windows 输入输出完成端口(IOCP),媲美 Linux 下的 epoll。 相比于官方 Nginx Windows 版本仅支持 1024 连接数、仅支持低效的 SELECT/POLL 模型、仅支持单进程,PHPTS Windows 版本支持 32768 连接数、支持 IOCP 模型、支持多进程能够充分利用多核 CPU。从此 Nginx Windows 版本性能低下、不能用于生产环境成为历史。 PHPTS 软件功能界面截图 Nginx 虚拟主机: PHP: MySQL: Memcached: Redis: InfluxDB 时间序列数据库: MongoDB 面向文档数据库: Linux Bash 仿真终端: 软件下载,请访问 PHPTS 官方网站:https://www.phpts.com/阅读全文 这几天,原博客所在的美国洛杉矶digitalocean的VPS不稳定,决定再次搬迁。现在已经将博客(http://zyan.cc)迁移到韩国的VPS。国内到韩国的网络线路,应该是最好的,甚至可以媲美中国国内的双线机房。 北京联通 ping zyan.cc:root@linaro-alip:~# ping zyan.ccPING zyan.cc (27.255.71.186) 56(84) bytes of data.64 bytes from 27.255.71.186: icmp_req=1 ttl=50 time=68.3 ms64 bytes from 27.255.71.186: icmp_req=2 ttl=50 time=63.0 ms64 bytes from 27.255.71.186: icmp_req=3 ttl=50 time=67.4 ms64 bytes from 27.255.71.186: icmp_req=4 ttl=50 time=69.5 ms64 bytes from 27.255.71.186: icmp_req=5 ttl=50 time=62.9 ms64 bytes from 27.255.71.186: icmp_req=6 ttl=50 time=69.9 ms64 bytes from 27.255.71.186: icmp_req=7 ttl=50 time=63.2 ms 广东电信 ping zyan.cc:[root@local ~]# ping zyan.ccPING zyan.cc (27.255.71.186) 56(84) bytes of data.64 bytes from 27.255.71.186: icmp_seq=1 ttl=46 time=93.6 ms64 bytes from 27.255.71.186: icmp_seq=2 ttl=46 time=93.2 ms64 bytes from 27.255.71.186: icmp_seq=3 ttl=46 time=92.8 ms64 bytes from 27.255.71.186: icmp_seq=4 ttl=46 time=93.0 ms64 bytes from 27.255.71.186: icmp_seq=5 ttl=46 time=93.0 ms64 bytes from 27.255.71.186: icmp_seq=6 ttl=46 time=92.7 ms 杭州阿里云 ping zyan.cc:[root@AY140521163455018f38Z ~]# ping zyan.ccPING zyan.cc (27.255.71.186) 56(84) bytes of data.64 bytes from 27.255.71.186: icmp_seq=1 ttl=48 time=30.8 ms64 bytes from 27.255.71.186: icmp_seq=2 ttl=48 time=30.5 ms64 bytes from 27.255.71.186: icmp_seq=3 ttl=48 time=30.4 ms64 bytes from 27.255.71.186: icmp_seq=4 ttl=48 time=30.7 ms64 bytes from 27.255.71.186: icmp_seq=5 ttl=48 time=30.6 ms64 bytes from 27.255.71.186: icmp_seq=6 ttl=48 time=30.3 ms64 bytes from 27.255.71.186: icmp_seq=7 ttl=48 time=31.2 ms Tags: 韩国vps PHP 5.3 以上版本,使用pthreads PHP扩展,可以使PHP真正地支持多线程。多线程在处理重复性的循环任务,能够大大缩短程序执行时间。 我之前的文章中说过,大多数网站的性能瓶颈不在PHP服务器上,因为它可以简单地通过横向增加服务器或CPU核数来轻松应对(对于各种云主机,增加VPS或CPU核数就更方便了,直接以备份镜像增加VPS,连操作系统、环境都不用安装配置),而是在于MySQL数据库。如果用 MySQL 数据库,一条联合查询的SQL,也许就可以处理完业务逻辑,但是,遇到大量并发请求,就歇菜了。如果用 NoSQL 数据库,也许需要十次查询,才能处理完同样地业务逻辑,但每次查询都比 MySQL 要快,十次循环NoSQL查询也许比一次MySQL联合查询更快,应对几万次/秒的查询完全没问题。如果加上PHP多线程,通过十个线程同时查询NoSQL,返回结果汇总输出,速度就要更快了。我们实际的APP产品中,调用一个通过用户喜好实时推荐商品的PHP接口,PHP需要对BigSea NoSQL数据库发起500~1000次查询,来实时算出用户的个性喜好商品数据,PHP多线程的作用非常明显。 PHP扩展下载:https://github.com/krakjoe/pthreads PHP手册文档:http://php.net/manual/zh/book.pthreads.php 1、扩展的编译安装(Linux),编辑参数 --enable-maintainer-zts 是必选项:cd /Data/tgz/php-5.5.1./configure --prefix=/Data/apps/php --with-config-file-path=/Data/apps/php/etc --with-mysql=/Data/apps/mysql --with-mysqli=/Data/apps/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir=/Data/apps/libs --with-jpeg-dir=/Data/apps/libs --with-png-dir=/Data/apps/libs --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/Data/apps/libs --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache --with-pdo-mysql --enable-maintainer-ztsmake cleanmakemake installunzip pthreads-master.zipcd pthreads-master/Data/apps/php/bin/phpize./configure --with-php-config=/Data/apps/php/bin/php-configmakemake installvi /Data/apps/php/etc/php.ini添加:extension = "pthreads.so" 2、给出一段PHP多线程、与For循环,抓取百度搜索页面的PHP代码示例: Tags: php多线程 , php , 多线程 , pthreads 对于创业型团队来说,服务器托管费用+带宽成费用+运维成本,是压在头上的三座大山。满足业务性能需要,又要降低成本,尽快实现收支平衡,是当务之急。 一、不靠谱的 App Engine 1、Google App Engine 云服务在国外的成功,不代表国内巨头们各种 *AE 仿造品的成功。在微博上搜搜就可以看到小伙伴们吐槽的各种不稳定,另外,*AE们对资源使用最大数各种规定限制,加上为了计费、阉割功能的各种限制,使它的价格优势成为鸡肋。*AE们就好比100M共享带宽的小区宽带,以低价卖给每个上网用户5M的带宽,前几十个用户感觉这网速真不错,等他卖了100个以上用户5M带宽,而这部分用户白天上班去了,晚上下班回来都在上网,其中又有一部分看视频、BT下载,于是乎,白天网速快,晚上慢得要死,连200K带宽都达不到。要知道,不怕神一样的对手,就怕猪一样的队友,在国内的 App Engine 环境下,水平参差不齐的开发者的代码质量、习惯性的资源滥用、别人网站被攻击殃及池鱼对*AE性能的影响,导致*AE的稳定性非常差。 2、所以,*AE们也意识到公共 App Engine 不稳定,所以又推出专用 App Engine,但费用一下就翻了很多倍。所以,*AE只是个人博客、个人开发者玩玩的工具,真正用作项目,还是需谨慎。根据实际的经验,*AE们还真不如VPS稳定。 二、成本低的小而美VPS 1、对于初创团队来说,购买服务器、交换机,托管服务器费用、带宽月使用费,是极其昂贵的。购买可以弹性升级硬件配置的云服务VPS,是降低成本不错的选择。国内VPS,1G内存、1~2核CPU、1M带宽、多线BGP,大概价格在100元/月左右,支持备案,可以作为最低入门选择,有条件可以购买两台互为热备,阿里云主机可以作为参考。大多数VPS服务商使用的都是廉价的SATA磁盘。如果你对磁盘IO要求较高,可以选择提供有SAS磁盘的IAAS云主机服务商,比如UCloud。 2、市场上的VPS商家主要有 Xen、OpenVZ、KVM 三种开源的虚拟化技术。全虚拟化的 Xen 更像独立主机,服务器资源按VPS实际大小平均分配,一般无法超售。半虚拟化的 OpenVZ 在同样的性能测试下,会比 Xen 高一些,但是,一台物理内存16G的服务器,可以分配出总内存大小超过16G很多倍的VPS,服务商可以超售,想卖多少台VPS就可以卖多少台,所以不推荐使用。KVM 在最新的 Linux 发行版中,已经是集成,但是,商业化应用还不成熟,基于 KVM 的 VPS 服务商很少。 3、VPS的操作系统,建议选择64位的Linux。在32位Linux下,PHP能给处理的整数不能超过正负2^31=2147483648,如果以后接入新浪微博、淘宝、腾讯等第三方开放平台,他们的接口里会有超过32位的整数(比如新浪用户ID、淘宝商品ID)。如果不幸使用32位Linux,你只能将这些整数当成字符串处理了,以后配合Sphinx等搜索引擎,会非常麻烦。 4、现在,可以在北京进行备案的域名有:国际域名 .com .net .org,国内域名 .cn .com.cn .中国,国别域名 .cc,其他的域名均不能进行备案。仅北京有限制,其它省市正常提交备案即可。我们原来申请的 .me 域名,在北京无法备案,后来只好拿到苏州去备案了。所以,在选择域名的时候,需要慎重。 5、使用 VPS,一定要定期在本地,做好数据备份,不要相信所谓的 7*24服务,99.99%安全稳定性,只要有人的VPS出问题了,都归为那 0.01%。 三、应对峰值带宽的云存储 1、对于DAU(日活跃用户)过十万的网站、APP应用来说,CDN或云存储是必需品。使用云存储不是因为存储空间,因为一块几TB的SATA磁盘很便宜,使用云存储是因为高出平均带宽值几倍至几十倍的峰值带宽。做手机APP应用,峰值带宽更集中,当你向所有用户群发PUSH一条消息,用户被唤醒打开APP应用,几分钟的时间,会消耗几十倍的带宽峰值。图片、下载,是最主要的带宽消耗者。也许,数据接口API只需不到1M的带宽,而图片对带宽的峰值需求则会达到100M。为了几分钟的峰值,去购买100M昂贵的带宽,其他时间带宽都空闲,是一件非常奢侈的事。 2、国内提供云存储服务的商家有很多,真正好用得却不多,提供FTP等公共通用协议的云存储更是微乎其微。使用第三方云服务,切忌千万不要吊死在一棵树上。支持FTP等公共协议,如果将来有问题,能够方便的进行数据迁移和技术替代。如果云服务厂商一直能够提供优质的服务,那么,也就可以长期使用他们的云服务。相信优秀的云存储提供商,是不会惧怕这一点的。阅读全文 ASIHTTPRequest 类库在iOS 7.0中,会有一些报错警告,需要稍作修改: 1、if ([inputStream streamStatus] == NSStreamEventErrorOccurred) 修改成:if ([inputStream streamStatus] == (NSStreamStatus)NSStreamEventErrorOccurred) 2、return [[NSDate date] addTimeInterval:maxAge]; 修改成:return [[NSDate date] dateByAddingTimeInterval:maxAge]; 自从被联通封了80端口之后,用国外的空间,反向代理国内ADSL上的Cubieboard,线路非常不稳定。现在已经换了 https://www.budgetvm.com/ 的OpenVZ VPS,1G内存+80G硬盘+4核CPU+3TB月流量+3个IP,4.99美元/月(人民币大约30元/月)。 联通封了80和8080端口(http://www.10010.com/mall-web/busiNotice/content?noticeId=27045394),没办法,只好用个国外廉价的VPS(2美元/月,ping 300~400ms线路不怎么好)做个Nginx代理,来访问我家中联通ADSL+Cubieboard上的源站。昨天,联通ADSL出故障了,没有备用线路,只好用了个电信3G上网卡+Cubieboard支撑着源站,线路不稳定,从国外的VPS反向代理过来,经常不通,于是502频报。今天联通的维修人员过来修好了ADSL,博客终于恢复了。 发现韩国的VPS国内访问非常快,从国内多个点ping都只有30~50ms,比国内的某些双线机房还要快。有时间弄一个。 最近配置了几台Web服务器,将安装笔记贴出来吧。没时间像以前那样,将文章写的那样系统了,请见谅。详细配置,可以看以前的旧文章: http://blog.zyan.cc/nginx_php_v6 1、安装Nginx:mkdir -p /Data/tgzcd /Data/tgzyum install wgetyum install pcreyum install openssl*yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers makeyum -y install gd gd2 gd-devel gd2-devel/usr/sbin/groupadd www/usr/sbin/useradd -g www wwwulimit -SHn 65535wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gztar zxvf pcre-8.32.tar.gzcd pcre-8.32./configure --prefix=/Data/apps/pcremake && make installcd ../wget http://nginx.org/download/nginx-1.5.2.tar.gztar zxvf nginx-1.5.2.tar.gzcd nginx-1.5.2./configure --user=www --group=www --prefix=/Data/apps/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/Data/tgz/pcre-8.32 --with-http_realip_module --with-http_image_filter_modulemakemake installcd ../阅读全文 昨晚开始,我博客在国外的256M内存小VPS,遭到大量IP的CC攻击,带宽被占满,机房为了保证其他VPS的正常访问,对我的VPS访问进行了限制。没办法,只好用几KB/秒的速度,将未备份的几百兆数据迁移回来(幸好内容未变动的几个G数据,本地已经有备份)。因为域名未备案,于是放在了家中的北京联通ADSL +cubieboard 上,恢复了服务。2M的ADSL,上行只有512K带宽,速度会慢点,等有时间了,将图片、文件放在别的地方。 在淘宝上350多元,买了个基于ARM平台的超小电脑 cubieboard,配置如下: 1G ARM cortex-A8 processor, NEON, VFPv3, 256KB L2 cache Mali400, OpenGL ES GPU 512M/1GB DDR3 @480MHz HDMI 1080p Output 10/100M Ethernet 4GB Nand Flash 2 USB Host, 1 micro SD slot, 1 SATA, 1 ir 96 extend pin including I2C, SPI, RGB/LVDS, CSI/TS, FM-IN, ADC, CVBS, VGA, SPDIF-OUT, R-TP.. Running Android, Ubuntu and other Linux distributions 找了台支持HDMI的显示器,安装了Ubuntu Linaro,然后很方便的安装了SSH Server、VNC Server、Nginx、PHP 5.3、MySQL 5.5:apt-get install openssh-serverapt-get install vnc-serverapt-get install mysql-server mysql-clientapt-get install nginxapt-get install php5-fpmapt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl C/C++的开发环境安装:apt-get install gccapt-get install g++apt-get install cmakeapt-get install make阅读全文 UserInterfaceState.xcuserstate 文件频繁更新,*.a等静态链接库文件默认不被添加到 SVN 中,需要对自己 Mac OS 上的 SVN 客户端配置做一下修改。 进入终端:vi ~/.subversion/config 查找 [miscellany] 字段 在默认被注释的global-ignores 下一行,增加一行:global-ignores = *~ #*# .#* .*.swp .DS_Store .xcuserstate Tags: ios , xcode , svn , userinterfacestate , xcuserstate 2012年10月22日....... 7:00,北京,一座城,车水马龙,熙熙攘攘。北京南站,晨光初现。带上我在LAMP兄弟连招聘的五位兄弟,坐上高铁,一路向南。 13:00,苏州,一座城,江南烟雨,清风拂面。 14:30,独墅湖旁,创意产业园,我们的苏州研发公司,今日在此组建、诞生。 阅读全文 苹果一直拒绝 UIWebView 内嵌 HTML5 页面的 iPhone、iPad APP应用上架到 App Store,建议这样的APP去做成Safari的Web应用。但是,苹果的审核人员只从界面、URL去判断是否HTML5的。有一次,一个 APP应用的URL地址被他们拷贝出来,放到浏览器中能够访问,然后,应用悲催地被拒绝上架了。 对付方法: 1、URL不让直接通过浏览器访问(UIWebView的请求Header头中加点东西,在服务器端将APP内嵌的访问和通过直接浏览器访问区分开来),或者通过浏览器访问时,返回JSON、XML信息,输出“Interface Error”,忽悠苹果审核人员说这是HTTP协议的接口,不是网页。 2、禁用、禁止 UIWebView 里面的链接长按弹出效果。加入一行 CSS 代码,禁用类似下图的链接长按弹出效果:html,body -webkit-touch-callout: none; Tags: webkit , touch , callout , iphone , ipad , ios , uiwebview , html5·姓名:张宴 ·网名:回忆未来·生日:1985年5月19日·博客:http://zyan.cc·邮箱: [复制]·推特:twitter.com/rewinx·微博:t.sina.com.cn/rewinx·籍贯:湖南省湘西自治州·学校:湖北武汉|中南民族大学·专业:2003级|国际经济与贸易·时间:2003年9月─2007年7月·工作:苏州热拍信息技术有限公司·职位:CEO·地址:北京市朝阳区广渠路3号竞园· 苏州工业园区若水路1号·时间:2013.01.01─2016.02.14·工作:4399.com 闪购创业孵化器·职位:闪购技术负责人·地址:北京市朝阳区建外SOHO A座·时间:2012.02.07─2012.12.31·工作:北京世纪一家网·职位:技术总监·地址:北京市朝阳区建外SOHO 8#·时间:2011.09.01─2012.02.06·工作:金山游戏·部门:运营技术中心-网站开发部·职位:技术经理/架构师·地址:北京市海淀区金山软件大厦·时间:2008.11.24─2011.08.31·工作:赶集网·职位:架构师·地址:北京市海淀区清华科技园·时间:2008.04.01─2008.11.21·工作:互动社区事业部·职位:新浪播客-系统工程师·地址:北京市海淀区中关村· 理想国际大厦18层·时间:2007.01.25─2008.03.31

TAGS:底层 架构 系统 

<<< Thank you for your visit >>>

Web系统架构与底层研发

Websites to related :
LowEndBox中国 - 美国VPS_国外VPS

  维翔主机 - 40元/月 vz 2核 512M 10G 50G 50M 香港SSD 2-19367,040 次围观332 次吐槽admin国人主机服务商 weixianghost.com 最新优惠活动,openvz架构+ssd固态硬盘,

Asian Boys Heaven +1000 photo s

  In his early 20s, after leaving business school to follow his ambition of becoming an artist and performer, Heezy Yang was drawn to an out-of-the-way

Drugabuse.gov | National Institu

  Nora D. Volkow, M.D., became Director of the National Institute on Drug Abuse (NIDA) in... Learn about NIDA-supported research and cross-agency resear

Guidelines and Measures | Agency

  Quality and Disparities ReportLatest available findings on quality of and access to health care Funding for the National Guideline Clearinghouse (NGC)

ZORIAH - A PHOTOJOURNALIST AND W

  Zoriah's photography has appeared in the following publications:Newsweek • The New York Times • CNN • Fortune • The Wall Street Journal • BBC New

Albert Einstein College of Med

  Responding to COVID-19 Pandemic The latest on research, education, and volunteer activities Learn MoreDetouring to Confront COVID-19Many Einstein scie

【官方】法国里昂商务学院工商管理

  中法国际工商管理硕士项目是法国里昂商务学院(ECL)为促进中法两国教育文化交流与合作而开设的精英项目。本项目无需参加联考,录取后直接就读,项目...[详细] 法国里昂

Department of Genetic Medicine |

  Find a doctor at The Johns Hopkins Hospital, Johns Hopkins Bayview Medical Center or Johns Hopkins Community Physicians.Home McKusick-Nathans Institut

DRCNet Online Library of Drug Po

  Major Studies of Drugs and Drug Policy, History of the drugs and drug laws, Medical Marijuana Research, Government Publications on drugs and drug poli

Idaho State Department of Educat

  The State Department of Education is open for business, and our lobby is now open, effective Monday, May 18. However, we will be operating with a redu

ads

Hot Websites