菜单设计制作网站哈尔滨的网络优化能做么

bicheng/2026/1/23 22:13:35/文章来源:
菜单设计制作网站,哈尔滨的网络优化能做么,彩票网站建设基本流程,安徽龙山建设有限公司网站前言通过前面的几篇文章#xff0c;讲解了一个短信服务的架构设计与实现。然而初始方案并非100%完美的#xff0c;我们仍可以对该架构做一些优化与调整。同时我也希望通过这篇文章与大家分享一下#xff0c;我的架构设计理念。源码地址#xff1a;https://github.com/SkyCh… 前言通过前面的几篇文章讲解了一个短信服务的架构设计与实现。然而初始方案并非100%完美的我们仍可以对该架构做一些优化与调整。同时我也希望通过这篇文章与大家分享一下我的架构设计理念。源码地址https://github.com/SkyChenSky/Sikiro.SMS/tree/optimize 与之前的是另外的分支架构是设计的还是演变的架构该词出自于建筑学。软件架构定义是指软件系统的基础结构是系统中的实体及实体服务之间的关系所进行的抽象描述。而架构设计的目的是为了解决软件系统复杂度带来的问题。复杂度系统复杂度主要有下面几点高可用高性能可扩展安全性维护成本用户规模业务规模系统的复杂度导致的直接原因是业务规模。为了用户流畅放心的使用产品不得不提高系统性能与安全。当系统成为人们生活不可缺一部分时避免机房停电、挖掘机挖断电缆导致的系统不可用不得不去思考同城跨机房同步、异地多活的高可用方案。答案并非二选一我认为架构需要在已知可见的业务复杂度与用户规模的基础上进行架构设计伴随着技术积累与成长而对系统进行架构优化用户的日益增长业务的不断扩充迫使了系统的复杂度增加为了解决系统带来新的复杂度而进行架构演变。因此架构方案是在已有的业务复杂度、用户规模、技术积累度、人力时间成本等几个方面的取舍决策后的结果体现。原架构缺点分析一般情况下调度任务轮询数据库90%的动作是无用功频繁的数据库访问会对数据库增加不少压力。为了让调度任务服务进行轮循数据需要在API优先进行数据持久化这无疑是降低了API的性能。MongoDB的Update操作相比于Insert操作时低效的对于日志类数据应增量添加。因此从上述可见调度任务服务这块是优化关键点所在。新架构图使用了RabbitMQ的队列定时任务代替调度任务来实现定时发送。抛弃了调度任务减少了调用链同时也减少了应用服务数据量。对SMS集合在MongoDB里进行按年月的时间划分对于日志类数据可以在有效的时间范围外进行方便的归档、删除。同时也避免了同集合的数据量过大导致的查询效率缓慢。队列定时任务RabbitMQ自身并没有定时任务然而可以通过消息的Time-To-Live过期时间与Dead Letter Exchange死信交换机的结合模拟定时发布的功能。具体原理如下生产者发布消息并发布到已申明消息过期时间TTL的缓存队列非真正业务消费队列消息在缓存队列等待消息过期然后由Dead Letter Exchange将消息重新分配到实际消费队列消费者再从实际消费队列消费并完成业务  Dead Letter ExchangeDead Letter Exchange与平常的Exchange无异主要用于消息死亡后通过Dead Letter Exchange与x-dead-letter-routing-key重新分配到新的队列进行消费处理。消息死亡的方式有三种消息进入了一条已经达到最大长度的队列消息因为设置了Time-To-Live的导致过期消息因basic.reject或者basic.nack动作而拒绝Time-To-Live两种消息过期的方式队列申明x-message-ttl参数var args new Dictionarystring, object(); args.Add(x-message-ttl, 60000); model.QueueDeclare(myqueue, false, false, false, args);每条消息发布声明Expiration参数RabbitMQ.Client队列定时任务DemoSikiro.SMS实现优化上面介绍了队列定时任务基本原理然而我们需要自己的项目进行修改优化。API消息发布EasyNetQ是一款非常良好使用性的RabbitMQ.Client封装。对队列定时任务他也已经提供了相应的方法FuturePublish给我们使用。然而他的FuturePublish由有三种调度方式DeadLetterExchangeAndMessageTtlSchedulerDelayedExchangeSchedulerExternalSchedulerDelayedExchangeScheduler是需要EasyNetQ项目提供的调度程序本质上也是轮询ExternalScheduler是通过使用MQ的插件。DeadLetterExchangeAndMessageTtlScheduler才是我们之前通过DEMO实现的方式在EasyNetQ组件上通过下面代码进行启用。services.RegisterEasyNetQ(_infrastructureConfig.Infrastructure.RabbitMQ, a {a.EnableDeadLetterExchangeAndMessageTtlScheduler();});下面代码是Sikiro.SMS.Api的优化改造重发机制重发一般是请求服务超时的情况下使用。而导致这种原因的主要几点是网络波动、服务压力过大。因为前面任意一种原因都无法在短时间恢复因此对于简单的重试 类似whilei3ReSend() 是没有什么意义的。因此我们需要借助队列定时任务发送次数*延迟时间来完成有效的非频繁的重发。SMS日志集合维度SMS日志作为非必要业务的运维型监控数据在需要的时候随时可以对此进行删除或者归档处理。因此以时间年月作为集合维度可以很好的对日志数据进行管理。mongoProxy.Add(MongoKey.SmsDataBase, MongoKey.SmsCollection _ DateTime.Now.ToString(yyyyMM), model);结束经过本系列6篇的文章介绍了以短信服务为业务场景基于.net core平台的一个简单架构设计、架构优化与服务实现的实践例子。希望我的分享能帮助有需要的朋友。如果有任何好的建议请到下方给我留言。相关文章.net core实践系列之短信服务-为什么选择.net core开篇.net core实践系列之短信服务-架构设计.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现.net core实践系列之短信服务-Sikiro.SMS.Job服务的实现.net core实践系列之短信服务-Api的SDK的实现与测试原文地址: https://www.cnblogs.com/skychen1218/p/9565198.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子商务平台网站推广晚上睡不着想看点正能量

A: 题意: 给出一个矩阵表示蛋糕,矩阵中有毒草莓。我们每次可以选择一行或者一列来吃蛋糕,要保证改行该列不含有毒草莓。问我们能吃到的最多的小蛋糕快 思路: 直接枚举每一行,每一列然后吃,模拟就行。 #incl…

seo网站诊断优化流程wamp网站根目录配置

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 1.安装pytorch以及anaconda配置 尽量保持默认的通道,每次写指令把镜像地址写上就行。 defaults优先级是最低的&#…

做淘宝客网站赚钱吗龙岩网站建设全包

说到聚集索引,我想每个码农都明白,但是也有很多像我这样的伪程序员,只能用死记硬背来解决这个问题,什么表中只能建一个聚集索引,然后又扯到了目录查找来帮助读者记忆。。。。问题就在这里,我们不是学文科&a…

灵犀科技 高端网站建设首页某网站栏目策划

一、日志数据和指标数据怎么区别? 日志数据和指标数据是两种常用的监控数据。它们的区别主要体现在以下几个方面: 数据格式:日志数据通常是文本格式的,而指标数据通常是数字格式的。数据内容:日志数据通常记录了系…

建设网站代码重庆市建设考试报名网站

我们之前的博客文章“我们最讨厌的 PostgreSQL 部分”讨论了大家最喜欢的 DBMS 多版本并发控制 (MVCC) 实现所带来的问题。其中包括版本复制、表膨胀、索引维护和真空管理。本文将探讨针对每个问题优化 PostgreSQL 的方法。 尽管 PostgreSQL 的 MVCC 实现是 Oracle 和 MySQL 等…

设计本网站做返利网站能赚钱

glide性能优化实战 前言 项目使用glide加载图片之前也只是会基本api,这次项目有非常多的图片需要展示,而且设备是一个android12的版本,但是性能不太理想,分给APP的资源不太多,所以需要优化现有图片加载逻辑,读者可以…

涂料增稠剂移动网站建设公司食品网站策划

目录 序言向量的定义线性组合、张成空间与向量基线性变换和矩阵线性复合变换与矩阵乘法三维空间的线性变换行列式矩阵的秩和逆矩阵维度变换点乘叉乘基变换特征值和特征向量抽象向量空间 序言 欢迎阅读这篇关于线性代数的文章。在这里,我们将从一个全新的角度去探索线…

网站主页的要素深圳市罗湖区住房和建设局网站

hive管理之ctl方式 hivehive --service clictl命令行的命令 #清屏 Ctrl L #或者 ! clear #查看数据仓库中的表 show tabls; #查看数据仓库中的内置函数 show functions;#查看表的结构 desc表名 #查看hdfs上的文件 dfs -ls 目录 #执行操作系统的命令 !命令…

珠海网站建设在哪里网站能用到管理后台上吗

Transformer目录:《Transformer Paper》1.0 CV Transformer必读论文5篇_汉卿HanQ的博客-CSDN博客 前文参考:Transformer1.0-预热_汉卿HanQ的博客-CSDN博客 全文1w3字左右,按照论文翻译个人理解精读,如果对你有所帮助,欢迎点个赞哦&#xff…

做外贸的几个网站在线动画手机网站模板

目录 详解pytorch中各种Loss functions binary_cross_entropy 用途 用法 参数 数学理论 示例代码 binary_cross_entropy_with_logits 用途 用法 参数 数学理论 示例代码 poisson_nll_loss 用途 用法 参数 数学理论 示例代码 cosine_embedding_loss 用途 …

关键词搜索引擎工具爱站网络营销的主要特点有哪些

晚上学习,有台灯肯定比没台灯好。只要是盏合格的、能用的台灯,都能给你一个稳定又亮堂的环境。但是有些不合格的台灯会给眼睛带来伤害,尤其是学习负担比较重的学生。那有哪些台灯是学生用着比较好用的呢? 一、学生使用护眼台灯的…

网站建设推广软件有自己的网站如何做淘宝客

具体来说,OpenGL是一个开放的图形库,它规定了每个函数应该如何执行,以及它们的输出值,但没有具体实现。它提供了渲染2D和3D图形的标准或规范。 GLEW,全称OpenGL Extension Wrangler Library,是一个用于管理…

网站优化 方案如何做虚拟币交易网站

1、public —— 外部也能访问 2、private —— 只能内部(友元也可以) 3、explicit —— 只可用于声明単参构造函数。声明类的构造函数是显示调用,不是隐式。阻止调用构造函数时隐式转换(赋值初始化) 4、默认构造函数…

太原网站设计费用制作商城网站

下面是一个简单的 Python TCP 客户端示例代码,用于与之前提到的 EchoServer 进行通信: import socketserver_address (localhost, 8888)# 创建 TCP 客户端套接字 client_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:# 连接到服务器…

wordpress建站平台wordpress建设购物网站

众所周知&#xff0c;MySQL是非常重要的数据库语言&#xff0c;下面我们来回顾一下mysql的增删查改吧 MySQL创建数据库&#xff1a; CREATE DATABASE 数据库名;MySQL删除数据库&#xff1a; DROP DATABASE <database_name>; --直接删除&#xff0c;不检查是否存在 DROP…

拆分盘网站建设网站地图用法

前言&#xff1a; 小弟能力不足&#xff0c;认知有限&#xff0c;难免考虑不全面&#xff0c;希望大佬能给出更好的建议&#xff0c;指出存在的问题和不足&#xff0c;在此跪谢。 IO发展史 Java中对于I/O能力的支持主要分为三个比较关键的阶段&#xff1a; BIO 第一个阶段…

企业网站建设 全包吉林省城乡建设厅网站6

关于串的相关定义&#xff1a; 串&#xff1a;用‘ ’表示的字符序列空串&#xff1a;包含零个字符的串子串&#xff1a;包含传本身和空串的子串 eg: abc(,a,b,c,ab,bc,ac,abc)共7个&#xff1a;串的长度的阶乘1&#xff08;空串&#xff09;真子串&#xff1a;不包含自身的所…

萧山建设局网站线上问诊网站建设

前言 最近对部分项目升级了vue-cli脚手架&#xff0c;记录一下 问题一&#xff1a; scss/less/css中无法引入public下的静态资源 问题描述 在样式文件中使用静态资源路径导致编译无法通过 错误信息如下&#xff1a; Module not found: Error: Cant resolve /img/login/lo…

优酷wordpress建站教程杭州设计公司老板被点火

题目 105. 从前序与中序遍历序列构造二叉树 分析 这道题是告诉我们一颗二叉树的前序和中序&#xff0c;让我们根据前序和中序构造出整颗二叉树。 拿到这道题&#xff0c;我们首先要知道前序的中序又怎样的性质&#xff1a; 前序&#xff1a;【根 左 右】中序&#xff1a;…

快速建站教程如何建设运输网站

【嵌入式——QT】全局定义 概念数据类型定义函数宏定义 概念 头文件包含了Qt类库的一些全局定义&#xff0c;包含基本数据类型、函数和宏&#xff0c;一般的Qt类的头文件都会包含该文件&#xff0c;所以不用显示包含这个头文件也可以使用其中的定义。 数据类型定义 数据类型…