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

项目架构一些注意点

考虑系统的

稳定性

一、微服务的稳定性

1、如何解决那些不稳定的因素/问题?也是常说的如何容错。

2、一个系统的高可用取决于它本身和其强依赖的组件的高可用

3、消除单点 保活机制 健康检查

注册中心如何保障稳定性

注册中心集群

微服务本身对注册信息的本地持久化
注册机制:关注下线/摘除的原因
网络抖动-->注册中心的保护机制,增量更新-->防止网络风暴

服务消费者如何保障稳定性

#### 超时机制

#### 容错机制    FailTry/FailOver/FailFast
#### 熔断   给予服务提供者一定的恢复时间,等服务提供者恢复正常后再发起调用。这种保护机制大大降低了链式异常引起的服务雪崩的可能性
#### 隔离    隔离资源
#### 降级

服务提供者如何保障稳定性

限流

重启与回滚

服务由于Bug不能提供服务,要求消费者具备容错措施:熔断/降级,在运维上具备快速回滚到前一个版本的能力。

为了复盘问题,要尽力保留现场的上下文/数据,主要来自日志的收集(jvm GC/jstack,业务log )

二、功能稳定

1. 良好的代码设计:可扩展性高,不会因为一个需求导致大面积的重构

2. 测试用例覆盖率:特殊用例

3. 上线
4. 监控

三、性能稳定

限流

降级

熔断

不稳定的问题

### DB层

#### 死锁问题:概率小

#### 慢SQL查询 

1.没有索引/错误地使用索引

2.并发高:访问量大/存在共享热表

3.复杂查询:使用搜索替代

4.数据爆表:数据量增速快 观察统计日/月/年增长量

#### 解决方案

```
并发高如何解决?
时效要求不高的后台定时任务:1. 按时间维度隔离 2.数量分片:任务分发
实时性高的交互:缓存/读写分离

数据爆表如何解决?
分库分表
冷热数据归档

### 系统层面

时延或高或低:随着流量大小变化

负载不均衡

热点数据:访问倾斜

```
接口:梳理核心链路,非核心调用:同步改异步
系统:拆分业务,各业务模块高内聚,从而达成隔离

 

 

运维稳定

可扩展性

可以处理更大/更多规模的业务

功能扩展

应用扩展

硬件扩展

 

http://www.lryc.cn/news/62928.html

相关文章:

  • Forefront GPT-4免费版:开启无限畅聊时代,乐享人工智能快感,无限制“白嫖”,还能和N多角色一起聊天?赶紧注册,再过些时间估计就要收费了
  • 深入浅出 Compose Compiler(1) Kotlin Compiler KCP
  • BatchNormalization和LayerNormalization的理解、适用范围、PyTorch代码示例
  • 大数据 | 实验二:文档倒排索引算法实现
  • Java文档注释-JavaDoc标签
  • 黑盒测试过程中【测试方法】详解5-输入域,输出域,猜错法
  • Python学习之sh(shell脚本)在Python中的使用
  • 追求卓越:编写高质量代码的方法和技巧
  • MATLAB算法实战应用案例精讲-【人工智能】机器视觉(概念篇)(最终篇)
  • 【老王读SpringMVC-3】根据 url 是如何找到 controller method 的?
  • 人机交互到艺术设计及玫瑰花绘制实例
  • 多臂老虎机问题
  • DNS 查询原理详解
  • 浅谈软件测试工程师的技能树
  • 转型产业互联网,新氧能否再造辉煌?
  • CRE66365 应用资料
  • vue3快速上手学习笔记,还不快来看看?
  • HDU 5927 Auxiliary Set
  • 24:若所有参数皆需类型转换,请为此采用non-member函数
  • CMake(2)-详解-编译-安装-支持GDB-添加环境检查-添加版本号-生成安装包
  • java面试题(redis)
  • Vue组件懒加载
  • Qt音视频开发42-网络推流(视频推流/本地摄像头推流/桌面推流/网络摄像头转发推流等)
  • 更简单的存取Bean方式-@Bean方法注解
  • 边缘计算与AI布署应用电力物联网解决方案-RK3588开发平台
  • centos部署unity accelerator
  • HANA开发指南
  • 请问你见过吐代码的泡泡吗(冒泡排序)
  • 【VM服务管家】VM4.0平台SDK_2.1环境配置类
  • 最新研究:可审计的具有拜占庭鲁棒的联邦学习方案