深度理解微服务

🥲 🥸 🤌 🫀 🫁 🥷 🐻‍❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 🫑 🫓 🫔 🫕 🦤 🪶 🦭 🪲 🪳 🪰 🪱 🐻‍❄️ 🫐 🫒 🫑 🫓 🫔 🫕
♔博主昵称:�欢快↑㎡
🕍博客主页:�欢快↑㎡的博客_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. 竟争对手获取数据( id从1开始,容易被获取数据)
  2. 获取商业机密(相隔24小时分别注册一个账号,可以通过知道每天产生多少的订单)

分布式项目 单表的数据不要超过5000万行可能会分库分表来解决
分库分表id可能会重复

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

主键自动建立索引,速度快。
有了索引后,添加数据时,索引要修改,要移动索引
只有主键有索引,添加数据,索引不会发生移动

框架的高扩展如何实现?

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

Original: https://blog.csdn.net/qq_55112725/article/details/127443477
Author: �欢快↑㎡
Title: 深度理解微服务

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/786202/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球