系统设计与架构
文章平均质量分 82
大鹏的世界
天道酬勤!分布式+大数据架构解决方案
展开
-
后台设置属性增删改-设计方案
首先我们需要和前端约定下新增的商品SKU信息不传ID 【skuID== null】 要修改的商品SKU信息传ID【skuID!= null => updateSkuIDs】 删除的直接不传SKU信息 【Db库中获取原始 skuIDList数组中 比对 更新的updateSkuIDs 获取 removeSkuIDs】 然后我们可以根据传入的SKU信息来确定需要新增、修改、删除的SKU信息 这样就可以做到在更新商品SKU信息时,不改变原来商品SKU的ID了,具体流程如下。具体...原创 2021-07-17 14:40:30 · 241 阅读 · 1 评论 -
Nginx - request_time和upstream_response_time详解
前言最近分析服务器性能,考虑到nginx在前面做反向代理,这里查一下nginx日志来反应服务器处理时间的问题。网上查了查资料,这里记录一下。注:本文提到的所有变量,如果需要区分,则均为ngx_http_upstream_module中的变量,不再做释义。如需要使用其他module中的参数,请参考nginx官方文档1、Nginx内时间定义1.1、request_time单位为秒。官网描述:request processing time in seconds with a millisec原创 2021-05-20 11:45:07 · 2300 阅读 · 0 评论 -
架构设计理解和演进--共鸣,共勉!!!
什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统系统:泛指由一群有关联的个体原创 2021-03-09 10:23:02 · 763 阅读 · 0 评论 -
使用awk分析nginx访问日志access.log
1. awk简介awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被原创 2021-01-22 10:03:44 · 2688 阅读 · 0 评论 -
搭建高可用高并发系统(概念方向)
架构设计三大定律墨菲定律任何事没有表面看起来那么简单所有的事都会比预计的时间长 - 可能出错的事情总会出错 - 担心某种事情发生,那么它就更有可能发生康威定律系统架构师公司组织架构的反映按照业务闭环进行系统拆分/组织架构划分,实现闭环、高内聚、低耦合,减少沟通成本如果沟通出现问题,应该考虑进行系统和组织架构的调整 适合时机进行系统拆分。不要一开始就吧系统、服务拆分拆的非常细,虽然闭环,但是每个人维护的系统多,维护成本高 - 微服务架构的理论基础 - 康威定律二八定律80%的结果取决原创 2021-01-05 11:34:46 · 3051 阅读 · 0 评论 -
nginx和php-fpm连接超时之解决方法
言现在线上系统的架构大致是这样的,除去cache的proxy机器外,还有项目的nginx proxy机器,后面跟nginx webserver + php-fpm。有时候,会看到proxy nginx的日志里面会有各种异常状态码,比如499,502,504等,这些都是什么情况导致的呢? 架构示意 nginxproxy=>nginxwebserver=>php-fpm 状态码说明 499:客户端(或者proxy)主动断开连jie502:网关错误(BadGa...转载 2020-09-27 16:14:23 · 2268 阅读 · 0 评论 -
Mysql 性能优化教程
Mysql 性能优化教程目录目录................................................................................................................................. 1背景及目标..........................................转载 2011-08-13 18:55:29 · 2585 阅读 · 0 评论 -
MYSQL复制的几种模式
MYSQL复制的几种模式MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。MYSQL复制的几种模式MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。简言之,这种新技术就是关注表中发生变化的记录,而非以前的照抄 binlog 模式。从 MySQL 5.1.12 开始,可以用以下三种模式来实现:-- 基于SQL语句的复制(转载 2012-05-21 09:28:31 · 5475 阅读 · 0 评论 -
MySQL集群的可行方案
如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案有:一、MySQL Cluster优势:可用性非常高,性能非常好。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步。但它的维护非常复杂,存在部分Bug,目前还不适合比较核心的线上系统,所以这个我不推荐。二、DRBD磁盘网络镜像方转载 2012-05-21 13:48:56 · 2638 阅读 · 0 评论 -
mysql互为主从复制配置笔记
MySQL-master1:192.168.72.128 MySQL-master2:192.168.72.129 OS版本:CentOS 5.4MySQL版本:5.5.9(主从复制的master和slave服务器中的mysql版本相同或者master版本高于slave版本) 一、MySQL master-master配置 1、修改MySQL配置文件 两转载 2012-05-24 10:10:40 · 1028 阅读 · 0 评论 -
利用Zabbix监控Nginx
如果有数据返回,说明zabbix通信正常,如果返回ZBX_NOTSUPPORTED,说明监控项有问题。进入系统配置->主机->监控项,查看你的客户端主机的监控项是活跃还是不支持配置完agentd后必须重启。/usr/local/webserver/zabbix/bin/zabbix_get -s 192.168.0.253 -p10050 -k "nginx.accepts"近段时转载 2012-08-02 08:46:09 · 4693 阅读 · 0 评论 -
rsync+inotify触发式(实时)同步测试
rsync服务器架设(数据同步|文件增量备份)#########################################################################################################作为系统运维人员,在工作中大多会遇到集群服务器的维护,在规模不大的时候,采用手动部署逐台更新项目配置,可能会原创 2012-06-05 09:16:47 · 2061 阅读 · 0 评论 -
inotify监控linux系统下的目录变化
最近,有个项目需要及时删除Nginx服务生成的缓存文件,由于不是很了解Nginx缓存生成的策略,在网上也没有仔细找,经过大家讨论,最终希望引入liunx的inotify功能,监控某个liunx目录下的各种事件(create,delete,access等等). 想了解inotify的朋友,请参考以下两篇博文: 1.http://www.ibm.com/developerworks/cn/li转载 2012-06-06 08:23:46 · 1518 阅读 · 0 评论 -
rsync服务器架设(数据同步|文件增量备份)
参考网址:RSync实现文件备份同步我们在使用服务器发布我们的网站的时候,通常要考虑到文件的备份,而文件的备份比较高效的备份是增加备份,rsync软件就是这样的一个工具。为了实现多个服务器负载均衡,我们需要这几个服务器之间进行数据同步,而rsync软件也能胜任,下面我们来介绍如何架设rsync服务器来达到文件增量备份和数据同步的功能。什么是rsyncrsync 是一个快转载 2012-06-02 15:09:16 · 1781 阅读 · 0 评论 -
sersync2+rsync文件同步测试
sersync主要用于服务器同步,web镜像等功能。sersync是使用c++编写,在结合rsync同步的时候,节省了运行时耗和网络资源,因此更快。sersync配置起来很简单。另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态,同步及时快速。服务器:192.168.128.10客户端:192.168.128.11 1,客转载 2012-06-05 09:18:38 · 1468 阅读 · 0 评论 -
MySQL多主同步 负载均衡
http://blog.sina.com.cn/s/blog_56115979010144dy.html解决多台写服务器主自增长ID重复问题[主主同步]二台Mysql服务器,他们的IP地址分别为:A:192.168.0.97B:192.168.0.98数据库都是 test_3306首先我给两台服务器的my.ini 贴出来A:my.iniserver-id=2转载 2012-05-14 16:37:05 · 836 阅读 · 0 评论 -
MySQL主从服务器的一些技巧
问题:主从服务器表类型的选择一般的共识是主服务器使用innodb,事务,行锁等功能是myisam所没有的,对修改操作而言,它更高效;从服务器使用myisam,全文检索功能是innodb所没有的,对查询操作而言,它更高效。这样就可以各尽其能。问题:主从服务器字段类型的选择字段类型对于分页等操作有很大影响。主服务器一般是innodb,因为不涉及查询,所以可以使用varchar等转载 2012-05-14 17:45:56 · 604 阅读 · 0 评论 -
Mysql-5.5.3-m3 主从同步不支持master-host问题的解决办法
环境:OS:CentOS release 5.5 (Final) (64位)2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/LinuxMysql:mysql-5.5.3-m3.tar.gzMaster:192.168.0.100Slave:192.168.0.200转载 2012-05-14 14:11:27 · 2714 阅读 · 0 评论 -
MySQL Replication 优化和技巧、常见故障解决方法
MySQL 主从同步错误(error)解决(转)sql_slave_skip_counter参数附:一些错误信息的处理,主从服务器上的命令,及状态信息。在从服务器上使用show slave status\GSlave_IO_Running,为No,则说明IO_THREAD没有启动,请执行start slave io_threadSlave_SQL转载 2012-05-21 14:27:51 · 16839 阅读 · 0 评论 -
zabbix agent端安装配置
Zabbix agent for Windows的安装、配置与启动 1.1 Windows环境内客户端的安装与管理1.1.1 Windows环境内客户端的安装1) 在目标机器上C:\windows目录下新建一个目录,如zabbix_agent;2) 将zabbix_agent软件copy到目标机器的新建目录中;3) 在软件zabbix服务转载 2012-08-01 09:49:24 · 7926 阅读 · 0 评论 -
试用负载均衡
负载均衡范例:www.jz123.cn/text/1124012.html#############################首先是配置十分的简单,而且功能非常强大。真是相见恨晚。先来看看配置文件怎么写吧worker_processes 1; events { worker_connections 1024; } http{ upstream mypro转载 2012-09-06 10:32:31 · 706 阅读 · 0 评论 -
移动App框架模式了解【待看】
移动App架构设计本文主要总结了几种常用的架构模式, 基本是层层递进的转载请注名出处 http://blog.csdn.net/uxyheaven, 良好的排版在https://github.com/uxyheaven/阅读如果觉得本文不错, 请在csdn给个顶, github给个star.Native app的开发相比传统的项目迭代周期要短很多, 需求的变化也频繁一些,转载 2016-12-06 11:07:07 · 2567 阅读 · 0 评论 -
基于libmemcached,php扩展memcached的安装
一,为什么要装memcached扩展memcached的1.2.4及以上增加了CAS(Check and Set)协议,对于同一key的多进行程的并发处理问题。这种情况其实根数据库很像,如果同时有几个进程对同一个表的同一数据进行更新的话,那会不会打架呢,哈哈。数据库里面可以锁定整张表,也可以锁定表里面一 行的功能,其实memcached加入的CAS根这个差不多。php的扩展memc转载 2011-11-03 21:24:36 · 2765 阅读 · 0 评论 -
PHP 日志系统的选型
SeasLoghttp://neeke.github.io/SeasLog/ 社区活跃一致在更新 最新版 2015-2-20PHP 日志 C 扩展 【如何配置和JAVA版log4j的格式,并且可以异步提交到日志中心】目前提供了什么在PHP项目中便捷、规范地记录log可配置的默认log目录与模块指定log目录与获取当前配置初步的分析预转载 2015-03-31 12:00:56 · 4173 阅读 · 0 评论 -
分布式数据访问
基本需求可扩展Memcached和DB可以动态添加,不需要修改程序和重启任何服务可监控系统可以监控集群中某个节点是否异常,资源占用情况,缓存命中率如何,系统当前压力,且当压力到达一个阀值时提供异常报警机制,有详细的错误日志,便于排查问题可维护维护人员可以对系统进行修改,测试,部署可定制集群系统可以根据应用需求定制分布式策略高可用(高可读,转载 2014-11-25 17:25:25 · 655 阅读 · 0 评论 -
VRRP协议介绍
1. 前言VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简化了一些功能。2. 协议说明2.1 协议VRRP协议是为消除在静态缺省路由环境下的缺省路由器单点故障引起的网络失效而设计的主备模式的协议,使得在发生故障而进行设备功能切转载 2014-11-25 16:36:22 · 701 阅读 · 0 评论 -
haproxy+keepalived实现高可用负载均衡
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当 前,HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模转载 2014-11-25 15:32:06 · 660 阅读 · 0 评论 -
大型网站架构模式
《大型网站技术架构》读书笔记:网站架构模式关于什么是模式,这个来自建筑学的词汇是这样定义的:“每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作”。模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用。 分层分层是企业应用系统中最常见的一种架构模式,将系统在转载 2014-11-25 11:41:30 · 767 阅读 · 0 评论 -
数据库分库分表(sharding)系列
目录;(一) 拆分实施策略和示例演示(二) 全局主键生成策略(三) 关于使用框架还是自主开发以及sharding实现层面的考量(四) 多数据源的事务处理(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案(一) 拆分实施策略和示例演示第一部分:实施策略图1.数据库分库分表(sharding)实施策略图解1.准备阶段转载 2013-06-04 11:34:14 · 1014 阅读 · 0 评论 -
可伸缩性最佳实践:来自eBay的经验
在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消 耗转载 2013-06-03 20:06:21 · 823 阅读 · 0 评论 -
Amoeba for MySQL学习研究之注意事项
Amoba配置方便,使用简单,性能表现也不错,但它也不是完美无缺的,在实际使用中有很多需要注意的事项。Amoeba不支持事务目前Amoeba不支持事务,任何有关事务的SQL语句都会被Amoeba屏蔽掉。如果必须使用事务,而且事务内的处理操作都可以路由到同一台MySQL上的话,可以考虑在存储过程中使用事务进行处理。另外,Amoeba将来有望支持事务。Amoeba不支持跨库join和排序转载 2013-05-13 10:45:19 · 957 阅读 · 0 评论 -
mongodb分布式集群架构
http://freeze.blog.51cto.com/1846439/884925转载 2013-04-26 22:11:29 · 759 阅读 · 0 评论 -
Mongodb在win7下的安装配置
客户端管理软件 MongoVUEPHP需要下载DLL库安装默认空密码又要学新东西了。mongodb仅仅知道他是数据库,具体吗有待以后学习。先说说怎么安装和配置吧。官网地址:http://www.mongodb.org/display/DOCS/Home里面的文档资料很多的,不懂得就看,我也是慢慢看的。下载下来后(本人用的是win7 32位)解压到一个转载 2013-04-26 14:39:08 · 960 阅读 · 0 评论 -
CND选型常识
目前中国国内有三家本土公司正在企图瓜分CDN市场。三家本土公司分别是ChinaCache(蓝汛),Dnion(帝联),ChinaNetCenter(网宿)。 ChinaCache是目前国内最大最知名的CDN服务商,只要你能想的到的比较大的网站80%是会使用ChinaCache的CDN服务。365ren以前也用过ChinaCache的服务,但是好像并不是很理想,最大的问题出在教育网的访问速度转载 2012-04-26 10:09:42 · 900 阅读 · 0 评论 -
监控性能方面命令大总结
一、last 命令last 显示系统开机以来获是从每月初登入者的讯息 -R 省略 hostname 的栏位 -num 展示前 num 个 如:last -3 展示前三行 username 展示 username 的登入讯息 tty 限制登入讯息包含终端机代号范例:[root@elain ~]# last -R -2root转载 2012-04-09 11:43:20 · 1350 阅读 · 0 评论 -
Windows下的Memcache安装
我最近研究这个memcache 发现这个东东,版本以及名称很多,有点混乱,这两天研究下来我是这么梳理的,不知道对不对,和大家一起分享Memcached 是分布式cache,他有服务端和client端,核心版本是在Linux上运行官方网站为 http://memcached.org/ 对应的wiki在google上http://code.google.com/p/memcached/ 其实现在memcached的相关文档和代码都在google.code上了对应Linux 上版本的维护的挺好,但原创 2011-05-01 08:17:00 · 1663 阅读 · 1 评论 -
查看httpd进程数
<br />Linux命令: <br />ps -ef | grep httpd | wc -l <br />返回结果示例: <br />1388 <br />表示 Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整,我这组服务器中每台的峰值曾达到过2002。 <br />查看Apache的并发请求数及其TCP连接状态: <br />Linux命令: <br />netstat -n | awk '/^tcp/ {++S[$NF]} END {for原创 2011-04-24 07:22:00 · 3911 阅读 · 0 评论 -
CentOS5.5 安装 Sphinx 全文检索
<br />1. 下载Sphinx最新版 http://www.sphinxsearch.com/downloads.html<br /><br />2. 安装<br /># tar -zxvf sphinx-0.9.9.tar.gz<br /># cd sphinx-0.9.9/<br /># ./configure --prefix=/usr/local/sphinx --with-mysql-includes=/usr/local/mysql/include/mysql/ --with原创 2011-05-16 18:47:00 · 1406 阅读 · 0 评论 -
三种web性能压力测试工具http_load webbench ab小结
<br /><br />题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种<br /><br />http_load<br /><br />下载地址:http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz<br /><br />程序非常小,解压后也不到100K 居家旅行 携带方便 呵呵<br /><br />http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但原创 2011-05-18 15:06:00 · 1002 阅读 · 0 评论 -
发现瓶颈 - Profiling(程序剖析) -MySQL Profiling
我们将要详细的讲到MySQL的剖析(Profiling),因为它很少依赖于你的应用。应用和服务器级别的剖析有的时候都是有必要的。虽然应用级别的剖析可以给你整个应用性能的总揽。,但是对MySQL的剖析提供了信息是服务器级别所提供不了的。比如,对PHP代码进行剖析不会显示MySQL有多少行语句执行了。与应用剖析一样,目标是找出MySQL哪部分消耗过多的时间。我们不会剖析MySQL源码的,虽然有的时候定制化MySQL安装很有用,但是这是另一本书的主题了。所替代的是,我们将教你一些可以技术来获取和分析不同种类的My原创 2011-02-22 11:27:00 · 807 阅读 · 0 评论