摘要: 一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如:小米手机每周二的秒杀,可能手机只有1 阅读全文
posted @ 2018-04-10 18:54 老谦君子 阅读(442) 评论(0) 推荐(0) 编辑
摘要: MQ是干嘛的 消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。 使用了MQ之后,消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务。 什么时候不使用消息总线 既 阅读全文
posted @ 2018-04-10 18:39 老谦君子 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 一个架构常识:当调用方需要关心执行结果,通常使用RPC调用。 ret = PassportService::userAuth(name, pass); switch(ret){ case(YES) : return YesHTML(); case(NO) : return NoHTML(); cas 阅读全文
posted @ 2018-04-10 07:41 老谦君子 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 随着业务越来越复杂,数据量越来越大,并发量越来越大,数据库的性能越来越低。好不容易找运维申请了两台机器,让DBA部署了几个实例,想把一些业务库拆分出来,却发现拆不出来,扩不了容,尴尬! 因为数据库强关联在一起,无法通过增加数据库实例扩容,就是一个耦合的典型案例。 场景还原 有一个公共用户数据库DB_ 阅读全文
posted @ 2018-04-09 20:54 老谦君子 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 什么是耦合? 耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,怎么发现系统中的耦合? 作为技术人,每每在心中骂上下游,骂兄弟部门,“这个东西跟我有什么关系?为什么需要我来配合做这个事情?”。明明不应该联动 阅读全文
posted @ 2018-04-09 20:53 老谦君子 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 什么是耦合? 耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,怎么发现系统中的耦合? 作为技术人,每每在心中骂上下游,骂兄弟部门,“这个东西跟我有什么关系?为什么需要我来配合做这个事情?”。明明不应该联动 阅读全文
posted @ 2018-04-09 20:47 老谦君子 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 总是在灾难发生后,才想起容灾的重要性。 总是在吃过亏后,才记得曾经有人提醒过。 一,核心军规 不在数据库做计算,cpu计算务必移至业务层 控制单表数据量,单表记录控制在千万级 控制列数量,字段数控制在20以内 平衡范式与冗余,为提高效率可以牺牲范式设计,冗余数据 拒绝3B(big),大sql,大事务 阅读全文
posted @ 2018-04-09 20:45 老谦君子 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 假设订单业务表结构为: order(oid, date, uid, status, money, time, …) 其中: oid,订单ID,主键 date,下单日期,有普通索引,管理后台经常按照date查询 uid,用户ID,有普通索引,用户查询自己订单 status,订单状态,有普通索引,管理后 阅读全文
posted @ 2018-04-09 20:44 老谦君子 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 这几天在写索引,想到一些有意思的TIPS,希望大家有收获。 一、一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: select 阅读全文
posted @ 2018-04-09 20:43 老谦君子 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 一、缘起 什么是session? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。 Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建session,提供数据存储功能。最常见的,会把用户的登录信息、用户信息存储在session中,以保持登 阅读全文
posted @ 2018-04-09 20:39 老谦君子 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一、初级阶段:信息裸传 特点:在网络上传递明文 黑客定理一:网络上传递的数据是不安全的,属网络于黑客公共场所,能被截取 结果:传递明文无异于不穿衣服裸奔 改进方案:先加密,再在网络上传输 二、进阶阶段:传输密文 特点: 服务端和客户端先约定好加密算法,加密密钥 客户端,传输前用约定好的密钥加密 传输 阅读全文
posted @ 2018-04-09 20:37 老谦君子 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 第三方接口挂掉,我们的服务会受影响么? 一、缘起与大坑 很多时候,业务需要跨公网调用一个第三方服务提供的接口,为了避免每个调用方都依赖于第三方服务,往往会抽象一个服务: 解除调用方与第三方接口的耦合 当第三方的接口变动时,只有服务需要修改,而不是所有调用方均修改 此时接口调用流程是什么样的呢? 如上 阅读全文
posted @ 2018-04-09 20:35 老谦君子 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 一、缘起 随着互联网业务的越来越复杂,用户量与流量越来越大,“服务化分层”是架构演进的必由之路。 如上图:站点应用会调用服务,上游服务调用底层服务,依赖关系会变得非常复杂。 对于同一个服务,它有多个上游调用。为了保证高可用,一个底层服务往往是若干个节点形成一个集群提供服务。 如上图:用户中心服务us 阅读全文
posted @ 2018-04-09 20:30 老谦君子 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 一、web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡。整个架构分三层: 上游调用层,一般是browser或者APP 中间反向代理层,nginx 下游真实接入集群,web-server,常见web-server的有tomcat,apac 阅读全文
posted @ 2018-04-09 20:28 老谦君子 阅读(1462) 评论(0) 推荐(0) 编辑
摘要: 一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per 阅读全文
posted @ 2018-04-09 20:26 老谦君子 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Nodes(节点) Animation(动画) KeyframeAnimation 逐帧动画,该节点中包含了所有绑定属性的动画逻辑 Animation Group 逐帧动画分组 Simple Control 该节点包含了在时间线上从第一帧到最后一帧的所有动画。播放进度是从0%,播放到100% Tim 阅读全文
posted @ 2018-04-08 14:30 老谦君子 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 图层、容器和接口 当设计一个Ventuz场景时,某些节点的组合或设计会反复出现。例如在演示中使用的按钮或滑块,在整个过程中的呈现和外观都是一致的,唯一变化的是尺寸、位置和标签。 在设计复杂的演示时,另一个常见的主题是场景的语义结构。可能有一个场景负责呈现用户界面,另一个用于与外部设备对话,另一个用于 阅读全文
posted @ 2018-04-08 14:22 老谦君子 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 节点数据绑定 节点是构成Ventuz场景的基本元素。每个节点既属于图层、也属于层级或内容。既可以在图层编辑器,也可以在层级编辑器或内容编辑器中编辑。 内容节点包括资产描述(如材质、xml文件等)、数字常量、事件或不直接影响渲染的项目。而节点像一个ventuz渲染引擎指令。例如激活某个材料或材质去渲染 阅读全文
posted @ 2018-04-08 14:18 老谦君子 阅读(250) 评论(0) 推荐(0) 编辑
摘要: Hierarchy Editor(层次编辑器) 用于定义3D图层的结构,向Ventuz渲染引擎发出“命令”,并指定命令的发生顺序。通常,每个层次节点都会导致对GPU的一个或多个调用,例如设置材质或渲染几何图形。 1、渲染顺序: 层次节点是水平树结构的一部分,从层根开始,在层次编辑器的左上角,符号为: 阅读全文
posted @ 2018-04-08 14:16 老谦君子 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 图层编辑 Ventuz5中有两种类型的场景,分别是2D图层和3D图层。3D图层包含Content和Hierarchy,而2D图层只包含Content。默认情况下,图层编辑器显示在Ventuz中的左上角。 图层编辑工具 Icon 工具名称 描述 添加图层 负责图层 删除图层 编辑图层 锁定图层 只起到 阅读全文
posted @ 2018-04-08 14:14 老谦君子 阅读(324) 评论(0) 推荐(0) 编辑