DNS资源记录
DNS的internet类中有非常多的资源记录类型。常用的是SOA记录、NS记录、A记录(IPV6则为AAAA记录)、PTR记录、CNAME记录、MX记录等。
SOA记录:start of authority,起始授权机构。该记录存储了一系列数据,若不明白SOA记录,请结合下面的NS记录,SOA更多的信息见"子域"部分的内容。
格式如下:
alibabacom IN SOA dnsserveralibabacom mailalibabacom (
1
3h
1h
1w
1h )
第四列指定了"dnsserveralibabacom"为该域的master DNS服务器。
第五列是该域的管理员邮箱地址,但注意不能使用@格式的邮箱,而是要将@符号替换为点"",正如上面的例子" mailalibabacom ",其实际表示的是" mail@alibabacom "。
第六列使用括号将几个值包围起来。第一个值是区域数据文件的序列编号serial,每次修改此区域数据文件都需要修改该编号值以便让slave dns服务器同步该区域数据文件。第二个值是刷新refresh时间间隔,表示slave dns服务器找master dns服务器更新区域数据文件的时间间隔。第三个值是重试retry时间间隔,表示slave dns服务器找master dns服务器更新区域数据文件时,如果联系不上master,则等待多久再重试联系,该值一般比refresh时间短,否则该值表示的重试就失去了意义。第四个值是过期expire时间值,表示slave dns服务器上的区域数据文件多久过期。第五个值是negative ttl,表示客户端找dns服务器解析时,否定答案的缓存时间长度。这几个值可以分行写,也可以直接写在同一行中使用空格分开,所以,上面的SOA记录可以写成如下格式:
alibabacom IN SOA dnsserveralibabacom mailalibabacom ( 1 3h 1h 1w 1h )
前三列是声明性的语句,表示"alibabacom"这个域内的起始授权机构为第四列的值"dnsserveralibabacom"所表示的主机。第五列和第六列是SOA的附加属性数据。
每个区域数据文件中都有且仅能有一个SOA记录,且一般都定义为区域数据文件中的资源记录。
注意,资源记录的作用之一是存储域相关的对应数据,所以第4、5、6列表示的是该SOA记录所存储的相关值。
NS记录:name server,存储的是该域内的dns服务器相关信息。即NS记录标识了哪台服务器是DNS服务器。格式如下:
alibabacom IN NS dnsserveralibabacom
前三列仍然是声明性语句,表示"alibabacom"域内的DNS服务器(name server)为第四列值所表示的"dnsserveralibabacom"主机。
如果一个域内有多个dns服务器,则必然有主次之分,即master和slave之分。但在NS记录上并不能体现主次关系。例如:
alibabacom IN NS dnsserver1alibabacom
alibabacom IN NS dnsserver2alibabacom
表示主机"dnsserver1alibabacom"和主机"dnsserver2alibabacom"都是域"alibabacom"内的dns服务器,但没有区分出主次dns服务器。
不少朋友搞不懂SOA记录,也很容易混淆SOA和NS记录。其实,仅就它们的主要作用而言,NS记录仅仅只是声明该域内哪台主机是dns服务器,用来提供名称解析服务,NS记录不会区分哪台dns服务器是master哪台dns服务器是slave。而SOA记录则用于指定哪个NS记录对应的主机是master dns服务器,也就是从多个dns服务器中挑选一台任命其为该域内的master dns服务器,其他的都是slave,都需要从master上获取域相关数据。由此,SOA的名称"起始授权机构"所表示的意思也就容易理解了。
A记录:address,存储的是域内主机名所对应的ip地址。格式如下:
dnsserveralibabacom IN A 172161015
客户端之所以能够解析到主机名对应的ip地址,就是因为dns服务器中的有A记录存储了主机名和ip的对应关系。
AAAA记录存储的是主机名和ipv6地址的对应关系。
PTR记录:pointer,和A记录相反,存储的是ip地址对应的主机名,该记录只存在于反向解析的区域数据文件中(并非一定)。格式如下:
161016172in-addrarpa IN PTR wwwalibabacom
表示解析172161016地址时得到主机名" wwwalibabacom "的结果。
CNAME记录:canonical name,表示规范名的意思,其所代表的记录常称为别名记录。之所以如此称呼,就是因为为规范名起了一个别名。什么是规范名?可以简单认为是fqdn。格式如下:
www1alibabacom IN CNAME wwwalibabacom
最后一列就是规范名,而第一列是规范名即最后一列的别名。当查询" www1alibabacom ",dns服务器会找到它的规范名" wwwalibabacom ",然后再查询规范名的A记录,也就获得了对应的IP地址并返回给客户端。
CNAME记录非常重要,很多时候使用CNAME可以解决很复杂的问题。而且目前常用的CDN技术有一个步骤就是在dns服务器上设置CNAME记录,将客户端对资源的请求引导到与它同网络环境(电信、网通)以及地理位置近的缓存服务器上。
MX记录:mail exchanger,邮件交换记录。负责转发或处理该域名内的邮件。和邮件服务器有关,且话题较大,所以不多做叙述,如有深入的必要,请查看《dns & bind》中"Chapter 5 DNS and Electronic Mail"。
关于资源记录,最需要明确的概念就是它不仅仅用来区分和标识区域数据的类型,还用来存储对应的域数据。
- 什么是 UI :
UI的本意是用户界面,是英文User和interface的缩写。
- 什么是用户界面设计:
在人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。从心理学意义来分,界面可分为感觉(视觉、触觉、听觉等)和情感两个层次。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。
- 什么是J2EE
1: J2EE 是 Java 2 Enterprise Edition 的缩写,意思是 Java 2 企业版本
2:Java2 —— Java语言自12版本后,由于和前面的版本改进比较大,所以官方直接称为Java20 目前最高版本是Java15,官方也称为Java 50
J2EE —— Java 共分三个版本,分别是 J2SE , J2EE , J2ME 。J2SE是Java2标准版,用于普通的应用开发。J2EE是Java2企业版,用于构建部署大型的工程项目。而J2ME是Java2微版,用语嵌入式设备的程序开发,如手机里的Java游戏等。
J2EE 只是 Java2 的一个版本。
3: J2EE开发环境,首先肯定要有JDK,JDK是Java开发的必备环境。其次要有JRE,JRE是Java程序的运行环境。另外还需要一款JavaServer服务器,目前比较流行的有:Tomcat、JRun、WebLogic等还有很多。
原则上有了这些就可以用普通文本编辑器开发Java了,不过目前比较习惯可视化编程,所以一般都要装个Java的IDE开发工具,就和VB\VC类似的工具,目前比较流行的开发工具有:JBuilder、Eclipse、NetBeans、Java Studio Creator/Enterprise(官方的) 等。
-什么是SOA
SOA:面向服务的体系结构(service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。
然而,现在的 SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言(称为 Web 服务描述语言(Web Services Definition Language,WSDL))来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Definition Language,IDL)可比了。
Web 服务并不是实现 SOA 的惟一方式。前面刚讲的 CORBA 是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,比如 IBM 的 MQseries。但是为了建立体系结构模型,您所需要的并不只是服务描述。您需要定义整个应用程序如何在服务之间执行其工作流。您尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA 应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。例如,给供应商付款的操作是商业流程,而更新您的零件数据库,以包括进新供应的货物却是技术流程。因而,工作流还可以在 SOA 的设计中扮演重要的角色。
此外,动态业务的工作流不仅可以包括部门之间的操作,甚至还可以包括与不为您控制的外部合作伙伴进行的操作。因此,为了提高效率,您需要定义应该如何得知服务之间的关系的策略,这种策略常常采用服务级协定和操作策略的形式。
最后,所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何 SOA 中都起着重要的作用。
我可以用面向服务的体系结构做什么?
对 SOA 的需要来源于需要使业务 IT 系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。
改变和 SOA 系统适应改变的能力是最重要的部分。对于开发人员来说,这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发生,这取决于是否有改变需要知道接口是如何定义的以及它们相互之间如何进行交互。与开发人员不同的是,架构师的作用就是引起对 SOA 模型大的改变。这种分工,就是让开发人员集中精力于创建作为服务定义的功能单元,而让架构师和建模人员集中精力于如何将这些单元适当地组织在一起,它已经有十多年的历史了,通常用统一建模语言(Universal Modeling Language,UML),并且描述成模型驱动的体系结构(Model-Driven Architecture,MDA)。
子条,设计中的战斗机
http://hibaiducom/ui88
概念不太一样
SOA是面向服务的架构,将业务逻辑提炼成共用服务,对外提供服务,也不一定就用webservice通信,也可以是socket、EJB等等。目标就是建成一个服务组件的“超市”,供别人自行选用。
分布式,主要还是从部署的角度,将应用按照访问压力进行归类,主要目标是充分利用服务器的资源,避免资源分配不均,譬如流行的三层架构等。
0条评论