架构
CarryJey
一、任何事都没有表面看起来那么简单;
二、所有的事都会比你预计的时间长;
三、会出错的事总会出错;
四、如果你担心某种情况发生,那么它就更有可能发生。
展开
-
(一)架构篇之架构概况总览
1、总体架构总结1)接入层架构要考虑的问题域为:高可用、扩展性、反向代理+扩展均衡2)nginx、keepalived、lvs、f5可以很好的解决高可用、扩展性、反向代理+扩展均衡的问题3)水平扩展scale out是解决扩展性问题的根本方案,DNS轮询是不能完全被nginx/lvs/f5所替代的最重要的一点就是服务不能宕机,宕机可以立马恢复。可根据实际情况来采用以下三种策...原创 2018-10-18 17:53:57 · 784 阅读 · 0 评论 -
(二)架构篇之容量评估
容量评估的步骤与方法【步骤一:评估总访问量】如何知道总访问量?对于一个运营活动的访问量评估,或者一个系统上线后PV的评估,有什么好的方法?答案是:询问业务方,询问运营同学,询问产品同学,看对运营活动或者产品上线后的预期是什么。举例:如果要做一个APP-push的运营活动,计划在30分钟内完成5000w用户的push推送,预计push消息点击率10%,求push落地页系统的总访问量?...原创 2018-10-19 21:34:12 · 714 阅读 · 0 评论 -
(四)架构篇之负载均衡
一、概念负载均衡,是指通过不同的方式实现将request分发到多个服务器节点上,从而实现分布式部署。不同配置的服务器节点可以根据不同权值分配相应的request。二、介绍几种负载均衡的方案1、常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就...原创 2018-10-26 12:53:47 · 241 阅读 · 0 评论 -
(五)架构篇之数据库开发规范
规范适用场景:并发量大、数据量大的互联网业务一、基础规范(1)必须使用InnoDB存储引擎原因:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集原因:万国码,无需转码,无乱码风险,节省空间(3)数据表、数据字段必须加入中文注释原因:方便后来的人理解数据库设计(4)禁止使用存储过程、视图、触发器、Event原因:...原创 2018-10-29 20:39:26 · 274 阅读 · 0 评论 -
(三)架构篇之分布式id生成策略
分布式系统常见的一种场景就是要求id全局唯一,以下介绍七种,并分析优劣。1、利用数据库自增id特性。优点:1)简单。2)ID有序排列,分页和排序方便,方便统计数据增长。缺点:1)可用性难以保证:数据库常见架构是一主多从+读写分离,生成自增ID是写请求,主库挂了就玩不转了2)扩展性差,性能有上限:因为写入是单点,数据库主库的写性能决定ID的生成性能上限,并且难以扩展...原创 2018-10-24 13:58:08 · 265 阅读 · 0 评论 -
阿里云数据库分析
原创 2018-11-09 21:27:02 · 375 阅读 · 0 评论