Erlang应用场合 未来的计算是并发计算。现今甚至桌面CPU也是多核的,当用户给服务器购买了越来越多的CPU时,他们更期望能最大限度地利用他们的新投资,但是今天的许多软件系统并不能很好地做到这一点。 整个软件行业也在发生重大变革,由卖工具软件转向卖服务(软件免费,这也是开源软件兴起的过程),由单纯客户端向B/S或C/S转化,相应的存储和计 算向服务器端转移,由原来的PC客户端向客户端多元化(如手机、PDA、电视机顶盒等)转化。这些变革趋势,使得用户可以更方便地访问到服务的同时,服务 器也要承受越来越高的负荷,并行/分布的需求逐渐增加。 Erlang语言不是用来解决所有问题的语言,至少现在还不是。Erlang最初专门为通信应用设计的,比如控制交换机或者变换协议等,非常适合于构 建分布式,实时软并行计算系统。它是一门专注的语言,可以适应现代服务器要求高负荷、高可靠、持续服务的需求。它要解决的问题域包括:高并发、分布式、持 续服务、热升级和高可靠等问题。 Erlang应用实例 典型的Erlang应用是由很多被分配不同任务的“节点(Node)”组成的“集群 (Cluster)”。一个Erlang节点就是一个Erlang虚拟机的实例,用户可以在一台机器(服务器、台式机或者笔记本)上运行多个节点。 Erlang节点自动跟踪所有连接着的其他节点。要添加一个节点仅仅需要将其指向任何一个已建节点就可以了。只要这两个节点建立了连接,所有其他节点马上 就会感应到新加入的节点。Erlang进程使用进程ID向其他进程传递报文,进程ID包含着运行此进程的节点信息。因此进程不需要理会正在与其交流的其他 进程实际在何处运行。一组相互连接的Erlang节点可以看作是一个网格计算体或者一台超级计算机。 erlang的odbc应用程序结构图 Yaws是一个Erlang写的Web服务器。ErLang本身带有一个HTTP Server,叫做inet。Yaws对于inet,就相当于Servlet对于Http Server。Yaws也可说是一个Web开发框架,Yaws的ehtml类似于jsp、 php、ruby template。Yaws并发能力是Apache的15倍,有人利用16台集群服务器所做的显示,Yaws可以承受超八万并发活动,Apache在四千 就宕机了。 erlang和ruby的简单测试 Ejabberd也是Erlang很好的应用实例,也是目前可扩展性最好的一种 Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个集群运作。Ejabberd基于ErLang+ Mnesia构建,项目已成功发展5年,占据30%左右Jabber服务器市场。 Tsung则是多协议分布式压力测试工具,可用于测试Http、Soap、Postgresql和Jabber/XMPP服务器。而Wings则是一个3D建模程序,软件支持Windows、Mac OSX和Linux等操作系统,这两个项目都基于Erlang构建。 Erlang将会成为一个非常重要的语言。如果有了大公司的支持,它甚至可能成为下一个Java。因为它是个开源项目,非常适合多核处理、Web服务等领域。事实上,它也是编写在多核机器上运行的高可靠性系统的唯一成熟语言。 Erlang始于20年前,是一个并发性Prolog,Joe Armstrong创造了它。第一个大型Erlang项目是一个由几百人创建的电信交换系统,系统有数百万行代码。系统主要关注的就是可靠性,并且系统有 难以置信的可靠性历史。据Joe介绍,“它有99.9999999%的可靠性”。 这意味着每10亿秒才有1秒宕机时间,或者说10亿分钟有1分钟宕机时间。十亿秒大概是30年,10亿分钟大概有2000年。99.999% 的可靠性大概是每年宕机5分钟,这已经是很好的了。了解可靠性的人都知道,可靠性系统有 99.9999%的,甚至99.99999%的,但是估计没听过有99.9999999%可靠性的,可基于Erlang的系统实现了。 但这还不是令Erlang壮大的理由,因为不是什么人都关注可靠性。也不是因为 Erlang是一个函数式语言,更不是并行Erlang是个面向对象语言。其发展迅速的主要原因是唯一一个有可靠实现和完善类库的成熟的并行开发语言,在 不久的将来所有的桌面系统、笔记本电脑都将是多核的,而要让程序在多核上更快的运行就要使程序能充分利用多核处理的能力。 Erlang带有一组类库。多数类库是用于构建各类Internet服务的。 Erlang有Web服务器和数据库。Erlang社区认为它是构建可靠Web服务器和Web服务的首选语言。Erlang是一个构建可靠系统的框架/平 台,它构建的平台可以持续运行而无需关闭,可以每天更新软件,甚至可以定期的更换硬件。这些特性是电信应用所需要的,它还是在线银行、
链接:https://juejin.im/post/5d84e21f6fb9a06ac8248149 12306 抢票,极限并发带来的思考
来源:https://juejin.im/post/5d84e21f6fb9a06ac8248149
尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。
高并发的系统架构都会采用分布式集群部署,服务上层有着层层负载均衡,并提供各种容灾手段(双火机房、节点容错、服务器灾备等)保证系统的高可用,流量也会根据不同的负载能力和配置策略均衡到不同的服务器上。
链接:https://juejin.im/post/5d84e21f6fb9a06ac8248149
https://juejin.im/post/5d84e21f6fb9a06ac8248149
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。
笔者专门研究了一下“12306”的服务端架构,学习到了其系统设计上很多亮点,在这里和大家分享一下并模拟一个例子:如何在 100 万人同时抢 1 万张火车票时,系统提供正常、稳定的服务。
笔者专门研究了一下“12306”的服务端架构,学习到了其系统设计上很多亮点,在这里和大家分享一下并模拟一个例子:如何在100万人同时抢1万张火车票时,系统提供正常、稳定的服务。
原文:https://juejin.im/entry/5bc1b134f265da0a87268272
Go语言的出现,让开发高性能、高稳定性服务端系统变的容易,与高贵冷艳的Erlang语言不同的是,Go语言简单易学,在高性能服务端架构中的应用越来越广泛。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
来源:http:juejin.im/post/5d84e21f6fb9a06ac8248149
来源:httpjuejin.im/post/5d84e21f6fb9a06ac8248149
来源:juejin.im/post/5d84e21f6fb9a06ac8248149
虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题——抢火车票。虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。
来源:掘金,作者:绘你一世倾城 https://juejin.im/post/5d84e21f6fb9a06ac8248149
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者专门研究了一下“12306”的服务端架构,学习到了其系统设计上很多亮点,在这里和大家分享一下并模拟一个例子:如何在100万人同时抢1万张火车票时,系统提供正常、稳定的服务。
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者专门研究了一下“12306”的服务端架构,学习到了其系统设计上很多亮点,在这里和大家分享一下并模拟一个例子:如何在100万人同时抢1万张火车票时,系统提供正常、稳定的服务。github代码地址
不仅给出了模拟场景的代码,而且也用压测工具测试了并发情况,是一个很好的学习案例,分享给大家共读。
httpjuejin.im/post/5d84e21f6fb9a06ac8248149
所以对于黑客而言,一台算力无限的主机应该只会影响到一个领域,那就是密码学。因为整个现代密码学的安全基础,就建立在各种计算困难问题和关于计算复杂度的假设上。
近期,360安全卫士监测到了一批通过微信群传播的远控木马,木马针对在网上倒卖微信号的人群定向投放。卖号人的交流群里时常有不同的小号在散播诱导性的木马程序,不知情的卖号人运行木马后,电脑上就被植入后门。
真实的云计算什么样? 云计算对普通用户来说,总是一个云里雾里的话题。本文从最基础的概念开始科普,说明了四个常见的错误理解,和作者的四个猜想。 IaaS(Infrastructure as a Service),指基础设施即服务,消费者通过Internet可以从完善的计算机基础设施获得服务。基于Internet的服务(如存储和数据库)是IaaS的一部分。Internet上其他类型的服务包括平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service
以太坊是可编程的区块链,是业内公认的区块链 2.0 代表项目。可以将以太坊理解为一个操作系统,使用 Solidity 等语言编写智能合约发布应用到链上,使用 Go、Java、Python、JavaScript 等语言在链下调用链上的智能合约读写区块链数据,通过这种方式实现各种各样的区块链应用。
那些年熬夜刷的12306经过多年迭代,承受着这个世界上任何秒杀系统都无法超越的 QPS,上百万的并发再正常不过。那么,系统如何在 100 万人同时抢 1 万张火车票时,提供稳定的服务?
基于Redis的lua脚本能确保Redis命令的顺序性和原子性,所以在高并发场景下会用两者整合的方法实现限流和防超卖等效果,下面给出相关范例。
重点是专注,这就是选择 Serverless 的原因。 译者注:最近对 Serverless 兴趣甚是浓烈,曾经阅读过 Serverless 相关书籍、搭建过 Kubeless、给 Kubeless 提交过简单的 PR、也曾对比过各个云厂商函数计算平台的差异、还会寻找关于 Serverless 的国内外博客。最近看到《Serverless is a State of Mind》这遍博文,觉得受益匪浅,于是译之与诸君分享,希望读者有所收获。 作者:Ben Kehoe 译者:donghui 原文链接:h
如果说,腾讯云的事故是由于流程不规范造成的。那前沿数控的悲剧就是由于缺乏云计算认知造成的。
在软件架构领域,经历了从单体应用到 SOA 再到微服务; 在云计算领域,经历了从虚拟机到容器; 在数据库领域,从关系数据库到 NoSQL 再到 NewSQL; 在大数据领域,从批处理到流处理; 在运维领域,从手工运维到 DevOps、AIOps; 在前端领域,从 jQuery 到 React 等三大框架; …… 除此之外,还有一些新兴的领域如 AI、区块链等等,开启了一波又一波的风口。
金融领域也是 Python 的重要方向之一,我知道有一些读者就是冲着做量化交易才接触 Python 的。今天给大家分享一个使用 Python 的期货交易API。
1.老铁啊,老铁,压测其实很有必要,jmeter分分钟就压测了接口。 2.压测可以让自己不被坑,压测还可以发现bug。 3.压测可以让你的代码更健壮。 4.压测可以找到业务和功能的bug。如果测试出来你的bug,可能罚钱,影响钱的问题。
• ① 所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。
在 docker 没有发布之前,其实容器技术就已经在探索了很多年了。实际上,Java 这门语言就是一种容器化的技术。Java 这门蹩脚的语言之所以大放异彩,是因为他通过虚拟机的方式,无视了各个操作系统以及硬件方面的差异。而对标 Java 的 C# 则是强绑定平台的,因为微软想推销自己的 windows server 。
谈到网络,有两个词是根本绕不过去的,这就是SDN和NFV。 SDN强调的是转发和控制的分离,通过引入新的控制平面,屏蔽不同厂家的转发平面细节,实现网络控制功能的智能和集中;NFV则是强调硬件平台与业务
2.1 IAAS 基础设施即服务(infrastructure as an service) 虚拟机 ecs openstack
领取专属 10元无门槛券
手把手带您无忧上云