嗨,各位小伙伴们。今天是腊月二十七,大家晚上好

     今天给大家讲一下客户端、服务端、后台、前端、后端,这些概念间的联系。小白们经常对后台、后端、服务端,前端、客户端这些个概念傻傻分不清。

前台:呈现给用户的视觉和基本的操作。

后台:用户浏览网页时,我们看不见的后台数据跑动。

后端可以包含为:服务端、后台。后台主要是由运营同学配置内容、资源等,并且写入进数据库;服务端的话,从数据库里面拉取数据。

前端可以分为网页版和供用户下载的app,依赖于客户端

       那我直接讲一下场景适用的大概的流程:首先,运营同学在后台配置了一张卡片,其次数据传入到了DB,等服务端从DB读取数据数据之后,将数据下发数据到客户端,最后客户端将卡片内容展现给用户。

期间我们会遇到的问题:假如你所遇到的系统是一个手机商城的系统,你需要在后台配置了一张卡片,并且让他在客户端(也就是手机端)生效。但是卡片未配置生效,可以从以下几个维度去考虑。1、先进行抓包,看数据是否有下发,如果有下发,那可以初步判定是客户端的问题。2、如果数据没有下发,那可以初步判定是服务端的问题。也就是狭义上的,后端的问题。3、如果判定是后端的问题的话,我们看一下,数据库是否有写入数据,如果数据未被写入,那可能是后台的数据未被写入进数据库。应该就是后台的问题了 4、如果排查出,数据库有写入数据,那可以断定,就是服务端的问题。初步可以看一下,工程是否正常启动、或者对应的包是否被覆盖了,如果都是正常的,那就查看日志吧,通过查看日志的方式,再进一步的排查问题。

      总结一下,卡片未配置生效的话,有以下几个原因:

1、后台数据没有写到数据库(记得找后台小哥哥处理喔)

2、多机房数据同步异常(就可能出现每个机房的数据库的数据不一样,可能北方机房有卡片的数据,但是没有同步到南方机房,然而我们请求可能是北方,也可能是南方,这样到南方机房的请求因为没有相关数据,就不会显示相应的卡片。)

大白问题:为啥要搞多机房?

成子解答:机房的服务保持一致,等于多个备份容错,哪个机房出问题了,可以立即切换到其他的机房。

大白问题:为啥会存在多机房的数据库的数据不一样的情况呢?

成子解答:后台配置写入数据库,只会往一个机房的数据写入,然后再同步到另外的几个机房。这个同步就可能会出问题。一般的同步的速度很快,不会有影响,出问题的话,很可能是同步框架出了bug,导致数据没有同步过去。

3、数据有效性问题(比如,卡片配置了跳转活动,但是活动过期了,那卡片就算“无效”,就会被服务端过滤掉)

4、缓存的问题。(比如,卡片配置好了,也发布成功了,但是服务端的整个工程存在严重的缓存问题,使得没有及时刷新过来。客户端有客户端的缓存,服务端也有服务端的缓存机制。)

今天,我来简单讲一下服务端的缓存机制

问题根因:如果服务运行起来需要很多很多外部数据,这些外部数据存在数据库/配置中心,平时很少会变动每次有请求过来,都去拉取一次数据,这个过程就很长,而且对数据库/配置中心的压力也是极其大的。

改善措施:为了省事,把这些数据在本地也存一份的话,定时去刷新就好了。比如说,你在首页配置了一张新卡片,审核发布后,就写进了数据库,这个时候请求首页,服务端就会从数据库读取到首页卡片的信息,这样才能组装卡片信息。但不是每次请求服务端都会去数据库读首页卡片信息,服务端会选择缓存卡片信息在本地。这样做的目的就是省事省心,从而大大的减小数据库的压力。

缓存方式,大致分为两种:1、主动定时刷新,定时加载所有页面的信息 2、被动加载,比如商城,首页的请求会加载首页的信息,没有首页的请求就不会加载首页的信息。这样的话,也存在一个过期时间。对于方式1,就是定时任务的刷新时间;对于方式2:就是缓存时设定的过期时间;只有数据过期后,服务才会去数据库重新拉取数据。也就是这个时候你在后台的更新才会生效。

那以上两种缓存方式会产生什么样的问题呢?针对定时的缓存,比如五分钟加载一次数据库最新数据到缓存,也就是存在五分钟的窗口期,假如运营同学在8:00配置了卡片,下一次缓存加载是8:05,从0-5分之间,缓存的就是旧的数据。所以,研发经常说:”你等五分钟。”其实就是就是定时最长的时间啦。

综上,你秒懂了吗?

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐