关闭

连接池原来这么简单

一、如何通过连接访问下游 工程架构中有很多访问下游的需求,下游包括但不限于服务/数据库/缓存,其通讯步骤是为: (1)与下游建立一个连接 (2)通过这个连接,收发请求 (3)交互结束,关闭连接,释放资源   这个连接是什么呢,通过连接怎么调用下游接口?服务/数据库/缓存,官方会提供不同语言的Driver、Document、DemoCode来教使用方建立连接与调用...
阅读(258) 评论(0)

一分钟实现分布式锁

一、缘起 分布式环境下,多台机器上多个进程对一个数据进行操作,如果不做互斥,就有可能出现“余额扣成负数”,或者“商品超卖”的情况,如何实现简易分布式锁,对分布式环境下的临界资源做互斥,是今天将要讨论的话题。   二、互斥原理 原理:多个访问方对同一个资源进行操作,需要进行互斥,通常是利用一个这些访问方同时能够访问到的lock来实施互斥的。 例子1:同一个进...
阅读(210) 评论(0)

应用层/安全层/传输层如何进行协议选型

系统设计,协议先行。 大部分技术人没有接触协议的设计细节,更多的是使用已有协议进行应用层的编码,例如: (1)使用http作为载体,设计get/post/cookie参数 (2)使用dubbo框架,而不用去深究内部的二进制包头包体,以及序列号反序列化的细节 无论如何,了解协议设计的原则,对深入理解系统通信非常有帮助。今天就以即时通讯(后称im)为例,讲讲应用层的...
阅读(243) 评论(0)

互联网架构为什么要做服务化?

一、互联网高可用架构,为什么要服务化? 【服务化之前高可用架构】 在服务化之前,互联网的高可用架构大致是这样一个架构: (1)用户端是浏览器browser,APP客户端 (2)后端入口是高可用的nginx集群,用于做反向代理 (3)中间核心是高可用的web-server集群,研发工程师主要编码工作就是在这一层 (4)后端存储是高可用的db集群,数据存储在...
阅读(3165) 评论(5)

单点系统架构的可用性与性能优化

一、需求缘起 明明架构要求高可用,为何系统中还会存在单点? 回答:单点master的设计,会大大简化系统设计,何况有时候避免不了单点   在哪些场景中会存在单点?先来看一下一个典型互联网高可用架构。 典型互联网高可用架构: (1)客户端层,这一层是浏览器或者APP,第一步先访问DNS-server,由域名拿到nginx的外网IP (2)负载均衡层,ng...
阅读(274) 评论(0)

关于分布式程序设计常见问题分析

虽然系统越来越复杂,以及新分布式架构设计的思想普及,越来越多的系统采用了分布式的架构,特别是HTTP为交互方式的接口调用,移动端和PC端的并行对分布式架构带来了很大的推动。各式各样的服务接口,在处理业务流程之外有一些共性的问题,正视设计和解决这些问题,会大大提高程序的可用性,扩展性和可维护性。 以下总结是笔者工作中对于分布式设计问题的总结,具体内容如下: 1、日期格式 时间在生活中是一个容易忽...
阅读(125) 评论(0)

互联网架构,如何进行容量设计?

一,需求缘起 互联网公司,这样的场景是否似曾相识:   场景一:pm要做一个很大的运营活动,技术老大杀过来,问了两个问题: (1)机器能抗住么? (2)如果扛不住,需要加多少台机器?   场景二:系统设计阶段,技术老大杀过来,又问了两个问题: (1)数据库需要分库么? (2)如果需要分库,需要分几个库?   技术上来说,这些都是系统...
阅读(86) 评论(0)

计数系统架构实践一次搞定

一、需求缘起 很多业务都有“计数”需求,以微博为例: 微博首页的个人中心部分,有三个重要的计数: 关注了多少人的计数 粉丝的计数 发布博文的计数 微博首页的博文消息主体部分,也有有很多计数,分别是一条博文的: 转发计数 评论计数 点赞计数 甚至是浏览计数  ...
阅读(111) 评论(0)

58同城推荐系统架构设计与实现

一、推荐系统架构介绍 推荐系统是一个微庞大的工程、算法与业务综合的系统,其主要分为三大子系统: 1)线下推荐子系统; 2)线上推荐子系统; 3)效果评估子系统; 后文将重点讨论以上三大子系统的设计与实现。 二、线下推荐子系统 线下推荐子系统又主要分为线下挖掘模块、数据管理工具两大部分。 线下挖掘模块 线下挖掘模块,是各类...
阅读(130) 评论(0)

互联网智能广告系统简易流程与架构

一、业务简述 从业务上看    整个智能广告系统,主要分为: 1)业务端:广告主的广告后台 2)展现端:用户实际访问的页面 业务端,广告主主要有两类行为: 1)广告设置行为:例如设置投放计划,设置地域,类别,关键字,竞价等 2)效果查看行为:例如广告展示次数是多少,广告点击次数是多少等 展现端,用户主要也有两类行为: ...
阅读(154) 评论(0)

58到家通用实时消息平台架构细节

一、解决什么问题 + 难点 解决什么业务问题 (1)端到云的实时上报需求:58速运司机端GPS实时上报 (2)云到端的实时推送需求:58速运司机订单实时推送 (3)端到端的聊天消息需求:用户、商户、客服之间的聊天沟通 难点: (1)APP无线环境下消息可达性 (2)通用性,平台实现尽量与业务解耦 二、传统解决方案与潜在不足 【端...
阅读(381) 评论(0)

秒杀系统架构优化思路

一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。   例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。 又例如:12306...
阅读(366) 评论(0)

百度咋做长文本去重

缘起: (1)原创不易,互联网抄袭成风,很多原创内容在网上被抄来抄去,改来改去 (2)百度的网页库非常大,爬虫如何判断一个新网页是否与网页库中已有的网页重复呢? 这是本文要讨论的问题(尽量用大家都能立刻明白的语言和示例表述)。   一、传统签名算法与文本完整性判断 问题抛出: (1)运维上线一个bin文件,将文件分发到4台线上机器上,如何判断bin文件全部...
阅读(78) 评论(0)

如何实施异构服务器的负载均衡及过载保护?

后端的service有可能部署在硬件条件不同的服务器上: 1)如果对标最低配的服务器“均匀”分摊负载,高配的服务器的利用率不足; 2)如果对标最高配的服务器“均匀”分摊负载,低配的服务器可能会扛不住; 能否根据异构服务器的处理能力来动态、自适应进行负载均衡及过载保护,是本文要讨论的问题。   一、service层的负载均衡通常是怎么做的 “一分钟了解负载均衡...
阅读(50) 评论(0)

lvs为何不能完全替代DNS轮询

上一篇文章“一分钟了解负载均衡的一切”引起了不少同学的关注,评论中大家争论的比较多的一个技术点是接入层负载均衡技术,部分同学持这样的观点: 1)nginx前端加入lvs和keepalived可以替代“DNS轮询” 2)F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询” “DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接入层架构技术演进,是本文将要细致讨...
阅读(84) 评论(0)
107条 共8页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:19657次
    • 积分:1143
    • 等级:
    • 排名:千里之外
    • 原创:97篇
    • 转载:10篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论