精华内容
下载资源
问答
  • 简单的解释下什么是CNAME?

    万次阅读 多人点赞 2019-08-23 16:10:25
    什么是CNAME? 在网上看了挺多解释,小白表示开始是有点懵的,后来自己总结了前辈们的解释,如有理解错误,烦请各位指出。 先简单的说域名解析(懂的不用看啦): 在以前,人们用IP进行互访,后来发现IP太多不好...

    什么是CNAME?

    先简单的说下域名解析(懂的不用看啦): 在以前,人们用IP进行互访,后来发现IP太多不好记忆,便有了域名,比如www.baidu.com,你一看就知道是百度搜索引擎,而不需要管他的服务器IP是多少,但是在最开始通信的时候,电脑路由器不认识域名,只认得IP啊,要怎么去获得对应的IP呢,这时候有了域名解析,就是去请求网络上的DNS服务器,让他们来告诉你这个域名对应的IP是多少,至于请求DNS解析的详细过程,大家就自行搜索啦,这里不赘述。

    然后概括地说:

    • A记录是解析域名到IP,CNAME是解析域名到另外一个域名。

    在说CNAME之前,要提到一个东西叫 A记录:

    1.A记录

    A记录,即Address记录,它并不是一个IP或者一个域名,我们可以把它理解为一种指向关系:

    • 域名 www.xx.com → 1.1.1.1
    • 主机名 DD → 2.2.2.2

    也就是当你访问这些域名或者主机名的时候,DNS服务器上会通过A记录会帮你解析出相应的IP地址,以达到后续访问目的。所以A记录是IP解析,直接将域名或主机名指向某个IP。

    2.CNAME

    CNAME记录,也叫别名记录,相当于给A记录中的域名起个小名儿,比如www.xx.com的小名儿就叫www.yy.com好了,然后CNAME记录也和A记录一样,是一种指向关系,把小名儿www.yy.com指向了www.xx.com,然后通过A记录,www.xx.com又指向了对应的IP:

    • www.yy.comwww.xx.com → 1.1.1.1

    这样一来就能通过它的小名儿直接访问1.1.1.1了。

    这时候有人问:这不多了一步嘛,不嫌麻烦?

    假如这个时候我又想给原域名取几个小名儿,分别叫www.cc.comwww.kk.com那么存在下列指向关系:

    • www.yy.comwww.xx.com → 1.1.1.1
    • www.cc.comwww.xx.com → 1.1.1.1
    • www.kk.comwww.xx.com → 1.1.1.1

    突然服务器的IP地址因为一些不可描述的原因要换了,不再是1.1.1.1了,换成了2.2.2.2,这时候你发现,只要把www.xx.com的指向修改一下即可:

    • 域名 www.xx.com → 2.2.2.2

    这时候你又发现了,原来他的小名儿不需要做更改,直接就能访问服务器,因为他们都只指向了www.xx.com,服务器IP改没改它们不管。

    那么假如不用CNAME,直接做A记录会怎样?

    • www.yy.com1.1.1.1
    • www.cc.com1.1.1.1
    • www.xx.com1.1.1.1
    • www.kk.com1.1.1.1

    那么当1.1.1.1更改的时候,全部相关A记录指向关系都要做更改,这才叫麻烦…

    3.CNAME的应用

    我在网上看到比较多的是用在CDN加速上,关于CDN大家可以看看下面这篇文章,通俗易懂:
    漫话:如何给女朋友解释什么是CDN?

    举个CDN的栗子

    已将原图中www.xdd.com修改为www.dd.cdn.com (2020-0720)在这里插入图片描述

    假如你是DD公司老板,你公司中的一台IP为1.1.1.1的服务器,注册了域名为www.dd.com,要对外提供客户访问。随着公司越做越大,访问量也越来越多,服务器顶不住了,你去找CDN提供商购买CDN加速服务,这个时候他们要求你的域名做个CNAME指向他们给你的一个域名叫www.dd.cdn.com

    • www.dd.comwww.dd.cdn.com

    当用户访问www.dd.com的时候,本地DNS会获得CDN提供的CNAME域名:www.dd.cdn.com,然后再次向DNS调度系统发出请求,通过DNS调度系统的智能解析,把离客户端地理位置最近的(或者相对负载低的,主要看CDN那边智能解析的策略)CDN提供商的服务器IP返回给本地DNS,然后再由本地DNS回给客户端,让用户就近取到想要的资源(如访问网站),大大降低了延迟。

    __
    __
    _

    评论有博友问:

    本地运营商的DNS服务器怎么知道一个域名的授权(权威)服务器是哪台?这个域名应该在哪里取解析呢?
    • 首先公司会去找运营商买域名,比如CDN公司买了cdn.com这个一级域名(相对于a.cdn.comb.cdn.com来说cdn.com可以称为一级域名,这个不用纠结哈),那么本地运营商会做一个NS记录,即匹配到这个cdn.com后缀的域名都会到CDN服务提供商的DNS服务器做解析,即到权威服务器做解析。

    其他记录我有空再详细补充下~

    —————————————————————————————————

    4.域名缓存问题

    最近在公司遇到比较多的是关于域名缓存的问题,在这边简单说下。

    • 还是举个栗子,你搭建了一个权威DNS服务器,这个服务器需要处理用户终端发起的域名查询请求,假如用户量很大,访问域名频繁,或者说有些接口需要频繁调用网站域名的情况,那用户每次调用都去请求解析不太合理,降低了我调用的效率,DNS权威服务器也有负担。所以一般DNS服务器在下发解析的时候是带有缓存时间的(10min或者是1h,主要由DNS服务器决定),而且这个缓存是下发到用户终端、用户终端、用户终端上的(重要的事情说三遍),其实用户在访问域名的第一步不是直接去查解析,而是查本地host文件,然后是看缓存是否有这个解析记录,都没有的话才去请求解析。

    所以在公司比较常见到这种情况,内网和公网域名切换的时效问题。

    1.内网环境:因为是在内部局域网搭建的DNS,这个缓存时间我们是可控的,比如我们部署为1h缓存时间,如果有客户的域名指向关系需要修改,比如客户提供服务的机器ip要更换了,又想要做到快速切换,那我们需要在修改指向关系的一小时前把这个域名的缓存时间改成1min或者30s,那么一小时后可保证等所有用户的缓存时间都过了再做域名指向关系的修改,那就能达到快速切换的效果。

    2.外网环境:前文有提到,用户在请求DD公司域名前,是经过了运营商的,那其实DD公司的缓存是下发给运营商的,实际用户的缓存时间可能是由运营商下发的,那就会存在一个问题,我改了缓存时间为30s,但运营商那边做了操作,下发给用户是1h(可能是部分地区运营商统一修改的缓存时间,可以设定上时间的下限),那这咋整?那就莫得办法了,但能保证的是九成以上的地区能够在短时间内切换,要想做到所有用户终端秒级切换是不大可能了

    3.像第二种那样中间经过了运营商,其实就是相当于经过了一个中间节点一样,他帮我们去做请求转发或者是递归查询,那其实内网环境也存在这么一种情况,当清除了本地缓存解析还没生效,那就要考虑下是否你的DNS SERVER是权威服务器还是中间节点了,那怎么看呢?

    拿我的windows来举例,打开CMD,解析百度
    在这里插入图片描述
    server address是 192.168.3.1 ,那这明显是经过了中间节点了(是我的网关,路由器地址),下面还告诉你了非权威应答,说明是路由器帮我们去递归请求解析了。

    4.怎么清除本地缓存呢?
    WINDOWS 可以这样看缓存ipconfig /displaydns 也可以清缓存
    在这里插入图片描述

    LINUX服务器如果没有安装DNS程序的话一般是没有缓存的,你的缓存可能来自于其他程序或者是中间节点,中间节点地址可以通过nslookup随便一个域名看到,就是你的DNS SERVER,登上去清除一下(例 BIND服务器可通过 rndc -s 127.0.0.1 flush 清除)。其他视情况自行解决~~

    5.既然请求解析的第一步是查本地host,那我们是否可以自己修改本地缓存呢?完全阔以

    • WINDOWS
    • 路径 C:\Windows\System32\drivers\etc

    在这里插入图片描述
    比如我加两个映射关系
    www.dd.com 1.1.1.1
    baidu.com 1.1.1.1

    在这里插入图片描述
    测试
    在这里插入图片描述
    说明本地host是优先的,但是nslookup的结果还是baidu.com的地址,我怀疑是nslookup这个程序直接跳过了查询本地host这一步。

    • LINUX

    和windows一样直接修改就行了
    [root@sword ~]# cat /etc/hosts

    1.1.1.1 www.dd.com
    1.1.1.1 baidu.com

    DNS SERVER也是可以自己修改的,还有很多配置就先不写了,看啥时候有空吧~

    转载请标明出处,谢谢~

    展开全文
  • ubuntu使用了putty,可以连接serial port,但并没有传输文件的功能例如使用xmodem收发文件。 ubuntu是否有即可以连串口,也可以用xmodem的工具,谢谢。
  • win10下什么拼音输入法好用

    千次阅读 2016-04-21 21:07:12
    首先考虑的当然是搜狗,但不知道为什么我的电脑配置也不太低端,跑什么平常用的软件都没什么,就搜狗,居然给我一种跑不动的感觉,首次打字要等半天,经常那个小浮窗拖动后还在原地留下鬼影,忍不了了就卸了。...

    #纯个人体验#

    1.搜狗输入法

    首先考虑的当然是搜狗,但不知道为什么我的电脑配置也不太低端,跑什么平常用的软件都没什么,就搜狗,居然给我一种跑不动的感觉,首次打字要等半天,经常那个小浮窗拖动后还在原地留下鬼影,忍不了了就卸了。

    2.必应输入法

    这款我在win8时最常用的,但在win8下有个问题是metro界面用不了,所以当时加了个搜狗配着用。到了win10就不止metro用不了了,很多地方都用不了,搞不清原理……今天在疑惑为什么切换窗口时原窗口仍然置顶,看到有网友说是必应输入法的锅,就果断卸了不留着过五一了,但窗口切换的问题仍然没有解决,期待重启后……

    更新:卸载必应输入法后,窗口切换问题确实能被解决

    3.系统自带输入法

    卸载搜狗后用了一段时间自带的,一开始会有点不习惯,因为它把打出来的拼音显示在打字处而不是输入法框里,但这是小问题,大问题是中英文切换,明明切了中文过会用又变成英文了,特别魔性,经常咬着牙切来切去很烦,而且用VS写代码的时候加中文注释时显示的都是问号。

    4.手心输入法

    一直在找一款简简单单比较纯净的,貌似都没有太好的选择。除了搜狗大家用的多的就是百度和QQ了,百度的东西现在尽量不碰,QQ的也不太想用一直在考虑中。今天看到叫手心输入法的,看上去还行,又看到有人怀疑是360做的,心里一紧,死马当活马医地下了。风格设计是仿搜狗的,确实属于轻便小巧“纯粹”的,目前没有出bug,满足了,会推荐给朋友,如果有人问的话。之后如果也不能维持“初心”了,再继续找别的吧。


    更新:windows更新到最新版以后,手心输入法在使用windows附件 sticky notes时有时会出现光标错位问题。

    自带输入法在敲中文注释时非常方便,因为敲/就是/,不用切换英文输入法。

    展开全文
  • 1 2 3 4 5 6 7 8 9 10 ...若用SELECT * FROM dbo.investor WHERE id=1206 读取数据,或者SELECT * FROM dbo.investor WITH(UPDLOCK) WHERE id=1206 读取数据,这...因为若使用with(updlock)情形步必然是要更新数据​


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BEGIN tran
    DECLARE @name NVARCHAR(50)
    SELECT @name=name FROM dbo.investor WITH(UPDLOCK) WHERE id=1206
    IF @name='sxf359'
    BEGIN
    UPDATE dbo.investor SET name='sxfabc' WHERE id=1206
    END
    PRINT @name
    WAITFOR DELAY '0:00:20'
    COMMIT TRAN

    此事务在执行过程中,如果使用

    SELECT * FROM dbo.investor WITH(NOLOCK)  WHERE id=1206

    读取该条数据,感觉上name字段应该读取到的是sxf359。我一直是这样认为的,因为事务还没提交,还没更新为sxfabc。但事实是读取到的是sxfabc。把事务未最终提交的数据读取出来了。一些“脏数据”或未被提交的数据潜在的可能被读取,这就是脏读。我对脏读的定义有了更清晰的认识。

    若用SELECT * FROM dbo.investor   WHERE id=1206 读取数据,或者SELECT * FROM dbo.investor WITH(UPDLOCK) WHERE id=1206 读取数据,这个时候都会处于等待状态,直到事务执行完毕,才会执行这个两个读取操作

    但,如果是下面的事务情况:

    1
    2
    3
    4
    5
    6
    7
    BEGIN tran
    DECLARE @name NVARCHAR(50)
    SELECT @name=name FROM dbo.investor WITH(UPDLOCK) WHERE id=1206
     
    PRINT @name
    WAITFOR DELAY '0:00:20'
    COMMIT TRAN


    下面的这两条语句同时都能够执行:

    SELECT * FROM dbo.investor WITH(NOLOCK)  WHERE id=1206

    SELECT * FROM dbo.investor   WHERE id=1206


    但是,下面这条语句不能执行:

    SELECT * FROM dbo.investor WITH(UPDLOCK) WHERE id=1206

    这条语句只有在事务执行完毕才会执行。

    updlock意思就是更新锁

    防范脏读,保险的方法是使用 with(updlock)   ,但通常像这种正常读取SELECT * FROM dbo.investor   WHERE id=1206 就可以了。因为若使用with(updlock)情形下,下步必然是要更新数据​

    展开全文
  • 什么情况用Get请求,什么情况用Post请求? 什么情况用Get请求,什么情况用Post请求? 什么情况用Get请求,什么情况用Post请求?
  • 什么是 java 序列化?什么情况需要序列化?

    万次阅读 多人点赞 2019-06-17 09:34:01
    什么情况需要序列化? 序列化:将 Java 对象转换成字节流的过程。 反序列化:将字节流转换成 Java 对象的过程。 当Java 对象需要在网络上传输 或者 持久化存储到文件中时,就需要对 Java 对象进行序列化处理。...

    什么是 java 序列化?什么情况下需要序列化?

    序列化:将 Java 对象转换成字节流的过程。

    反序列化:将字节流转换成 Java 对象的过程。

    当 Java 对象需要在网络上传输 或者 持久化存储到文件中时,就需要对 Java 对象进行序列化处理。

    序列化的实现:类实现 Serializable 接口,这个接口没有需要实现的方法。实现 Serializable 接口是为了告诉 jvm 这个类的对象可以被序列化。

    注意事项:

    • 某个类可以被序列化,则其子类也可以被序列化
    • 声明为 static 和 transient 的成员变量,不能被序列化。static 成员变量是描述类级别的属性,transient 表示临时数据
    • 反序列化读取序列化对象的顺序要保持一致

     

    具体使用

    package constxiong.interview;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    
    /**
     * 测试序列化,反序列化
     * @author ConstXiong
     * @date 2019-06-17 09:31:22
     */
    public class TestSerializable implements Serializable {
    
    	private static final long serialVersionUID = 5887391604554532906L;
    	
    	private int id;
    	
    	private String name;
    
    	public TestSerializable(int id, String name) {
    		this.id = id;
    		this.name = name;
    	}
    	
    	@Override
    	public String toString() {
    		return "TestSerializable [id=" + id + ", name=" + name + "]";
    	}
    
    	@SuppressWarnings("resource")
    	public static void main(String[] args) throws IOException, ClassNotFoundException {
    		//序列化
    		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("TestSerializable.obj"));
    		oos.writeObject("测试序列化");
    		oos.writeObject(618);
    		TestSerializable test = new TestSerializable(1, "ConstXiong");
    		oos.writeObject(test);
    		
    		//反序列化
    		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("TestSerializable.obj"));
    		System.out.println((String)ois.readObject());
    		System.out.println((Integer)ois.readObject());
    		System.out.println((TestSerializable)ois.readObject());
    	}
    
    }
    

    打印结果:

    测试序列化
    618
    TestSerializable [id=1, name=ConstXiong]
    

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • 用通俗易懂的话说hadoop是什么,能做什么

    万次阅读 多人点赞 2014-04-10 10:36:33
    1、hadoop是什么? (1)Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。Hadoop=HDFS(文件系统,数据...
  • 请问./在Linux什么意思

    万次阅读 2018-05-22 16:22:25
    原文地址:请问./在Linux什么意思https://zhidao.baidu.com/question/96150379.html
  • 什么是索引

    万次阅读 多人点赞 2019-12-10 10:27:08
    概述 索引条件推优化(Index Condition Pushdown ...当使用索引条件推优化时,如果存在某些被索引的列的判断条件时,MySQL服务器将这一部分判断条件传递给存储引擎,然后由存储引擎通过判断索引是否符合MySQ...
  • linuxchmod +x的意思?为什么要进行chmod +x

    万次阅读 多人点赞 2018-05-24 17:14:39
    上周在工作中接触到chmod +x ...这一步是什么意思呢?经过上网查询(说的比较复杂,引申太多)和咨询我们研发(还是研发说的通俗易懂) chmod +x的意思就是给执行权限 LINUX不同的文件类型有不同的颜色,这里 ...
  • socket什么情况可读

    千次阅读 2020-08-26 21:36:35
    socket什么情况可读 1.socket接收缓冲区中已经接收的数据的字节数大于等于socket接收缓冲区低潮限度的当前值 2.连接的读一半关闭(即:接收到对方发过来的FIN的TCP连接),并且返回0; 3.socket收到了对方的connect...
  • java当中什么方法什么情况需要抛出异常,方法的返回值类型有限定吗,方法体的内容有什么要特别注意的地方吗?
  • 什么情况,才有必要做技术中台? | 前提1:技术组织结构垂直化 | 前提2:业务线又多又复杂 有了技术中台,是不是就能上天? 总结 就在刚过去的半年里,「中台」成了技术圈内讨论的热门词汇,就连一些名...
  • 我对上位机与位机的解释: 上位机 上位机就是可以发操作指令的计算机。一般是PC,工厂里常见的就是触摸屏电脑。 位机 位机就是控制、获取机器参数,运动状态等信息的计算机。一般是PLC 上位机与位机在一定...
  • Windows搞C++用什么编译器最好

    万次阅读 2018-11-10 04:21:40
    Windows搞C++用什么编译器最好
  • 以下情况适合创建索引 1、在经常需要搜索的列上,可以加快搜索的速度。 2、在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。 3、在经常用于连接两张表的列上,这些列主要是一些外键,可以加快连接的...
  • 什么情况可以不用隔离?一、设备及人身安全——高压的影响二、远端接受异常——电势差的影响三、数据异常,器件损坏——地环路的影响3.总结1.保证我们的设备不会接到有可能高压的设备或者有高压短路风险的场景。2....
  • 前言: 这篇文章会假设你已经对 react hook有一些基础的了解. 主要讨论什么是 useRef , useRef 与 createRef 的区别, 以及在什么情况使用 use...
  • 什么情况有索引,但用不上? 索引并不是时时都会生效的,比如 以下几种情况,将导致索引失效 : 如果条件中有or,即使其中有部分条件带索引也不会使用( 这也是为什么尽量少用or的原因 ),例子中user_id无索引 ...
  • C++和C在linux编程和与在WINDOWS什么区别 [ 标签:c++ 编程,c++
  • Redis一般是干什么用的?在什么场合使用?大体上介绍一下?
  • 程序员垃圾简历长什么样?

    万次阅读 多人点赞 2020-03-30 07:56:59
    已经连续五年参加大厂校招、社招的技术面试工作,简历看的不于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小...
  • 这些是通信系统中的调制方式: * BPSK:Binary Phase Shift Keying 二相相移键控,一个符号代表1bit * QPSK:Quadrature Phase Shift Keying 四相相移键控,一个符号代表2bit * 8PSK:8 Phase Shift Keying 八相...
  • 什么情况使用队列

    千次阅读 2018-09-15 08:15:02
    耗时的操作,且业务需求允许的情况,都可以放到异步队列中,比如 1.发微博,把微博推送到你的好友收件箱(假定采用的是推的方式),类似的还有feed 2.上传图片要生成不同尺寸的缩略图 3.发帖子的同时,利用...
  • 答:UDP协议:1.将数据及源和目的封装成数据包中,不需要建立连接。——面向无连接  2.每个数据报包的大小在限制在64k内。  3....所以传输不可靠 ... 4.... 主要用于视频会议、聊天什么的,一些缺少点数
  • 很多前辈都是用vi编辑器+gdb调试器+gcc编译器编程,linux也有如code blocks的编译器,也很方便,为什么仍用上述组合?有什么优势?
  • 2、什么情况需要分库分表? 当一个数据库被创建之后,随着时间的推移和业务量的增加,数据库中表以及表中的数据量就会越来越多,就有可能出现两种弊端:(1)数据库的存储资源是有限的,其负载能力也是有限的,...
  • 怎么查看别人的tomcat服务器部署了什么项目.怎么查看别人的tomcat服务器部署了什么项目。怎么查看别人的tomcat服务器部署了什么项目。怎么查看别人的tomcat服务器部署了什么项目。怎么查看别人的tomcat...
  • 什么情况使用多线程

    千次阅读 2019-04-01 12:05:19
    如果你的应用程序需要采取以下的操作,那么你尽可在编程的时候考虑多线程机制: ...为什么需要多线程(解释何时考虑使用线程) 从用户的角度考虑,就是为了得到更好的系统服务;从程序自身的角度考...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 539,199
精华内容 215,679
关键字:

下什么