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

企业网站 自适应跨境商城网站开发

企业网站 自适应,跨境商城网站开发,学习软件编程,1688成品网站源码下载背景 在《分布式领域扩展点设计稿》一文中,我们提到针对业务横向扩展点和纵向扩展点的编排能力。 那有这样的一种场景:针对于一次会话,同时会调很多外部服务,同时这些RPC服务会有多种直接或间接的关系,是否有更高效的…

背景

在《分布式领域扩展点设计稿》一文中,我们提到针对业务横向扩展点和纵向扩展点的编排能力。

那有这样的一种场景:针对于一次会话,同时会调很多外部服务,同时这些RPC服务会有多种直接或间接的关系,是否有更高效的方式能够让我们的一次会话时间变得更高效,同时也能够保证系统的相对稳定性呢?

设计思想

如果开发者在设计之初,对于领域边界以及子域能力划分比较清晰,那我们编排的业务扩展点就不会杂乱无章。

在SpringBoot启动时,伴随着IOC容器的初始化,领域扩展点容器也随之完成全量向量视图初始化、向量深度视图初始化、拓扑排序之后的容器初始化。

基于动态线程池思想,可以通过扩展点容器中的编排任务,动态调整线程池?根据拓扑排序后的结果,异步执行编排的任务,完成召回、过滤以及核心业务逻辑。

设计图

在这里插入图片描述

详细设计

  1. 容器初始化时,从云端配置中心拉取扩展点编排配置文件,本地编排配置文件可以做兜底,也可以调节两者权重
  2. 拿到编排数据源之后,渲染本地向量广度视图以及向量深度视图
  3. 通过Kahn算法,将两个视图清洗成拓扑排序之后的容器
  4. 通过权衡算法,初始化动态线程池,并预热核心线程
  5. 将上述操作数据上传到我们的扩展点监控中心
  6. 通过监控水位线,可动态配置线程池相关核心参数
  7. 当一次会话开始时,会通过拓扑排序,并发去执行扩展点任务
  8. 通过向量视图,可以针对所有扩展点做召回和过滤处理

核心算法伪代码

/*** Kahn算法** @author issavior*/
public class KahnTopologicalSort {/*** 向量广度视图*/private final Map<Integer, List<Integer>> adjList = new HashMap<>();/*** 向量深度视图*/private final Map<Integer, Integer> inDegree = new HashMap<>();/*** 拓扑排序结果*/private final List<Integer> topoOrder = new ArrayList<>();/*** 渲染向量视图和向量深度** @param u 向量头* @param v 向量尾*/public void addEdge(int u, int v) {// 渲染视图adjList.putIfAbsent(u, new ArrayList<>());adjList.get(u).add(v);// 更新入度  inDegree.put(v, inDegree.getOrDefault(v, 0) + 1);inDegree.putIfAbsent(u, 0);}/*** 拓扑排序** @return 业务节点顺序*/public List<Integer> topologicalSort() {Queue<Integer> queue = new LinkedList<>();// 将所有入度为0的节点加入队列  for (Map.Entry<Integer, Integer> entry : inDegree.entrySet()) {if (entry.getValue() == 0) {queue.offer(entry.getKey());}}while (!queue.isEmpty()) {int current = queue.poll();topoOrder.add(current);// 遍历当前节点的所有邻接点  for (int neighbor : adjList.getOrDefault(current, Collections.emptyList())) {// 减少邻接点的入度  int newInDegree = inDegree.get(neighbor) - 1;inDegree.put(neighbor, newInDegree);// 如果邻接点的入度变为0,则加入队列  if (newInDegree == 0) {queue.offer(neighbor);}}}// 检查是否所有节点都被访问过,若为有环图,初始化报错if (topoOrder.size() != inDegree.size()) {throw new IllegalStateException("Graph has a cycle and cannot be topologically sorted.");}return topoOrder;}
}
http://www.yayakq.cn/news/162089/

相关文章:

  • seo网站架构快速开发企业网站
  • 公司和公司网站的关系南京高端网站制作
  • dede网站头部和底部不能调用做衬衫的网站
  • 水产食品企业网站模板2024年瘟疫大爆发
  • 烟台网站制作网站连云港做网站公司
  • 建设银行杭州纪念币预约网站小红书sem是什么意思
  • 网站浏览量提升裕安区韩摆渡镇
  • 什么是网站的域名长沙有几个区
  • 苏州市住房和城乡建设局网站微信小程序游戏制作平台
  • dw如何做商业网站东莞网站推广推广软件
  • html网站的设计东莞公司展厅设计公司
  • pc 手机网站源码wordpress error 500
  • 做网站提供服务器吗网站seo方法
  • 营销型网站建设规划书学校网站的建设需求
  • 专用车网站建设价格中国设计在线网
  • wordpress 企业网站 免费下载php创建网页
  • 有保障的无锡网站制作做网站开发需要学什么软件
  • 电商网站建设的维护要多少钱花都营销型网站建设
  • 宁波市住房和城乡建设局网站建湖人才网官网登录
  • 公司内部的网站主要作用网站提高内容的丰富度创意
  • 纺织品服装网站建设优化住房和城乡建设部网站行标
  • 厦门建设局官方网站微信公众号和小程序区别
  • 广东新闻联播主持人名单seo外包公司怎么样
  • 网站建设 pdf网站空间维护
  • 深喉咙企业网站生成系统哪个网站可以帮人做ppt
  • 网站后台添加查看爬虫的痕迹手机可以开发网站
  • 谷歌站长平台做网站要学点什么
  • 企业的网站建设费用做类似电影天堂的网站违法吗
  • 手机网站多少钱一个海外推广怎么做
  • 网站空间支付方式嵌入式软件开发招聘