项目架构一些注意点
考虑系统的
稳定性
一、微服务的稳定性
1、如何解决那些不稳定的因素/问题?也是常说的如何容错。
2、一个系统的高可用取决于它本身和其强依赖的组件的高可用
3、消除单点 保活机制 健康检查
注册中心如何保障稳定性
注册中心集群
微服务本身对注册信息的本地持久化 注册机制:关注下线/摘除的原因 网络抖动-->注册中心的保护机制,增量更新-->防止网络风暴 服务消费者如何保障稳定性
#### 超时机制
#### 容错机制 FailTry/FailOver/FailFast #### 熔断 给予服务提供者一定的恢复时间,等服务提供者恢复正常后再发起调用。这种保护机制大大降低了链式异常引起的服务雪崩的可能性 #### 隔离 隔离资源 #### 降级 服务提供者如何保障稳定性
限流 重启与回滚
服务由于Bug不能提供服务,要求消费者具备容错措施:熔断/降级,在运维上具备快速回滚到前一个版本的能力。
为了复盘问题,要尽力保留现场的上下文/数据,主要来自日志的收集(jvm GC/jstack,业务log )
二、功能稳定
1. 良好的代码设计:可扩展性高,不会因为一个需求导致大面积的重构
2. 测试用例覆盖率:特殊用例
3. 上线
4. 监控
三、性能稳定
限流
降级
熔断
不稳定的问题
### DB层
#### 死锁问题:概率小
#### 慢SQL查询
1.没有索引/错误地使用索引
2.并发高:访问量大/存在共享热表
3.复杂查询:使用搜索替代
4.数据爆表:数据量增速快 观察统计日/月/年增长量
#### 解决方案
```
并发高如何解决?
时效要求不高的后台定时任务:1. 按时间维度隔离 2.数量分片:任务分发
实时性高的交互:缓存/读写分离数据爆表如何解决?
分库分表
冷热数据归档
### 系统层面
时延或高或低:随着流量大小变化
负载不均衡
热点数据:访问倾斜
```
接口:梳理核心链路,非核心调用:同步改异步
系统:拆分业务,各业务模块高内聚,从而达成隔离
运维稳定
可扩展性
可以处理更大/更多规模的业务
功能扩展
应用扩展
硬件扩展
相关文章:
项目架构一些注意点
考虑系统的 稳定性 一、微服务的稳定性 1、如何解决那些不稳定的因素/问题?也是常说的如何容错。 2、一个系统的高可用取决于它本身和其强依赖的组件的高可用 3、消除单点 保活机制 健康检查 注册中心如何保障稳定性 注册中心集群 微服务本身对注册信息的本地持…...
Forefront GPT-4免费版:开启无限畅聊时代,乐享人工智能快感,无限制“白嫖”,还能和N多角色一起聊天?赶紧注册,再过些时间估计就要收费了
目录 前言注册登录方式应用体验聊天体验绘图体验 “是打算先免费后收费吗?”建议其它资料下载 前言 近期,人工智能技术迎来重大飞跃,OpenAI的ChatGPT等工具成为全球数亿人探索提高生产力和增强创造力的新方法。人们现在可以使用人工智能驱动…...
深入浅出 Compose Compiler(1) Kotlin Compiler KCP
前言 Compose 的语法简洁、代码效率非常高,这主要得益于 Compose Compiler 的一系列编译期魔法,帮开发者生成了很多样板代码。但编译期插桩也阻碍了我们对于 Compose 运行原理的认知,想要真正读懂 Compose 就必须先了解它的 Compiler。本系列…...
BatchNormalization和LayerNormalization的理解、适用范围、PyTorch代码示例
文章目录 为什么要NormalizationBatchNormLayerNormtorch代码示例 学习神经网络归一化时,文章形形色色,但没找到适合小白通俗易懂且全面的。学习过后,特此记录。 为什么要Normalization 当输入数据量级极大或极小时,为保证输出数…...
大数据 | 实验二:文档倒排索引算法实现
文章目录 📚实验目的📚实验平台📚实验内容🐇在本地编写程序和调试🥕代码框架思路🥕代码实现 🐇在集群上提交作业并执行🥕在集群上提交作业并执行,同本地执行相比即需修改…...
Java文档注释-JavaDoc标签
标签含义author指定作者{code}使用代码字体以原样显示信息,不处理HTML样式deprecated指定程序元素已经过时{docRoot}指定当前文档的根目录路径exception标识由方法或构造函数抛出的异常{inheritDoc}从直接超类中继承注释{link}插入指向另外一个主题的内联链接{linkp…...
黑盒测试过程中【测试方法】详解5-输入域,输出域,猜错法
在黑盒测试过程中,有9种常用的方法:1.等价类划分 2.边界值分析 3.判定表法 4.正交实验法 5.流程图分析 6.因果图法 7.输入域覆盖法 8.输出域覆盖法 9.猜错法 黑盒测试过程中【测试方法】讲解1-等价类,边界值,判定表_朝一…...
Python学习之sh(shell脚本)在Python中的使用
文章目录 前言一、sh是什么?二、使用步骤1.安装2.使用示例3.使用sh执行命令4.关键字参数5.查找命令6.Baking参数 前言 本文章向大家介绍[Python库]分析一个python库–sh(系统调用),主要内容包括其使用实例、应用技巧、基本知识点…...
追求卓越:编写高质量代码的方法和技巧
本文讨论了编写高质量代码的重要性,并详细介绍了高质量代码的特征、编程实践技巧和软件工程方法论。通过遵循这些原则和实践,程序员可以编写出更稳定、可维护和可扩展的代码。 一、 前言 写出高质量代码是每个程序员的追求和目标。高质量的代码可以使程…...
MATLAB算法实战应用案例精讲-【人工智能】机器视觉(概念篇)(最终篇)
目录 前言 几个高频面试题目 如何评价一个光源的好坏? 如何依靠光源增强图像对比度?...
【老王读SpringMVC-3】根据 url 是如何找到 controller method 的?
前面分析了 request 与 handler method 映射关系的注册,现在再来分析一下 SpringMVC 是如何根据 request 来获取对应的 handler method 的? 可能有人会说,既然已经将 request 与 handler method 映射关系注册保存在了 AbstractHandlerMethodMapping.Ma…...
人机交互到艺术设计及玫瑰花绘制实例
Python库之图形用户界面 Riverbank Computing | Introduction Welcome to wxPython! | wxPython Overview — PyGObject Python库之游戏开发 https://www.pygame.org/news Panda3D | Open Source Framework for 3D Rendering & Games python.cocos2d.org Python库之…...
多臂老虎机问题
1.问题简介 多臂老虎机问题可以被看作简化版的强化学习问题,算是最简单的“和环境交互中的学习”的一种形式,不存在状态信息,只有动作和奖励。多臂老虎机中的探索与利用(exploration vs. exploitation)问题一直以来都…...
DNS 查询原理详解
DNS(Domain Name System)是互联网上的一种命名系统,它将域名转换为IP地址。在进行DNS查询时,先要明确需要查询的主机名,然后向本地DNS服务器发出查询请求。 1. 本地DNS服务器查询 当用户在浏览器中输入一个URL或者点…...
浅谈软件测试工程师的技能树
软件测试工程师是一个历史很悠久的职位,可以说从有软件开发这个行业以来,就开始有了软件测试工程师的角色。随着时代的发展,软件测试工程师的角色和职责也在悄然发生着变化,从一开始单纯的在瀑布式开发流程中担任测试阶段的执行者…...
转型产业互联网,新氧能否再造辉煌?
近年来,“颜值经济”推动医美行业快速发展,在利润驱动下,除了专注医美赛道的企业之外,也有不少第三方互联网平台正强势进入医美领域,使以新氧为代表的医美企业面对不小发展压力,同时也展现出强大的发展韧性…...
CRE66365 应用资料
CRE66365是一款高度集成的电流模式PWM控制IC,为高性能、低待机功耗和低成本的隔离型反激转换器。在正常负载条件下,AC输入高电压下工作在QR模式。为了最大限度地减少开关损耗,QR 模式下的最大开关频率被内部限制为 77kHz。当负载较低时&#…...
vue3快速上手学习笔记,还不快来看看?
Vue3快速上手 1.Vue3简介 2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王)耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址:https://github.com/vuejs/vue-next/release…...
HDU 5927 Auxiliary Set
原题链接: https://acm.hdu.edu.cn/showproblem.php?pid5927 题意: 有一颗根节点是1的树,其中有重要的点和不重要的点,重要的点需满足以下两个条件至少一个: 1.本来就是重要的点 2.是两个重要的点的最近共同祖先 有t…...
24:若所有参数皆需类型转换,请为此采用non-member函数
令class支持隐式类型转换通常是个糟糕的主意。 这条规则有其例外,最常见的例外是在建立数值类型时。 例,假设你设计一个class用来表现有理数,则允许整数“隐式转换”为有理数就很合理。 class Rational{ public:Rational(int numerator0,i…...
SiameseUIE中文-base效果对比:在CLUE-NER和COTE-ABSA双基准测试
SiameseUIE中文-base效果对比:在CLUE-NER和COTE-ABSA双基准测试 想找一个开箱即用、效果又好的中文信息抽取工具?今天我们来聊聊阿里巴巴达摩院出品的SiameseUIE中文-base模型。这可不是一个普通的模型,它是一个“通用信息抽取”模型&#x…...
从Gazebo到真实硬件:robot_state_publisher在ROS 2仿真迁移中的5个关键配置项
从Gazebo到真实硬件:robot_state_publisher在ROS 2仿真迁移中的5个关键配置项 当你在Gazebo中完成机器人运动算法的仿真验证后,下一步就是将这套系统部署到真实硬件上。这个过程中,robot_state_publisher的配置往往是工程师们最容易踩坑的环节…...
企微API集成指南——从回调到主动发送,全流程代码解析
企业微信提供了丰富的API,用于接收用户添加事件、发送消息、管理标签等。今天从实战角度,给出API集成的最佳实践,附带伪代码。一、核心API清单API用途频率限制获取access_token调用其他API的前提2000次/分钟添加外部联系人通过好友每个号300人…...
从 OpenClaw 到 ToClaw:AI 代理网关的产品化之路
定位说明:这是一篇偏“体验与选型思路”的横测笔记,不是参数党跑分,也不是安装教程。内容基于我对产品定位与常见使用路径的理解,公测策略与功能细节可能会随版本变化。 01|OpenClaw 是什么?能做什么&#…...
Python智能内存管理策略深度评测(CPython 3.9–3.12全版本横评):谁真正降低了47.6% OOM风险?
第一章:Python智能内存管理策略深度评测总览Python 的内存管理并非由开发者手动控制,而是依托于一套高度集成的智能机制——包括引用计数、循环垃圾回收器(gc 模块)以及内存池(pymalloc)三层协同体系。这种…...
AI 搜索时代,GEO 为何成为企业数字化营销的新标配?
当生成式 AI 全面渗透搜索场景,用户获取信息的方式从 “主动检索筛选” 转向 “AI 精准回答推荐”,传统 SEO 的流量逻辑正在被彻底重构,GEO(AI 搜索生成引擎优化)已然成为企业营销的新赛道。在 AI 搜索成为用户信息获取…...
郭老师-悟性高的人,为何不合群?
悟性高的人,为何不合群? ——他们在独处中,与道同行“你以为他孤独, 其实—— 他正与万物对话。”🌿 不合群,不是缺陷, 而是—— 为悟性留出呼吸的空间。🧘 一、独处 ≠ 孤独&#x…...
像素剧本圣殿新手指南:RPG对话框系统理解AI输出逻辑与修改技巧
像素剧本圣殿新手指南:RPG对话框系统理解AI输出逻辑与修改技巧 1. 认识像素剧本圣殿的RPG对话框系统 像素剧本圣殿的RPG对话框系统是其最具特色的交互界面,它模拟了经典像素游戏中NPC对话的场景。这个系统不仅仅是视觉上的复古设计,更是AI剧…...
大多数人用AI还是“一次性聊天” Claude Cowork却让你把重复工作彻底扔上自动驾驶
花大价钱开了Claude Pro,每天扔进去一句“帮我写文案”“帮我优化内容”,结果用完就关窗口,下次还是从零开始?重复任务永远在偷走你的注意力,脑子里永远挂着“待办事项”这个隐形标签,效率看起来提升了&…...
intv_ai_mk11多场景落地:覆盖内容运营、教育辅助、行政办公等6大方向
intv_ai_mk11多场景落地:覆盖内容运营、教育辅助、行政办公等6大方向 1. 模型介绍与核心能力 intv_ai_mk11是一款基于Llama架构的中等规模文本生成模型,特别适合处理通用问答、文本改写、解释说明和简短创作等任务。这个模型已经完成了本地部署优化&am…...
