深度理解微服务
Posted �欢快↑㎡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度理解微服务相关的知识,希望对你有一定的参考价值。
🥲 🥸 🤌 🫀 🫁 🥷 🐻❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 🫑 🫓 🫔 🫕 🦤 🪶 🦭 🪲 🪳 🪰 🪱 🐻❄️ 🫐 🫒 🫑 🫓 🫔 🫕
♔博主昵称:�欢快↑㎡
🕍博客主页:�欢快↑㎡的博客_CSDN博客-学习注意点杂记,BUG集,安装教程领域博主
⚇很方便的在线编辑器:Lightly
🥗感谢点赞🤞🏻评论🤞🏻收藏
相信吧!🤜🏻我们很优秀,还可以更加优秀,加油!🌼让我们一起在写作中记录巩固学习吧!
目录
高可用:关键节点越少,可用性越高,可替代性节点越多,可用性越高
获取商业机密(相隔24小时分别注册一个账号,可以通过知道每天产生多少的订单)
微服务的优点,缺点是什么?
单体项目存在的问题(当然处于成本和效率来看,单体项目还是更有优势,一般开发,是会先采用单体项目,等到必要时才会再采用微服务)
- 只能使用一种技术(包括开发语言,框架技术)
- 有多个模块的情况下,一个模块不能独立上线
- 上线后,一个模块出了问题,别的模块也不能运行(模块之间耦合性比较高)
微服务优点:
- 可以使用不同的技术栈(包括不同开发语言开发的项目模块)
- 模块之间耦合性小,可以独立上线,独立部署,独立升级
- 每个模块可以独立运行,不会影响其他的模块
- 不同模块可以使用不同数量的服务器
微服务缺点:
- 慢
- 整个体统复杂度变高
- 运维变难
- 数据一致性变难
- 单个微服务开发简单,开发效率提高,整个系统开发变复杂
微服务和单体项目区分:
微服务项目:多个微服务提供者+nacos+gateway+sentinel+链路跟踪
单体项目:一个系统的代码全放在一个project中(一般来说在开发中,就算把项目拆开,没有使用过微服务技术也算是单体项目)
高性能,高可用,高并发项目必须用微服务吗?
高可用:关键节点越少,可用性越高,可替代性节点越多,可用性越高
高性能:
高并发:
- 使用高性能技术
- 集群
- 限流
- 消息对列
- 拆key
- 每隔一段时间同步一次(不要即时同步,并发量会倍数的)
分布式id解决方案有那些?
主键自动加1 有 什么缺点?
单体项目
竟争对手获取数据( id从1开始,容易被获取数据)
获取商业机密(相隔24小时分别注册一个账号,可以通过知道每天产生多少的订单)
分布式项目
单表的数据不要超过5000万行可能会分库分表来解决
分库分表id可能会重复
实现分布式id
美团leaf是通过id段(号码段)分片提高并发
主键加1的优点是什么?
主键自动建立索引,速度快。
有了索引后,添加数据时,索引要修改,要移动索引
只有主键有索引,添加数据,索引不会发生移动
框架的高扩展如何实现?
- 多态implements接口或extends父类
- 加注解@RestController
- Aop切面,动态代理
- 责任链
- spi,反射
- 热部署
- 消息队列(开闭原则:可以用aop,多态)
- 注册中心
以上是关于深度理解微服务的主要内容,如果未能解决你的问题,请参考以下文章