序言
最多输一次,怎么可能。。。这辈子都不可能的。。。
什么样的理念?什么样的规则?什么样的原则?志同道合者同流合污之,分道扬镳者。。。滚滚滚,如大浪涛涛的长江水。。。
风言风语
知识获取无限,而。。。离智慧很远。。。
1、 重启
重启是万能的,不重启是万万不能的。。。
每次出现告警,总是会听到各种建议,重启一把试试。。。今天重启一次,明天重启一次,后天再来一次。。。你。。。玩我呢。。。
重启一下,像不像感冒的时候建议。。。多喝热水,喝你妹啊。。。
重启只是临时解决问题,而不是解决问题的根本之道。
出现告警,程序必然是存在问题,可能是内存溢出了,可能是cpu收到了未知的硬件中断,可能是硬件出现了问题,那么每次重启临时解决问题,三天来一次,浪费时间,浪费精力,看到之后,就有了第一印象,FUCK 。。。
偷偷的重启其实是无所谓的,但是如果一个项目组写的程序,天天让人重启来解决问题,岂不是搞笑,傻逼项目组?写的都是狗屎?非要用重启来解决?要不写个定时任务定时任务重启?
2、 眼睛
很多人眼瞎,其实也不知道到底是真眼瞎还是假眼瞎,眼里揉不得沙子?这样并不好。。。
有的人眼睛自带美颜,看什么都能看到优秀的地方,看什么都能看到美好的一面。。。事不关己高高挂起,所以赞美是最好的,毕竟你的成长和我无关
看到一些问题,忍不了。。。在到处漏水的屋檐下,居安思危?
很多东西,深究其本质,存在各种各样的问题。。。所以,偶尔假装不知道,也是蛮好的。。。每一次希望,每一次失望?又能怎么样???
3、 异见
在一个地方,总能看到各种各样的人,有的会沟通,有的执行力强,有的做事有责任心。。。
一个团队,是否能容纳各种声音,是否能容纳各种建议,还是一言堂?保持异见或许也是保持团队活力的一种方式。。。
不同的思维角度,不同的想法,不同的建议,会让团队走的更远,会让团队获取更多尝试的机会。。。
路还有多远?哪里才是终点?那么。。。又能怎样?
4、 忆
回忆之中,到处都是风。。。风的声音在耳边回响。。。
偏执,目光的局限性,导致错过了很多美好的东西,有些东西回忆起来,满目疮痍。。
心态有多开放?思维有多少局限?目光能看到多远。。。远见者。。。
天马掠过记忆的星空,溅起一丝丝波浪。。。
心高高在上,脚步卑微。。。还好,依旧在路上。。。
漫谈DNS
DNS主要的使用场景:
1、 解决程序依赖IP地址,使用DNS,将对IP地址的强依赖进行解耦,从而每次后端服务器发生故障的时候,可以修改DNS将IP地址的指向进行修改;
2、 同城双活,使用DNS解析为两个IP地址,从而可以达到轮询的作用,从网络的层面来说,单机房属于网络架构中的单点,而DNS则是这个双机房的负载均衡器;
3、 全局的调度功能,这属于智能DNS或者GSLB的功能,有多个IP地址可以返回,而在返回的时候,则是返回离用户最近的IP地址,从而能加快用户的访问,提高用户体验;
4、 使用DNS组建CDN功能,从而可以将一些静态资源,视频流放在离用户很近的地方的边缘节点,从而加速访问。
DNS的发展历程:
其实也不是DNS的发展历程,而是如何更快的返回用户的请求,从而进行的各种优化路径。
在单机房的时候,我们使用DNS的主要目的是为了解耦,将各个系统之间的交互不再强依赖于IP地址,从而防止后端资源的变化,需要重启应用系统,修改应用系统的配置。例子:后端有一个redis的ip地址为1.1.1.1,在前端有十个系统在配置文件中使用了这个ip地址,那么当后端redis的ip发生变化的时候,前端的十个系统都要修改配置,都要重启应用才能生效,当使用DNS之后,只要修改DNS的域名解析即可。。。在DNS进行切换的时候,会有短暂的服务不可用,会造成访问超时的情况,这是在预期内的。
在双机房的时候,也就是同城双活的时候,这个时候,可能在A机房有一个redis,在B机房也有一个redis,进行负载均衡的时候,由于对外出口只有一个,从而要么在前端再加上一个负载均衡,要么就是最简单的方式,将DNS设置一个CNAME,从而返回两个A记录的IP地址,这样就能用最简单的方式做成负载均衡。
在双机房的时候,由于访问的用户是各种各样的,可能有的用户使用的联通网络,有的用户是移动网络,有的用户在北京,有的用户在广州,从而需要一种解析的方式,来更快的访问,因为在跨网络访问的时候,延迟比较大,在跨地区访问的时候,延迟也比较大,从而就有了httpdns,而使用httpdns的时候,必须使用dns的客户端,也就是从发送一个http请求,从而可以根据http请求获取到用户的ip地址,从而大致确定用户的位置,从而可以返回用户比较近的ip地址,从而可以提高访问速度,而在构建httpdns的时候,可以从几个维度划分,可以分地域,例如每个城市都有NS服务器,也可以分运营商,联通一个,移动一个,电信也有一个。
在多机房的时候,访问图片,视频等静态资源花费的时间很高,从而需要使用缓存,而构建缓存,再构建GSLB,那么就可以使用CDN,将资源放在用户身边。
DNS的难点:
在使用DNS的时候,存在几个主要的问题:
DNS缓存问题,在各级的NS中,每个缓存的时间不一致,从而在进行更新的时候,发现全网生效时间比较长,在进行DNS切换的时候,缓存更新复杂。
DNS转发问题,在运营商中,可能存在各种NS,而有的运营商不自己解析,转发到其他的NS进行解析,从而可能导致源信息不准,无法返回最近的IP地址。
用户的位置确定问题,在确定位置的时候,用户发送的解析请求都发送到NS中,但是可能是自己配置的NS,也有可能是直接是运营商的NS,从而无法确定用户的具体位置,再加上NS之间的各种转发,确定位置更加困难,有的时候返回了最近的IP,可能是最远的。