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

深度理解微服务

🥲 🥸 🤌 🫀 🫁 🥷  🐻‍❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 🫑 🫓 🫔 🫕 🦤 🪶 🦭 🪲 🪳 🪰 🪱 🐻‍❄️ 🫐 🫒 🫑 🫓 🫔 🫕

 ♔博主昵称:�欢快↑㎡

🕍博客主页:�欢快↑㎡的博客_CSDN博客-学习注意点杂记,BUG集,安装教程领域博主

⚇很方便的在线编辑器:Lightly

🥗感谢点赞🤞🏻评论🤞🏻收藏

相信吧!🤜🏻我们很优秀,还可以更加优秀,加油!🌼让我们一起在写作中记录巩固学习吧!


目录

微服务的优点,缺点是什么?

微服务优点:

微服务缺点:

微服务和单体项目区分:

高性能,高可用,高并发项目必须用微服务吗?

高可用:关键节点越少,可用性越高,可替代性节点越多,可用性越高

高性能:

高并发:

分布式id解决方案有那些?

主键自动加1 有 什么缺点?

单体项目

竟争对手获取数据(   id从1开始,容易被获取数据)

获取商业机密(相隔24小时分别注册一个账号,可以通过知道每天产生多少的订单)

分布式项目

实现分布式id

主键加1的优点是什么?

框架的高扩展如何实现?


微服务的优点,缺点是什么?

单体项目存在的问题(当然处于成本和效率来看,单体项目还是更有优势,一般开发,是会先采用单体项目,等到必要时才会再采用微服务)

  1. 只能使用一种技术(包括开发语言,框架技术)
  2. 有多个模块的情况下,一个模块不能独立上线
  3. 上线后,一个模块出了问题,别的模块也不能运行(模块之间耦合性比较高)

微服务优点:

  1. 可以使用不同的技术栈(包括不同开发语言开发的项目模块)
  2. 模块之间耦合性小,可以独立上线,独立部署,独立升级
  3. 每个模块可以独立运行,不会影响其他的模块
  4. 不同模块可以使用不同数量的服务器

微服务缺点:

  1. 整个体统复杂度变高
  2. 运维变难
  3. 数据一致性变难
  4. 单个微服务开发简单,开发效率提高,整个系统开发变复杂

微服务和单体项目区分:

微服务项目:多个微服务提供者+nacos+gateway+sentinel+链路跟踪

单体项目:一个系统的代码全放在一个project中(一般来说在开发中,就算把项目拆开,没有使用过微服务技术也算是单体项目)


高性能,高可用,高并发项目必须用微服务吗?

高可用:关键节点越少,可用性越高,可替代性节点越多,可用性越高

高性能:

  1. 用缓存
  2. 减少关键节点
  3. 设置cpu频率
  4. nginx进程与cpu内核进行绑定(进程结束的话可能会切换内核,降低效率)
  5. 调整linux,tomcat,mysql参数
  6. 读写分离
  7. 静态化

高并发:

  1. 使用高性能技术
  2. 集群
  3. 限流
  4. 消息对列
  5. 拆key
  6. 每隔一段时间同步一次(不要即时同步,并发量会倍数的)

分布式id解决方案有那些?

主键自动加1 有 什么缺点?

单体项目

  1. 竟争对手获取数据(   id从1开始,容易被获取数据)

  2. 获取商业机密(相隔24小时分别注册一个账号,可以通过知道每天产生多少的订单)

分布式项目

单表的数据不要超过5000万行可能会分库分表来解决

分库分表id可能会重复

实现分布式id

美团leaf是通过id段(号码段)分片提高并发

主键加1的优点是什么?

主键自动建立索引,速度快。

有了索引后,添加数据时,索引要修改,要移动索引

只有主键有索引,添加数据,索引不会发生移动


框架的高扩展如何实现?

  1. 多态implements接口或extends父类
  2. 加注解@RestController
  3. Aop切面,动态代理
  4. 责任链
  5. spi,反射
  6. 热部署
  7. 消息队列(开闭原则:可以用aop,多态)
  8. 注册中心

相关文章:

  • 在 ABAP 开发工具运行时错误显示界面里植入思否猫
  • Matlab激光雷达相机联合标定经验分享
  • JVM<二>JVM调优(你想要的调优都在这里了)
  • Flowable监听器动态调用Springcloud接口
  • 数字电路和模拟电路-3二极管与三极管、基本逻辑运算
  • 机器学习——BP神经网络详细介绍及案例Python代码实现
  • 了解如何通过 UltraEdit丨UEStudio 中的窗口停靠系统显示、控制和配置文件选项卡
  • Flutter SDK 自带的 10 个最有用的 Widget
  • 计算机网络-应用层篇-HTTP协议
  • Kafka 认证二:ScramLoginModule 认证及 Java 连接测试
  • 1024程序员节主题征文 | 程序员节节日祝福语大全
  • 【DETR 论文解读】End-to-End Object Detection with Transformer
  • 分类和回归-决策树算法(ID3、C4.5和CART)
  • JSP综合测评管理系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc
  • 【微服务】如何实现微服务集群的高可靠?
  • Apache Spark Streaming 使用实例
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • HTML-表单
  • JS笔记四:作用域、变量(函数)提升
  • laravel with 查询列表限制条数
  • leetcode-27. Remove Element
  • log4j2输出到kafka
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • unity如何实现一个固定宽度的orthagraphic相机
  • win10下安装mysql5.7
  • 从零搭建Koa2 Server
  • 鱼骨图 - 如何绘制?
  • 源码安装memcached和php memcache扩展
  • 转载:[译] 内容加速黑科技趣谈
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 昨天1024程序员节,我故意写了个死循环~
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #NOIP 2014# day.2 T2 寻找道路
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (ZT)薛涌:谈贫说富
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (强烈推荐)移动端音视频从零到上手(上)
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • .net core Swagger 过滤部分Api
  • .net6使用Sejil可视化日志
  • .NET命名规范和开发约定
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .NET与 java通用的3DES加密解密方法
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /etc/sudoer文件配置简析
  • @RequestMapping 的作用是什么?
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [Android View] 可绘制形状 (Shape Xml)
  • [Android]How to use FFmpeg to decode Android f...
  • [APUE]进程关系(下)