当前位置: 首页 > news >正文

六安网站制作找哪家百度云怎么找资源

六安网站制作找哪家,百度云怎么找资源,重庆名威建设工程咨询有限公司网站,wordpress笑话背景 有了前两篇的帐号权限提取和功能设置提取的架构演进后,有一个问题就紧接着诞生了,对于诸多业务方来说,关键数据源的迁移如何在各个产品落地? 要知道这些数据都很关键: - 对于帐号,获取不到帐号信息是…

背景

有了前两篇的帐号权限提取和功能设置提取的架构演进后,有一个问题就紧接着诞生了,对于诸多业务方来说,关键数据源的迁移如何在各个产品落地?

要知道这些数据都很关键: - 对于帐号,获取不到帐号信息是无法让用户约会和入会的; - 对于权限,用户有没有某个功能,如海外加速,直播、虚拟背景,完全依赖于权限数据; - 对于功能设置,参会人入会是否要静音,是否能开启视频则取决于用户的功能设置项;

这么关键的数据,又做了如此大的调整,从业务方角度不得不考虑两个问题:

  1. 如何降低各个业务服务的接入难度?
  2. 即使各个服务都费力的将代码接入,一旦上线后发现问题如何快速补救?

这是一个全局性的问题,需要统一考虑,否则之前看似合理的架构优化却可能因为对接时的实际困难而落不了地。

也就是这些非功能层面的问题,却有可能让一个架构优化中途夭折,我们需要从软件工程层面解决这些问题。

2. 思路

从业务对接的角度来看,我们要解决两个典型问题:

  • 如何减少对接的工作量;
  • 如何降低对接后的上线风险;

这两个问题,我们通过以下4步来解决。

2.1 代码调用归一化处理

当系统中各个业务层都直接访问DB时,我们是很难作数据源调整的,所以我们首先要作的是:数据访问的归一化处理。简单讲:就是把业务层对DB的访问收扰到一个公共库中,包括两个层面:

  1. 服务内部,所有业务接口访问帐号设置类数据都通过公共库来访问;
  2. 系统层面,所有服务访问帐号设置类数据都通过公共库来访问;

如下图所示:

在这个收拢的过程中我们主要做几件事:

  1. 统一封装数据的访问接口,各个业务都走相同的接口来访问数据;
  2. 统一数据格式,例如:所有业务访问帐号都返回同一套数据结构体;
  3. 数据源没有改变,但各个服务由直接依赖DB改为依赖公共库;

2.2 接入新数据源

作了代码调用的归一化处理后,我们接入新数据源基本只需要改动公共库。具体工作为:

  • 抽象一套数据访问的接口,让新数据源和老数据源都实现同一套接口;
  • 从新数据源获取到数据后,可能需要做下数据格式的转换,让新、老数据源返回的数据格式统一;

抽象接口定义类图如下所示:

这套接口,屏蔽了老数据源和新数据源的获取差异,这样业务服务接入新数据源的工作量能降到最小。

2.3 快速回退支持

通过前面两步,公共库已经提供了新、老两套数据访问接口,业务方可能只需要一行代码改动做个选择即可。这里我们想讨论的一个问题是:当接入新数据源上线后,发现问题如何处理?

  • 第一种选择:把版本回退,回退到老数据源的版本,这会带来其它修改(如客户故障修复)也被牵连回退;
  • 第二种选择:我们做一个配置开关,通过修改配置,快速回退到老版本,其它修改都不受影响;

不难发现,第二种方式明显更稳妥,配置简单示意如下:

# AccountStore的实现版本选择
AccountStoreMode = v2

可能还需要在AccountStore的初始化代码中作一点改动来支持版本选择,比较简单,这里就不示例了。

2.4 降级处理

回退主要是解决已经出故障后如何快速恢复的问题,也就是不论我们恢复多快,至少已经有一部分用户受到了影响,那是否有什么办法来避免故障发生呢?

有,我们可以做数据获取的降级处理,做法也比较简单:当从新数据源获取不到时,可以尝试从老数据源再获取一次。

有同学可能有疑问:降级会不会带来数据的正确性问题?

确实有一定的概率,用户的帐号权限已经在新数据源发生变更,降级访问老数据获取到的还是旧数据,如果用户正好要使用依赖此权限项的功能,则有一定概率与用户预期不符。

但是问题在于:当面临帐号都获取不到的产品可用性问题时,个别功能是否符合预期这类局部问题,还有那么重要吗?而且还是一定概率。

这时候我们就要做权衡,评估哪个问题带来的影响更小,两害取其轻。

软件开发中往往很难有完美的方案,有时候因为技术复杂度,有时候因为成本,这时候做权衡就很重要,选一个我们能够掌控团队有能力实施结果有一点折扣但也能接受的方案,往往更实用。

小结

本文以前面两篇文章账号权限提取和功能设置提取为背景,介绍了当外部依赖发生变化时,如何及时调整业务服务的结构设计。通过引入外部依赖防腐层,来减化架构调整带来的对接工作量,并降低对接新数据源的上线风险。

在软件设计中,防腐层往往被描述为一个适配器,用以将外部依赖和内部业务逻辑解耦。还是之前那个观点,名称叫什么不重要,重在能用它解决项目中的实际问题。

防腐层的适用范围远不止于此,其实从长远角度考虑,产品系统中很多模块都应该设计外部依赖防腐层,像数据库、外部服务接口、消息队列、缓存等。这些看似稳定不变的基础设施,却会在某天因为一个市场风向或客户需求,而被公司要求果断的替换掉,例如:信创带来的技术国产化浪潮……

参考阅读

  • 从帐号权限提取的视角来看架构演进
  • 从功能设置提取的视角来看架构演进
http://www.mnyf.cn/news/40828.html

相关文章:

  • 酷炫网站设计seo优化的基本流程
  • 做贺卡的网站网络营销公司
  • 博客社区类网站模板下载百度图片识别搜索
  • 网站建设合同内容临沂seo公司
  • 做网站的电销话术windows优化大师卸载不了
  • 政府网站建设 服务群众下载百度安装到桌面
  • 福州企业制作网站企业邮箱登录
  • 网站建设平台还有没有趋势网络推广宣传方式
  • 已经收录大规模修改收录页面对网站有影响吗百度快照查询入口
  • 深圳网站设计比较好的公司有哪些搜索引擎有哪些网站
  • 钓鱼网站查询系统福州seo优化排名推广
  • 携程旅游网站官网临沂seo代理商
  • 做网站和编程百度搜索引擎竞价排名
  • google建设网站赚钱怎么建立企业网站
  • 网站权重下降原因免费优化推广网站的软件
  • 怎么制作网站封面百度网盘在线观看资源
  • 工程房地产行业一条龙网站域名是什么意思呢
  • 江北网站建设的技术上海广告推广
  • 万州哪里有做网站的企业培训体系
  • 网站互动功能自动app优化下载
  • 汕头制作企业网站各大引擎搜索入口
  • 营销策划的重要性北京seo诊断
  • 免费送的广告怎么在网站上做软文发布平台有哪些
  • wordpress朗读功能公司网站优化方案
  • 烟台公司建网站seo网站优化培训要多少钱
  • 用自己电脑做网站的空间有哪些网页设计公司
  • 在国外的网站做推广方案qq群引流推广平台
  • 如何申请一个网站 做视频直播今天有哪些新闻
  • 南京企业自助建站系统郑州网络推广服务
  • 承接网站建设广告语免费的发帖收录网站