美文网首页
服务端技术了解

服务端技术了解

作者: 夜夛 | 来源:发表于2020-02-20 23:30 被阅读0次

    1.服务端简介

    对应客户端,服务端通常也叫服务器端,产品经理在设计产品时,虽然设计的更多是客户端产品,但是两个客户端之间的信息互动和数据传输是通过服务端完成的。服务端起到了中间核心处理者的作用,它负责处理复杂的业务逻辑并对数据进行存储管理。

    客户端与服务端借助网络进行数据传输,数据传输基于基本数据传输协议,定义数据传输的规则通常叫作数据接口,客户端与服务端需要进行很多功能和数据的交互,也就会有很多个数据接口,每一个接口都处理一个功能逻辑。

    服务端起到了对所有客户端进行协调处理的角色,每时每刻都有很多客户端访问服务端,如果产品用户量大而且活跃度高,服务端就会承受巨大的访问压力。

    2.常用服务端技术介绍

    常用的服务端开发语言有:PHP、Java等。常用到Java语言的开发平台Java EE。PHP是一种脚本语言,可以用于网页开发。PHP有很多现成的框架可以使用,通过框架可以非常简单地实现很多功能。Node.js也是一种服务端开发技术,使用JavaScript语言进行开发。Node.js能实现从网页前端到后端服务的全流程覆盖,是一种灵活性和扩展性都比较好的服务端技术。还有以Python语言为主的服务端技术和以C#语言为主的APS.NET等多种服务端技术。

    在服务端处理请求的部分,可以通过不同的技术选型实现,对平台安全性和支持性较强的产品和系统来说,Java EE企业级开发平台就是一种比较好的选择,一些银行或者政府系统都是基于Java EE来开发的。选用Java EE的不足就是体积庞大,而且系统升级和维护成本高,每次系统升级都需要重新编译并打包,这个过程非常漫长,导致系统更新和安装成本很高。对于一些轻量级产品或系统,要求快速迭代和快速发布,可以选择例如PHP或者Node.js这样的服务端技术,这些技术选型的特点是轻量化,不需要特别编译打包,由于是脚本语言编写,可以直接运行发布,所以对于一些网站类产品或者做业务逻辑处理的产品服务端,选用这种技术类型是比较合适的。

    3.服务端的基本架构

    服务端通常被叫作云端,也就是所说的云服务器,云服务器指物理机房托管在第三方,而不是自建机房。每个机房都由应用服务器、数据库服务器、交换机、网络端口和外网光缆组成 。

    服务端架构图

    负载均衡服务器:客户端通过互联网请求访问服务器,请求进来后首先经过负载均衡服务器,它是用来处理大规模请求的服务器,通常对于一些访问量比较高的系统来说,负载均衡就显得尤为重要,负载均衡服务器的作用是将同时进来的大量访问请求根据应用服务器的忙碌程度进行动态调度,可以把负载均衡服务器理解成服务端的调度中心,它负责流量的动态分配。根据对应的应用服务器负载情况,动态分配请求到不同的应用服务器。

    应用服务器:一个客户端请求经过负载服务器后,根据各个应用服务器的负载情况进行合理分配后,到达所在应用服务器后,API服务器主要根据不同客户端请求进行相应的业务逻辑处理,并将处理完成的结果返回给客户端。同样的应用服务器通常会有多台同时运行,客户端访问量足够大时,一台服务器忙不过来,所以采用多台通水运行来分流处理客户端请求,而分流调度就是通过负载均衡服务器完成的。

    数据库服务器:应用服务器下方对应的是数据库服务器,数据库服务器负责运行后端数据库,例如用户通过客户端访问某一个商品信息时,应用服务器会根据用户请求从数据库中查询商品信息并返回给客户端。

    4.数据接口及结构

    数据接口是指客户端与服务端进行数据传输和交互的数据协议,数据接口是一种数据交换的标准。数据接口扮演的是信息传递者的角色,根据不同的产品功能,对应的数据接口也会有所不同。

    数据接口的构成通常是“key-value”的形式,也就是键值对,键(key)代表某个数据字段所表达的意思,值(value)是这个数据字段的内容。

    一个简单的数据接口结构

    {usernamen:Bruse,password:123456}

    这个数据接口结构里,我们定义了两个字段,分别是代表用户的“username”和代表登录密码的“password”,对应这两个字段的值分别是“Burse,123456”。

    5.1 JSON

    JSON是一种轻量级的数据交换格式,也是一种用来表示数据接口结构的形式。

    一个简单的JSON结构

    {

    "username":"Bruse",

    "password":"123456"

    }

    在JSON里也可以表示数组结构

    {

    "name":"Bruse"

    "skill":["足球",“篮球”,“羽毛球”

    }

    在“skill”后面,通过中括号表示数组,数组俩吗的值通过逗号分开,数组的元素本身也可以是一个键值对或者一个JSON对象。

    {

             "name":"china"

             "province":[{

          "name":"黑龙江",

          “cities”:{

               "city":["哈尔滨",“大庆”]

            }

               },{

          "name":"湖南",

          “cities”:{

               "city":["长沙","株洲"]

           }

            },{

          “name”:"广东",

          “cities”:{

               "city":["广州","珠海","深圳"]

          }

             }]

    }

    JSON体积小,易于理解,很适合用作数据接口进行数据传输。

    5.2 XML

    XML全称可扩展标记语言,与JSON一样,XML也是一种数据交换格式,也可以用来进行简单的结构化文本数据的存储。XML的基本元素是由一个个标签构成的,每个标签都由标签头和标签尾构成,内容放在标签头尾之间。与JSON类似,XML的标签元素也可以进行相互嵌套,标签内的值也可以是标签题。

    <?xml version="1.0" encoding="utf-8"?>

    <country>

           <name>china</name>

           <province>

         <name>黑龙江</name>

         <cities>

               <city>大庆</city>

               <city>哈尔滨</city>

         </cities>

           </province>

           <province>

         <name>广东</names>

         <cities>

               <city>广州</city>

               <city>深圳</city>

               <city>珠海</city>

          </cities>

            </province>

            <province>

         <name>湖南</name>

         <cities>

               <city>长沙</city>

               <city>株洲</city>

         </cities>

           </province>

    </country>

    在上面的XML结构中,第一行的XML结构的头,注明了版本号和编码格式,编码格式是指该XML结构里的内容会以何种方式解析。“utf-8”是一种统一转换编码格式,可以支持繁体中文、简体中文及英文、日文、韩文等解析。

    XML的结构体积比JSON大,而且阅读结构不如JSON清晰。在生产开发中,使用JSON作为数据接口进行数据传输和交换的要多一点。

    XML的应用领域非常广泛,在Android开发中,界面布局文件就是通过XML结构实现的,很多服务器配置文件也都是通过XML结构实现的,目前的数据接口,JSON是主流。

    6.1 服务端与客户端的交互模型

    由三部分组成:客户端、服务端、互联网。

    数据通过数据接口进行传输,首先由客户端发起功能请求,客户端通过数据接口,数据接口通过互联网将请求传递给服务端,服务端在进行数据解析及处理完毕后,将结果通过数据接口传递回客户端,客户端获取到服务端的请求响应,同样进行数据解析和处理后,再将结果通知给用户。

    6.2 服务端部署及运维

    上线:把开发完成后的系统部署到公网服务器上。部署过程就好比在生产线上生产好了产品,然后将成品上架到货架上进行销售。可以租用云服务器提供商的机房,将服务端部署在云端。

    服务端部署完毕后,接下来就是长期的维护和调优过程,这个过程叫运维。服务器运维工程师就是专门负责这一过程的,服务器运维包括发布新的服务,对服务器进行更新、维护,同时对服务器进行整体监控,出现紧急情况需要及时处理。

    产品开发完成且测试已经通过,需要检查客户端代码是否已经更新到最新状态并且打包就绪。同时服务端代码已经更新到最新状态并且已经处于可部署状态。通知运维人员进行服务端更新部署,将最新的服务端上线到公网服务器。

    云服务器

    只需要将自己的服务器代码部署到云服务机房中的服务器上,相当于租赁了云服务器提供商的服务器,使用第三方公司提供的服务器托管和维护服务来运行自己的产品,这种方式称为云服务器。

    6.3 如何判断产品问题是否出自服务端

    服务端的作用是用来接收客户端请求并将处理结果返回给客户端的一个中间调度者。服务端不仅与客户端进行交互和通信,同时还数据库进行交互。

    当客户端显示不出数据时,问题也有可能出自服务端,具体原因可能是服务端在查询数据库时没有查询到信息,客户端通过网络请求获取数据时,接收到的数据集为空,所以在客户端产品中没有展示出数据。通过信息提示分析问题有助于快速定位和解决产品问题。

    相关文章

      网友评论

          本文标题:服务端技术了解

          本文链接:https://www.haomeiwen.com/subject/sipfqhtx.html