新年10个Flag实现中~
访问量
275.1K
文章数
103
运行天
522
前言由于3月初七牛云的云存储的CDN回源流量开始收费,穷困的我准备放弃使用七牛云存储,只使用CDN(研究后发现七牛云的0.15/GB已经是业界很低的价格了,如果有条件还是可以支持的)。于是我在3月初重新配置了一次CDN,可这次配置导致了一个奇怪的现象,那就是无论我如何设置CDN,访问的cdn.bewindoweb.com的时候总是产生一个HTTP301永久跳转,跳转回了www.bewindoweb.com,再HTTP200下发数据:访问CDN就相当于只多了一层跳转,数据还是从网站服务器拿到的,完全没有CDN的作用……最近发现越来越卡,图片的流量挤爆了我的1M小水管,网站打开一直转圈圈,于是下定决心要弄好为止。一、查找表面原因百度了半天CDN跳转301回源站,出来的都是不相关的信息,所以我打算
前言一致性Hash是分布式架构最重要最基础的东西,这里以分布式图片缓存服务器为例进行讲述。原始问题:假设我们需要对一堆图片做缓存,缓存的图片放在了2台服务器上,当到来一个请求,应该如何知道请求的图片在哪台上面呢?暴力遍历就不要去想了,否则缓存就没有意义了。一个自然的想法就是根据图片的名字做一个映射(Hash),将图片名字映射到0,1两个数字上面,例如有这样的映射函数:f(图片名称)=md5(图片名称)%2md5是一个典型的哈希函数,会产生128bit的值,模2后只可能是0或1,那么我们就根据这个值把图片存入0、1两台服务器,当请求过来,根据图片名称计算出值,就可以知道图片缓存放在第几号服务器了:但假设现在我们图片太多了,需要再增加一台服务器分担压力,哈希函数必须更改成0、1、2映射,我们改为
前言前言有点长,讲述Docker和DockerCompose用来做什么的和一些使用感受,不看可跳过。随着我使用Docker越来越频繁,开始逐渐理解一些Docker的作用了。刚接触Docker总是会听说“Docker是Linux上的虚拟机”,然后就会把Docker和Vmware来类比,虽然有些相似,但你用多了就会发现区别:Docker镜像用起来最大的感受就是,它的读写是不会保存的。Vmware不管你在虚拟机操作了什么,它都会保存,而Docker更多地是一个独立的镜像,可以无限复制到任意安装了Docker的机器上跑,而且对外表现一致——这给服务的部署带来了便利。比如我买的服务器到期了,续费比活动购买新机要贵得多,这时候就需要迁移服务,如果我直接安装到机器上,那迁移服务就很累了,可能会依赖很多组件
前言在软件上线之前,不可避免地要对软件的正确性、可靠性进行测试,又最好不要停机维护、不要影响用户体验,并且在新版本出现问题的时候能够及时回退。所以,需要有一套完整的部署方案,灰度发布、滚动发布、蓝绿部署都是常见的手段,而A/B测试则是对用户体验进行调查的测试手段,这里一并学习。一、灰度发布定义灰度发布又叫做金丝雀发布,以前矿工下矿洞前,会放一只金丝雀去试探是否有瓦斯(金丝雀对瓦斯很敏感),映射到这里就是先发布一小部分来试探整体是否能够正常运行,如果能正常运行则进行完全部署的发布方式,目前仍然是不少成长型技术组织的主流发布方式。操作描述(1)当前版本为V1,替换服务器集群中的一小部分(比如1台)为新版本V2。(2)如果正常运行,则把剩余V1版本全部升级为V2;如果运行失败,所有服务器回退到V1
前言借着AWS免费账户,我们来进行一次虚拟的设备点对点通信实验。IoT的含义是Internetofthings,也就是所谓的物联网,现在已经渗透到了各行各业,目前我们主要关心的是各种智能家居的物联网。智能家居国内有很多厂商,包括小米、魅族(黄了)、阿里、腾讯等等企业都在搞,但国内只有阿里提供了云平台解决方案,也就是可以借助阿里云搭建自己的IoT云平台,国外的话AWS的IoT则很出名。IoT云平台的架构大同小异,大概有如下特点:(1)采用“订阅”的方式推拉消息,是现在分布式的主流通信方式,好处是方便一对多、多对多通信。(2)业界通用的通信协议是MQTT,好处是体积小,适合嵌入式设备(3)云平台上有设备的“影子”或者“实例”,保存着这个设备最后一次的属性,这样即使它离线了,其他IoT设备发给它的
一、什么是Dockerdocker是基于Go语言实现的云开源项目,诞生于2013年,由dotCloud公司发起。官方定义如下:docker是一个开源的软件部署解决方案;docker也是轻量级的应用容器框架;docker可以打包、发布、运行任何的应用。另一定义:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、baremetal、OpenStack集群和其他的基础应用平台。 根据我目前所知的理解,docker是随时可以运行的完整环境,它并不保持一个恒定的状态,而是有所需则取所需,更像是一个“操作系统+相关依赖+主要内容.exe ”,自己把需要的环境
1