AWS作为业界领先的云服务提供商,提供多种多样的高可靠性服务。其中AWS EC2 作为一项web服务,向用户提供虚拟化服务器,虚拟计算环境被称为实例。它允许用户按需调整计算容量,例如可以对CPU数量、内存大小、存储大小与类型以及网络性能进行弹性缩放。
EC2不仅可以提供基于Linux和Windows的虚拟机,EC2 还可以和其他AWS产品集成在一起。例如,可以结合AWS 的负载均衡服务ELB和 Auto Scaling,自动进行计算资源的弹性缩放,以应对流量高峰的变化,无需猜测容量需求。
要跨多个实例自动分配应用程序的传入流量,可使用 Elastic Load Balancing。 要监控您的实例和 Amazon EBS 卷的基本统计数据,可使用 Amazon CloudWatch。 要监控对您的账户的 Amazon EC2 API 的调用 (包括由 AWS 管理控制台、命令行工具和其他服务进行的调 用),请使用 AWS CloudTrail
同时Amazon EC2 服务承诺为每个 Amazon EC2 区域提供 99.95% 的高可用性。
AWS 为您提供了实际动手的机会,新注册用户可以免费试用指定EC2实例类型一年。
1、什么是EC2
2、使用EC2实例的一些实践
3、关于EC2的相关概念
4、如何正确选择EC2
5、常见故障排查
之前写过一篇关于docker手动安装的教程(在Ubuntu 16.04 安装docker),那篇写得太难了。
Docker 官方为了简化安装流程,提供了一套安装脚本,Ubuntu 和 Debian 系统可以使用这套脚本安装: curl -sSL https://get.docker.com/ | sh
由于GFW的原因可能会安装得极缓慢,所以国内推荐使用以下的任意一条命令安装
//阿里云的安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
//DaoCloud 的安装脚本
curl -sSL https://get.daocloud.io/docker | sh
本文是在看完朴灵大师的著作《深入浅出node》写的一些总结,更多的可能是从web开发者的角度去思考,过于底层的概念会选择性的略过,或者只说我在开发过程中遇到那些由于底层认识浅显产生的坑。另外由于本书是在2013年写的,很多著名框架那时候还没有,书中没提及的我会适度穿插一点,所以本文涉及面可能非常繁杂。
不得不说说在去年5月份就入手了这本书,那时候刚刚学了Javascript,对node.js一点认识都没有,后果可想而知。可以说,朴灵大师的这本著作一点都不适合作为node.js的入门书籍。这就要吐槽本书的附录A,深深的恶意啊,既然本书不是面向node的初学者,为什么有“安装Node”这个环节,那时候超级小白的我,看到这个附录就以为这本书是类似于node从入门到精通云云的,虽然买前看到豆瓣也有书评说这本书不适合入门小白。入手后,捧着这本书硬是啃了几天,嚼之无味,果断弃坑,用回Java,期间偶尔用一下Javascript的前端框架了,写一下node Demo,做些爬虫。
时隔半年,写了个小程序上线后,因为众多关于node“谜之错误”,根本原因是不了解内在机理导致的各种囧况。本人有性能强迫症,不想发现一起bug,查处一起bug,我要做的是坚决杜绝~~于是想起本书,翻看几页,平日遇到问题都可以在这里找到原因,以及一些用其他语言开发web程序的坑也有说到,个人感觉本书最赞是第八章——构建web应用,收获颇多,可以单独拿出来再写一本书。看着一发不可收拾,白天在图书馆,夜里挑灯看书,因为大三没有什么课了,前两天还看到天亮,我的天。以前高考都没那么勤奋,也许这就是欠下的迟早都要还。
回到正文干货
on()方法提高代码易读性,如下
$("input").bind("click", { foo: "hello" }, handler);
$("input").on("click", { foo: "hello" }, handler);
bind()绑定事件的时候,这些元素必须已经存在,而on()可以处理类似于代理这样的东东,也就是说不存在的元素(动态生成的元素也可以处理),如下动态生成的 To do list ,再双击删除,可使用on()轻松完成,你会发现,on换成bind是不行的。
<input type="text" id="str">
<button id="btn">添加</button>
<h3>To do list</h3>
<ul></ul>
本书仰慕已久,在入门MySQL许久之后,拿起本书,都是那些踩过的坑。读完第一章,颇有重拾当年大二数据库原理的味道,相比之下又有很强的实践性,算是MySQL IN ACTION…不,前面应该再加上个High Performance.
昨天重新fork了一份GitPage,感觉好久没用博客写文章,一直用微信公众平台写文章,总会感到有些浮躁,而在博客却不会~~
第一章从表面说了MySQL的架构,以及一些关于MySQL历史。主要强调各个MySQL引擎对于锁的不同实现和MySQL服务概念,我们经常说的MySQL是一个三层架构,内部是一层层的抽象,举个例子,JDBC使用的是第一层架构,储存过程、触发器、视图等属于第二层,第三层是储存引擎。我们平时执行sql语句,得益于这些高度封装、抽象的层级架构,屏蔽底层,使得查询过程变得透明。不得不说是,不同的存储引擎之间不会相互通信,而是简单的相应上层服务器的请求。
最近在魔改一个校园信息系统微信小程序,在计算当前教学周,需要获取特定日期的周数。大家知道,在java世界里面调用 Calendar.WEEK_OF_YEAR 就可以得到指定日期的周数了,可是小程序前端开发只能使用Javascript,而在js中没有类似这样的方法直接获取。
最容易的方法就是每次都向服务器获取教学周,可这太重量级,为了一个变量发送一次请求,每次打开小程序都要请求一次数据,再渲染,非常的耗时。于是上网找到一个function关于js 计算指定日期的周数,搬运工就这样以为成了,可发现原作者计算方法有误,传入的date对象如果是当天的上午为 N 周,如果传入的值是同一天的下午则为 N+1 周,这导致课表上午显示正常,下午显示就不正常了,以为是我计算错了,没有把开始的那周计算进去,细细排查发现是网上搬过来的function在取模的时候有误。