深度理解微服务

这篇具有很好参考价值的文章主要介绍了深度理解微服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

 ♔博主昵称:�欢快↑㎡

🕍博客主页:�欢快↑㎡的博客_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的优点是什么?

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

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

只有主键有索引,添加数据,索引不会发生移动文章来源地址https://www.toymoban.com/news/detail-796806.html


框架的高扩展如何实现?

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

到了这里,关于深度理解微服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java反射机制,动态代理,hook以及在Retrofit源码中的应用

    1.反射的基础知识: Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机

    2024年02月13日
    浏览(42)
  • java语法(二)线程并发、Juit单元测试、反射机制、注解、动态代理、XML解析、JVM

    正则表达式验证网站 1、 ? :表示前边这个字符可以出现0次或者1次。例如下边 /used? 既可以匹配 use 也可以匹配 used 。 2、 * :匹配0个或者多个字符, * 号代表前边这个字符可以出现0次或者多次。例如 /ab*c 可以匹配 ac、abc、abbbbc 3、 + :与 * 号不同的是, + 需要前面这个字符

    2024年02月06日
    浏览(49)
  • Java反射、代理机制

    官方解释:反射允许对封装类的字段、方法和构造方法的信息进行编程访问。 虚拟机加载类文件后,会在方法区生成一个类对象,包含了类的结构信息,如字段、方法、构造方法等。反射是一种能够在程序运行时动态访问、修改类对象中任意属性的机制(包括private属性)。

    2024年02月10日
    浏览(43)
  • 通俗易懂 快速理解 JDK动态代理 和 cglib动态代理

    动态代理的实现方案有两种, JDK动态代理 和 CGLIB动态代理 ,区别在于JDK自带的动态代理,必须要有接口,而CGLIB动态代理有没有接口都可以。 JDK动态代理 :JDK原生的实现方式,需要被代理的目标类必须实现接口。因为这个技术要求 代理对象和目标对象实现同样的接口 (兄

    2024年02月08日
    浏览(47)
  • Java关于反射的理解

    Reflection(反射)是被视为 动态语言 的关键,反射机制允许程序在 执行期借助于 Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 框架 = 反射 + 注解 + 设计模式。 ➢在运行时判断任意–个对象所属的类 ➢在运行时构造任意-一个类的对象 ➢在运行

    2024年02月10日
    浏览(31)
  • 反射机制-体会反射的动态性案例(尚硅谷Java学习笔记)

    // 举例01 public class Reflect{ } 案例:榨汁机榨水果汁,水果分别有果(com.reflect.Apple)、香蕉(Banana)、桔子(Orange)等。 效果如图。 提示: 1、声明(Fruit)水果接口,包含榨汁抽象方法: void squeeze(); /skwi:z/ 2、声明榨汁机(Juicer),包含运行方法: public void run(Fruit f),方法体中,调用f的榨汁方

    2024年02月11日
    浏览(45)
  • 【深度思考】聊聊JDK动态代理原理

    首先,定义一个接口: 然后,新增一个类并实现上面的接口: 假设现在有这么一个需求:在不改动以上类代码的前提下,对该方法增加一些前置操作或者后置操作。 接下来就来讲解下,如何使用 JDK动态代理 来实现这个需求。 首先,自定义一个调用处理器,实现 java.lang.r

    2023年04月17日
    浏览(39)
  • 【深度思考】聊聊CGLIB动态代理原理

    CGLIB的全称是:Code Generation Library。 CGLIB是一个强大的、高性能、高质量的代码生成类库,它可以在运行期扩展Java类与实现Java接口, 底层使用的是字节码处理框架ASM。 Github地址:https://github.com/cglib/cglib。 CGLIB的Maven坐标如下所示: 首先,新增一个类: 然后,自定义一个方法

    2023年04月21日
    浏览(33)
  • java使用@interface和反射来动态生成excel

    1、对象类上搞注解 public class ReportExecuteDetailDto {     // 项目信息     private String regionCode;         // 大区编号     @ExcelColumn(order = 0, title = \\\"大区\\\")     private String regionName;         // 大区名称          @ExcelColumn(order = 14, title = \\\"行申请金额\\\", dataType = ExcelColumn.FieldType.

    2024年02月11日
    浏览(33)
  • Spring Boot拦截器与动态代理深度剖析

    🎉欢迎来到架构设计专栏~Spring Boot拦截器与动态代理深度剖析 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:架构设计 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如果

    2024年01月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包