04 2018 档案
摘要:1. 从0开始做互联网推荐-以58转转为例 1)从0开始设计推荐产品框架 (1)首页推荐:提取用户画像,根据线下提取出的用户年龄、性别、品类偏好等在首页综合推荐宝贝 (2)宝贝详情页推荐:买了还买,看了还看类的关联宝贝推荐 (3)附近推荐:和首页推荐的差异在于,提高了地理位置的权重,地理位置不仅要包
阅读全文
摘要:1. http如何像tcp一样实时的收消息? 长轮询实际怎么玩 1)消息连接:webim和webserver之间建立一条http连接,专门用作消息通道,这条连接叫http消息连接 2)消息连接的4大特性 a. 没有消息到达的时候,这个http消息连接将被夯住,不返回,由于http是短连接,这个htt
阅读全文
摘要:1 . 互联网架构为什么要做服务化? 1)架构痛点 架构痛点一:代码到处拷贝 架构痛点二:复杂性扩散,例如:各个业务线都需要关注缓存的引入导致的复杂性 架构痛点三:库的复用与耦合 架构痛点四:各个业务SQL质量得不到保障,业务相互影响 架构痛点五:疯狂的DB耦合 2)服务化的优点 好处一:调用方爽
阅读全文
摘要:为什么说要搞定微服务架构,先搞定RPC框架? 1. 为什么说要搞定微服务架构,先搞定RPC框架? 如果没有统一的服务框架,RPC框架,各个团队的服务提供方就需要各自实现一套序列化、反序列化、网络框架、连接池、收发线程、超时处理、状态机等“业务之外”的重复技术劳动,造成整体的低效。 所以,统一RPC框
阅读全文
摘要:1. 互联网架构设计如何进行容量评估: 【步骤一:评估总访问量】 -> 询问业务、产品、运营 【步骤二:评估平均访问量QPS】-> 除以时间,一天算4w秒 【步骤三:评估高峰QPS】 -> 根据业务曲线图来 【步骤四:评估系统、单机极限QPS】 -> 压测很重要 【步骤五:根据线上冗余度回答两个问题
阅读全文
摘要:在MySQL的 可重复读隔离级别 中,是解决了幻读的读问题的。 1. MySQL默认存储引擎的变迁 在MySQL 5.5之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。 2. MyISAM与InnoDB存储引擎的主要特点 1).MyIS
阅读全文
摘要:搜索tar包里面的字符串:zcat xxx.tar.gz | grep -a "搜索内容" 线上操作与线上问题排查实战 1. 了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服务各种连接状态(TIME_WAIT/ CLOSE_WAIT/ ESTAB
阅读全文
摘要:互联网智能广告系统简易流程与架构 1. 业务简述 从业务上看 整个智能广告系统,主要分为: 1)业务端:广告主的广告后台 2)展现端:用户实际访问的页面 业务端,广告主主要有两类行为: 1)广告设置行为:例如设置投放计划,设置地域,类别,关键字,竞价等 2)效果查看行为:例如广告展示次数是多少,广告
阅读全文
摘要:1. 秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如:小米手机每周二的秒杀,可能手机只有
阅读全文
摘要:1. 深入浅出搜索架构引擎、方案与细节(上) 文字很多,有宏观,有细节,对于大部分不是专门研究搜索引擎的同学,记住以下几点即可: 1). 全网搜索引擎系统由spider, search&index, rank三个子系统构成 2). 站内搜索引擎与全网搜索引擎的差异在于,少了一个spider子系统 3
阅读全文
摘要:1. 到底什么时候该使用MQ? 1). 典型场景一:数据驱动的任务依赖 采用MQ的优点是: a. 不需要预留buffer,上游任务执行完,下游任务总会在第一时间被执行 b. 依赖多个任务,被多个任务依赖都很好处理,只需要订阅相关消息即可 c. 有任务执行时间变化,下游任务都不需要调整执行时间 需要特
阅读全文
摘要:1. 小小的IP,大大的耦合,你痛过吗? 如何解除IP耦合? 常见的方法是:使用内网域名替代内网IP,如果没有做这个优化,强烈的建议马上实施,将配置文件中的内网IP全部干掉,全部改为内网域名。 使用内网域名,就不需要上游配合重启了吗? 假设现在不用内网IP,改用内网域名了,一个服务或者数据库的IP变
阅读全文
摘要:1. 典型数据库架构设计与实践 1). 单库架构 2). 分组架构 什么是分组? 答:分组架构是最常见的一主多从,主从同步,读写分离数据库架构: user-service:依旧是用户中心服务 user-db-M(master):主库,提供数据库写服务 user-db-S(slave):从库,提供数据
阅读全文
摘要:1. 业界难题-“跨库分页”的四种方案 1). 方法一:全局视野法 a.将order by time offset X limit Y,改写成order by time offset 0 limit X+Y b.服务层对得到的N*(X+Y)条数据进行内存排序,内存排序后再取偏移量X后的Y条记录 这种
阅读全文
摘要:1. 互联网分层架构的本质: 1).互联网分层架构的本质,是数据的移动 2).互联网分层架构中,数据的传输格式(协议)与数据在各层次的形态很重要 3).互联网分层架构演进的核心原则与方法:封装与复用 a.让上游更高效的获取与处理数据,复用 b.让下游能屏蔽数据的获取细节,封装 2. 互联网分层架构是
阅读全文
摘要:1. 保证session一致性的架构设计常见方法: session同步法:多台web-server相互同步数据 客户端存储法:一个用户只存储自己的数据(容易占带宽) 反向代理hash一致性:四层hash和七层hash都可以做,保证一个用户的请求落在一台web-server上 后端统一存储:web-s
阅读全文
摘要:1. tcp-server状态上报 get-tcp-ip接口怎么知道tcp-server集群中各台服务器是否可用呢,tcp-server主动上报是一个潜在方案,如果某一个tcp-server挂了,则会终止上报,对于停止上报状态的tcp-server,get-tcp-ip接口,将不返回给client相
阅读全文
摘要:1. 负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: select * from order where status in(2,3) 2. 前导模糊查
阅读全文
摘要:1. 基础规范 1). 必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 2). 必须使用utf8mb4字符集 解读:标准,万国码,无需转码,无乱码风险 utf8mb4是utf8的超集,emoji表情以及部分不常见汉字在utf8下会表现为乱
阅读全文
摘要:一、一些常见的SQL实践 1). 负向条件查询不能使用索引select * from order where status!=0 and stauts!=1not in/not exists都不是好习惯 可以优化为in查询:select * from order where status in(2,
阅读全文
摘要:一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标: 响应时间(Response Time):系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms
阅读全文
摘要:1. mysql使用的是什么结构的索引? 1). MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。因此,MyISAM中索引检索的算法为首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其data域的值, 然后以data域的值为地址,读取相应数据
阅读全文
摘要:1. 一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符。虽然使用通配符让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。 2. DISTINCT关键字作用于所有的列,不仅仅是跟在其后面的那一列。 3. Limit:第一个被检索的行是第0行,而不是第一行。因
阅读全文
摘要:1. Limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。 2. 初始记录行的偏移量是 0(而不是 1): mysql> SELECT * FROM table LIMIT 5,10; //检索记录行
阅读全文

浙公网安备 33010602011771号