资讯月刊下载
你应该知道的RPC原理
在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用?2)其它团队要使 ...
微博推荐架构的演进
0引言 微博(Weibo)是一种通过关注机制分享简短实时信息的广播式社交网络平台。微博用户通过关注来订阅内容,在这种场景下,推荐系统可以很好地和订阅分发体系进行融合,相互促进。微博两个核心基础点:一是用户关系构建,二是内容传播,微博推荐一直致力于优化这两点,促进微博发展。如图1所示: 图1 微博推荐的使命 在微博推荐发展的过程中遇到体系方向的变化、业务的不断更迭、目标的重新树立,其产品思路、架 ...
Docker社区核心成员Doug Davis分享为社区贡献代码的技 ...
作为Docker社区的核心成员,同时也是IBM开源,云计算专家Doug Davis一直致力于领导IBM团队为Docker项目作出开源贡献,还代表公司参与了Linux基金会新设立的OCI和CNCF项目。在IBM Linux on Power生态联盟开发者大会召开前夕,Doug Davis接受了CSDN记者的专访。在专访中,他为我们介绍了Docker社区目前的情况,以及Docker和Linux on P ...
Cloudera旨在以Spark取代MapReduce作为默认Hadoop框 ...
Apache Spark内存计算框架更接近于Apache Hadoop,Cloudera今天宣布它正努力地使Spark取代默认的Hadoop数据处理框架。 “虽然IT公司将会继续添加其他数据处理框架叠加在Hadoop集群顶部,One Platinum Initiativ是一个以Spark取代MapReduce作为默认数据处理引擎的基本案。”Cloudera的产品营销总监Matt Brandwein ...
不可变基础设施:拒绝SSH
【编者的话】同一套软件系统在部署与运行过程中,常常会因为依赖组件版本、运行时间及人工干预等多种因素引发运行结果差异,造成不必要的损失。要消除这种影响,其中之一就是推行“不可变基础设施”保证其一致性。 什么是不可变基础设施 在开始本文之前,先介绍下什么是不可变基础设施。不可变基础设施(Immutable Infrastructure)是由Chad Fowler于2013年提出的一个很有前瞻性的构想: ...
如何设计一款优秀的软件架构
“风语者客服+”是针对中小型企业推出的客服SaaS,节约了企业自建客服系统所需的巨大成本。为了给企业提供稳定可靠且优质的服务,我们在整体架构上费尽心思。虽然不尽完美,希望借此抛砖引玉,互相切磋。 前言 ”Look deep into nature, and then you will understand everything better.“ -- Albert Einstein 我国传统文 ...
Netty之有效规避内存泄漏
有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖 直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能。但,要重新培养被Java的自动垃圾回收惯坏了的惰性。 Netty有一篇必读的文档 官方文档翻译:引用计数对象 ,在此基础上补充一些自己的理解和细节。 1.为什么要有引用计数器 Netty里四种主力的ByteBuf, 其中UnpooledHeapByteB ...
沈国阳:美团推荐系统整体框架与关键工作
8月11日晚20:30,受CSDN人工智能用户群邀请,美团推荐与个性化团队技术经理沈国阳来到CSDN在线视频分享平台,为我们深度解析美团本地生活服务推荐的工作经验,并与群友进行互动交流。沈国阳重点介绍了美团推荐系统的架构和特色,以及在排序层面的主要工作。 沈国阳表示, 对于推荐系统的效果提高,排序比候选集的贡献要大很多。美团排序的主要工作包括:模型及建模,样本采样及label处理,去除positi ...
架构设计中的6种常见安全误区
自然世界中,先天有缺陷的生物总是容易被细菌病毒入侵,而健壮的生物更能抵抗细菌病毒的攻击,计算机系统也是一样,若有先天的架构设计安全缺陷,那么在面临网络攻击的时候,就更容易被入侵或者破坏,甚至因为设计架构的原因,有些漏洞完全没有办法修复!本文将讲述架构设计中需要避免出现的安全误区,以帮助我们研发人员设计出更安全健壮的软件架构。本文的举例既有硬件架构,也有软件架构,还有基础架构等等不同的架构,但其中原理 ...
技术分享:突然500万人来查,台风路径实时发布系统如 ...
【编者按】近期台风肆虐沿海地区,给人民群众的生命和财产安全带来了很大的危害,如果可以及时了解台风信息,进行安全防范,显然可以规避很多损失。浙江省水利厅所做的台风路径实时发布系统是很好的信息预报平台。其背后是阿里云的支持。浙江省水利信息管理中心高级工程师骆小龙及阿里云工程师王徐就“台风的季节性带来IT系统访问量出现波峰波谷的巨大差异,机器的复用等问题”实践经验进行了深入的分享。 根据中央气象台信息, ...
社交产品后端架构设计
本篇文章会向读者展示几个架构设计的关键点,使一个社交应用能够成为真正的下一代社交产品。以下几个属性将会影响到架构的设计: a)可用性 b)可扩展性 c)性能和灵活性可扩展 目标 a)确保用户的内容数据能够很方便的被其他用户发现和获取. b)确保内容推送是相关的,不仅在语义上,也是从用户设备的角度。 c)确保实时更新生成、推送和分析。 d)尽可能地节省用户的资源。 e)不论服务器负载变化如何 ...
从四分钟到两秒——谈谈客户端性能优化的一些最佳实践
背景 最近跟售后经理吃饭,他跟我再次谈起两年前为公司临时写的一个客户端,仍然非常激动的跟我说,这个客户端完爆了公司其他版本的客户端,包括最老的Delphi写的,Asp.Net写的,以及最新的Wpf写的客户端。无论是多么大的界面(集成的机房多),这个系统都是瞬间打开,而且运行非常稳定,一旦成功部署之后基本没有任何问题。 这个版本的客户端仅仅只是一个临时替代的版本:原来的Delphi客户端实在是太慢了 ...
通过Mesos、Docker和Go,使用300行代码创建一个分布 ...
【摘要】虽然Docker和Mesos已成为不折不扣的Buzzwords ,但是对于大部分人来说它们仍然是陌生的,下面我们就一起领略Mesos、Docker和Go配合带来的强大破坏力,如何通过 300行代码打造一个比特币开采系统。 时下,对于大部分 IT 玩家来说, Docker 和 Mesos 都是熟悉和陌生的:熟悉在于这两个词无疑已成为大家讨论的焦点,而陌生在于这两个技术并未在生产环境得到广泛使 ...
并发策略:多线程编程
相比于编程领域的其他问题,多线程编程显得尤为困难。 – 多线程的环境使我们的程序非线性。没有人知道系统下一刻会执行哪一条语句。不幸的是,绝大多数程序(比如C++,Java)是线性地编写的:下一条语句总是在上一条执行完后执行。更严重的是,我们还在学习编程时就被灌输了,程序是线性执行的这一观点。因此,在多线程的编程范式上,绝大多程序员举步维艰。 – 多线性编程几乎是在多个方向上,爆炸般地撑大了程序的 ...
Spring 4.2正式版发布
Spring 4.2 GA版终于7月31日发布了。Spring 4.2兼容Java 6、7、8。Spring 4.2的新特性请查看Spring参考文档。 请关注基于Spring 4.2的Spring Boot 1.3版本,它将在9月份发布正式版。 官方建议所有4.x版本的用户升级至4.2版本。官方下一个发布版本是Spring 4.3,大概在2016年3月份发布。
Quora是如何维持高质量代码的
一个高质量的代码库可以加快长期开发的速度,因为它会使得迭代、协作和维护更加容易。在Quora,我们十分重视代码库的质量。 除了会取得收益之外,要维护高质量的代码,会带来一大笔间接费用,还会牺牲实际开发周期。很多人发现,实际产生的收益很难抵消这一间接费用,这时人们会面临两个选择:要么以低质量代码提升开发速度,要么维护高质量代码而牺牲开发速度。而对于初创公司来说,他们希望开发速度能快一些,所以就不 ...
七牛首席架构师李道兵:在开源世界里逼自己成长
李道兵,七牛云存储首席架构师。他曾是北大化学专业博士研究生,中途毅然转行至自己喜欢的互联网行业。2007年加入金山实验室,2010年加入盛大创新院, 曾先后参与了盛大网盘项目和盛大云项目。2013年,李道兵加入七牛云存储,任职至今。他热爱开源,曾先后担任维基百科中文管理员,Debian Developer,协助维护 iso-codes 等开源软件。他喜欢架构,参与了不少高压力项目的结构设计,推崇高可 ...
揭秘Amazon EC2容器服务背后的技术细节
【编者的话】本文就Amazon ECS服务的两大核心:集群管理和容器调度,进行了简单的阐述,并介绍了ECS是如何实现支持并发操作的键值对存储的,为我们实现相关服务提供了一定参考。 在最近一篇关于Amazon EC2容器服务(Amazon ECS)的文章中。我讨论了在一个集群中运行现代化分布式应用的两个关键组件:可靠的状态管理和灵活的调度。Amazon ECS简化了构建和运行容器化应用的流程,但是如 ...
LinkedIn架构进化简史
LinkedIn创建于2003年,主要目标是连接你的个人人脉以得到更好的的工作机会。上线第一周只有2700个会员,之后几年,LinkedIn的产品、会员、服务器负载都增长非常快。 今天,LinkedIn全球用户已经超过3.5亿。我们每天每秒有上万个页面被访问,移动端流量已占到50%以上。所有这些接口请求都从后台获取,达到每秒上百万级。 那么,我们是怎么做到的呢? 早些年 - Leo LinedIn ...
我们是如何设计存储4亿个电话号码的
如果你居住在印度,当不希望接受任何电话推销员的骚扰时,你可以在全国客户偏好登记册(National Customer Preference Register,NCPR) 【1】中进行注册。政府维护了这个由用户注册的电话号码组成的数据库。现在,差不多有4亿个注册号码。所有注册的电话推销员必须及时更新数据,以保证他们在进行推销时会参考这个偏好设置进行工作。 这些数据由一捆ZIP文件(当下是40个)提供 ...