当前位置: 首页 > 编程日记 > 正文

浅析电商、社区、游戏常用的 MySQL 架构

一般、或者必须是这样、MySQL 架构一定要结合业务来分析、设计、优化
   所以不管是那种架构、根据业务要求组合成符合需求的即是最好的、不能泛泛而谈
   同时、也必须注意数据的安全(如ipsec,ssh,vpn传输)
   
   
见的架构都是进行业务切分、前端缓存、分库分表、若是过亿的查询量、
   先从业务上拆分、将 bbs、web、blog 分成几个组、然后再做成一主多从、读写分离的方式
   而且、在设计表的时候、一般情况下、备库常充当起备份查询的作用
   至于、读写分离、在程序设计之初、读和写是通过不同的IP入口、这是思路一、或者定义类、或者用代理层,比如 MySQL-proxy
   
   
大多数的场合、一般在应用层做读写分离、然后 MySQL 通过复制来实现、优点比较多,可控性非常好、
   MySQL Replication、这个是王道、起码现在是、将来说不准哈
   相比复制而言、Cluster 在生产环境核心环节基本不用、或者现在少用
   因为、前期投入的硬件成本(相对于主从)较高、一般的小项目不会使用、Cluster的成本(大部分是维护成本)还是比较高的
   但随着后续版本的发布、估计案例会越来越多、毕竟是非常好的 sharding-nothing 的方案
   
   
   
戏中的:好友关系、排行榜、计数器、队列、cache 都很适合通过 Redis 来实现

   至于 Redis 的事务功能、可以不必放太多的心思去关心

   另外、Redis 相对 Memcached 而言、也稳定很多

   
   
   
电商中、生产环境也都是主从架构、然后用 DRBD + HA 做 Master 备份
   主主不推荐、高可用还是推荐 DRBD 方案
   DRBD 注意不设置自动启动、重启时候手动启动、脑裂的情况发生非常的少
   不过、工作中基本不重启 DRBD、更不会重启服务器了、基本上没遇到脑裂的问题
   DRBD 这个在做风险容灾的时候有一定作用、但不能起到扩展、结合 LVS相信也是一种 perfect方案
   如:LVS+Keepalived 可以通过脚本剔除延迟慢或失效的从MySQL机器、
   而且LVS在软件负载均衡器中是最强的、在后端节点超过10台以上的情况、估计只有LVS能胜任
   
      
   
模大的公司(如Sina、taobao)
   1、不用集群是说mysql自身的集群用的不多(目前看也是可以用的)
   2、主从可以是多组,数个
   3、每组都可能一主多从(业务数据的1/N)
   4、3中每一组里的读或写 都可能是前端调度器的一个RS
   5、调度器分发可以hash分组,可以根据用户ID切分数据,当然还有更高级的手段
   提示:SINA开发经理承认,他们的SAE平台还是主从,甚至还有单点(靠监控和手工处理))
   
   
规模中等的公司(如CSDN)
   1)mysql一主多从程序读写分离(甚至还没实现),多组。出问题直接手工或自动切从后在change master(脚本或程序实现)
   2)drbd+ha实现高可用(也是双主多从,自动切换M,正常备M不可提供服务)
   3)或双主多从,前端结合读及写分别负载均衡

相关文章:

基于Co-Attention和Co-Excitation的少样本目标检测 | NeurIPS 2019

「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | VincentLee来源 | 晓飞的算法工程笔记(ID: gh_084c810bc839)导读:论文提出CoAE少样本目标检测算法,该算法使用non-local block来提取目标图片与查询…

服务器架设笔记——搭建用户注册和验证功能

之前介绍的Apache Httpd相关内容,都是些零散的知识点。而实际运用中,我们要根据不同的业务,将这些知识点连接起来以形成各种组合,来满足我们的需求。(转载请指明出于breaksoftware的csdn博客) 本文我将以用…

项目管理过程中应注意的问题

软件项目从角色分工方面可以划分为研发、开发和实施三类,每个类型的项目有各自的管理过程。下面笔者就公司实施类项目的经历,从项目经理的角度谈一谈实施类项目管理过程中应该注意的一些问题,希望大家共勉。确定项目概况俗话说:“…

原创jQuery移动设备弹出框插件——msgalert.js

最近开发经常会用到顶部弹出框,虽然有现成的(bootstrap等),但是都很臃肿,对于有些时候移动端活动页面有点大材小用。所以今晚花了20分钟写了一个通用的插件,我将其命名为msgalert.js。因为定位是jQuery插件&#xff0c…

AbutionGraph:构建以知识图谱为核心的下一代数据中台

「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | 图特摩斯科技创始人闭雨哲出品 | AI科技大本营(ID:rgznai100)前言图特摩斯科技(Thutmose)基于自研的图形数据库AbutionGraph(实时多维数…

服务器架设笔记——多模块和全局数据

随着项目工程的发展,多模块设计和性能优化是在所难免的。本文我将基于一些现实中可能遇到的需求,讲解如何在Apache的Httpd插件体系中实现这些功能。(转载请指明出于breaksoftware的csdn博客) 之前我碰到两个需求: 需要…

JSP学习笔记(七):使用JavaBean

bean.java publicclassB1 { publicString getString() { return"content"; } }page.jsp <%B1 b1 newB1(); out.print(b1.getString());%>

折返(Reentrancy)VS线程安全(Thread safety)

在Wiki上&#xff0c;折返例如&#xff0c;下面的定义&#xff08;接&#xff09; In computing, a computer program or subroutine is called reentrant if it can be interrupted in the middle of its execution and then safely called again ("re-entered") be…

服务器架设笔记——httpd插件支持mysql字符集选择

mysql数据库默认的字符集是latin1。默认情况下&#xff0c;我们编译的httpd插件是可以正常读取该类型的数据库&#xff0c;并且不会出现乱码。但是&#xff0c;如果我们的数据库变成其他格式&#xff0c;比如UTF8&#xff0c;那么默认读取出来的数据就是乱码&#xff0c;且无论…

只需3行代码自动生成高性能模型,支持4项任务,亚马逊发布开源库AutoGluon

作者 | KYLE WIGGERS编译 | AI科技大本营&#xff08;ID:rgznai100&#xff09;构建涉及图像、文本和表格数据集的机器学习应用并不容易。它需要特征工程或使用数据领域知识来创建使AI算法起作用的特征&#xff0c;还需要进行大量数据预处理&#xff0c;以确保训练模型时不会出…

在客户端(IE中)无法登录Citrix MetaFrame server的原因

当在IE中登录服务器时如果出现这面的错误提示&#xff1a; ERROR: The Citrix MetaFrame servers cannot process your request at this time. The Citrix XML Service object was not found. [404 Not Found] 我的原因是IE使用了8080端口&#xff0c;而我的Citrix XML servic…

虚拟化--015 配置VMware View Event database失败:

015 配置VMware View Event database失败&#xff1a;参考链接http://url.cn/VTq4zN 转载于:https://blog.51cto.com/williamliuwen/1686536

以金山界面库(openkui)为例思考和分析界面库的设计和实现——代码结构(完)

三年前&#xff0c;准备将金山界面库做一个全面的剖析。后来由于种种原因&#xff0c;这个系列被中断而一直没有更新。时过境迁&#xff0c;现在在windows上从事开发的人员越来越少&#xff0c;关注这块的技术的朋友也很少了。本以为这系列也随着技术的没落而不再被人所关注&am…

一包烟钱买到电动剃须刀,小米有品告诉你什么叫性价比

男人身上长得最快的是什么&#xff1f;答案是胡须。一名健康男性的胡须每天都要生长超过 0.4mm&#xff0c;比咱们头发的生长速度还快&#xff0c;这也是男人隔三差五就要剃须的原因之一。男人的一生是与胡子战斗一生&#xff0c;也是被剃须刀拖累的一生。出差办事儿&#xff0…

Label控件属性AssociatedControlID

可以使用Label控件来标注一个HTML表单字段。Label控件拥有属性AssociatedControlID,可以设置此属性来指向表示表单字段的ASP.NET控件。 例如,代码清单2-3中的页面含有一个简单的表单,表单包含两个字段用于输入名和姓。Label控件用于标注这两个TextBox控件。 Code<% Page Lan…

2015_8_21作业——有自翻译有复制他人的英语太差

date作用&#xff1a;打印或设置系统日期和时间格式:date [OPTION]...[FORMAT]date [u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]|是或 多选一的选项 ...代表同类内容可多次选项&#xff1a;注意短选项后不可加号-d,--dateSTRING显示时间字符串但不是立即&#xff1a;如date…

WMI技术介绍和应用——接收事件

时隔两三年&#xff0c;再次更新WMI系列博文。好在功能在三年前就已经实现了&#xff0c;现在只要补充些实例即可。 之前介绍的基本都是查询静态数据&#xff0c;而本文将要介绍非常有意思的事件接收功能。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 监控…

WML标签速查手册

WML标签速查手册 结构相关标签语法及属性<wml><wml xml:lang"lang" >    content</wml> WML元素的共有属性主要有3个&#xff0c;即id、class和xml:lang属性。WML的所有元素都有两个核心属性&#xff0c;即标识(id)和类(class)属性。它们主要用…

Python 三十大实践、建议和技巧

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项&#xff0c;还有更多福利赠送作者 | Erik-Jan van Baaren译者 | 凯隐编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】2020年&#xff0c;你又立了什么新的 Flag&#xff1f;新一年…

点击通知栏后打开Activity,并传参

为什么80%的码农都做不了架构师&#xff1f;>>> Reciver中intent new Intent(context, MessageDetailsaActivity_.class);intent.putExtra("freshMessageId", String.valueOf(push.getObid()));intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Inten…

WMI技术介绍和应用——执行方法

在之前的博文中&#xff0c;我们主要介绍了如何使用WMI查询信息和接收事件。本文将介绍WMI的另一种用法——执行方法。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 这块的内容在msdn中有详细的介绍&#xff0c;如果想看原版的可以参阅《Example: Calling a…

动态指定超链接参数的几种方法(Passing a JavaScript variable into href of )

情景&#xff1a;有些环境下我们需要根据页面中JavaScript变量的值来确定某个&#xff08;某些&#xff09;超链接的参数&#xff0c;如“http://www.bla.com/test.aspx?var1”中&#xff0c;究竟var1等于多少&#xff0c;要根据JavaScript变量来判定 方法一&#xff1a;很简单…

知乎「致知计划之科学季」颁奖,创作者分享80万元奖金

1月11日&#xff0c;「致知计划之科学季」颁奖典礼在北京798艺术中心举行&#xff0c;近500名创作者到场参加。 为了激励创作者&#xff0c;推动优质内容持续产出&#xff0c;知乎的「致知计划」从四个方面对创作者进行了扶持。一是流量扶持&#xff0c;让专业、优质的内容获得…

Inno Setup制作应用程序安装包

我最近写了一个MFC应用程序&#xff0c;想发给其他的小伙伴玩一玩&#xff0c;直接发了个exe文件过去&#xff0c;结果发现小伙伴那边打不开。原来这个exe文件虽然是MFC静态编译的&#xff0c;但是还依赖了其他几个.dll文件&#xff0c;需要把这几个dll文件和exe文件放在同一个…

WMI技术介绍和应用——事件通知

在《WMI技术介绍和应用——WMI概述》中&#xff0c;我们使用了下图介绍WMI构架&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 我们之前介绍的使用WMI查询系统、硬件等信息的功能&#xff0c;是通过查询WMI静态数据的空间实现的。这个功能的核心是在上图中2&a…

OpenWebSpider 安装使用

OpenWebSpider 是一个很好用的网络爬虫,也可以叫做“网络蜘蛛”. 安装&#xff1a; 1.使用Vs.net 2003 编译&#xff0c; 记得要copy libmysql.dll到工程里 2.配置文件openwebspider.conf 将已经启动了的 mysql数据库用户名&#xff0c;密码填写好 3.数据库建立 执行 sql_struc…

杂谈 | 当前知识蒸馏与迁移学习有哪些可用的开源工具?

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项&#xff0c;还有更多福利赠送作者&编辑 | 言有三来源 | 有三AI&#xff08;ID:yanyousan_ai&#xff09;【导读】知识蒸馏与迁移学习不仅仅属于模型优化的重要技术之一&#xff0c;也是提升模型跨领域泛化能力的重要技…

对 Thinking in java 4th Edition I/O DirList.java的疑问

2019独角兽企业重金招聘Python工程师标准>>> 以下原文代码&#xff1a; //: io/DirList.java // Display a directory listing using regular expressions. // {Args: "D.*\.java"} import java.util.regex.*; import java.io.*; import java.util.*; pub…

WMI技术介绍和应用——Instance/Method Provider

在《WMI技术介绍和应用——事件通知》一文中&#xff0c;我们提到了提供者&#xff08;Provider&#xff09;这个概念。我们还是要引入WMI的结构图&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 我们在1这层的Native C/C里可以看到若干Provider&#xff0c;这…

SSH 组建轻量级架构 附录 -- 遇到的问题和解答

action: nulljava.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn解决方法&#xff1a;加载 spring.jar 包 报 无法初始化at org.apache.struts.action.ActionServlet.initModulePlugIns(解决方法&#xff1a;删除 asm-2.2.3.jar springda…