🦊 Java
1、Java基础
1.1 StringBuffer和StringBuilder的区别
1.2 ConcurrentHashMap和TreeMap实现原理
1.3 ArrayList和LinkedList实现原理
1.4 HashSet和TreeSet实现原理
1.5 深拷贝与浅拷贝
1.6 抽象类与接口
2、Java多线程
2.1 并发编程的三大特性
2.2 指令重排
2.3 Volatile原理
2.4 CAS原理
2.5 Java的4种引用级别
2.6 Java中的锁
2.7 Synchronized实现原理
2.8 线程池实现原理
2.9 AQS
2.10 创建线程的方式
2.11 ThreadLocal原理
3、JVM
3.1 判断对象是否存活的方法
3.2 JVM内存结构
3.3 常见的垃圾收集算法有哪些
3.4 指针碰撞和空闲列表
3.5 常见的垃圾收集器有哪些
3.6 内存溢出与内存泄漏的区别
3.7 常用的JVM启动参数有哪些
3.8 反射机制
4、NIO
4.1 概述
5、Spring
5.1 Spring IOC
5.2 Spring AOP
6、SpringBoot
6.1 SpringBoot、SpringCloud的联系与区别
-
+
tourist
register
Sign in
SpringBoot、SpringCloud的联系与区别
## 1 Spring ### 1.1 含义 1. Spring**是一个生态体系**,**包含了 Spring Framework**、**Spring Boot**、**Spring Cloud 等**(还包括 Spring Cloud Data Flow、Spring Data、Spring Integration、Spring Batch、Spring Security、Spring Hateoas),**是一站式的轻量级的 Java 开发框架**,**核心是[IoC](https://notebook.ricear.com/project-45/doc-823)**(控制反转)**和[AOP](https://notebook.ricear.com/project-45/doc-824)**(面向切面),**针对于开发的 WEB 层**(SpringMVC)、**业务层**(IoC)、**持久层**(JdbcTemplate)**等都提供了多种配置解决方案**。 ## 2 SpringBoot ### 2.1 含义 1. SpringBoot**使用了约定大于配置的理念**,**集成了多个快速开发的 Spring 插件**,**同时自动过滤不需要配置的多余的插件**,**简化了项目开发的配置流程**,**一定程度上取消了 XML 配置**,**是一套快速配置开发的脚手架**,**能快速开发单个微服务**。 ## 3 SpringCloud ### 3.1 含义 1. SpringCloud**是一套分布式服务治理的框架**,**本身不会提供具体功能性的操作**,**专注于服务之间的通讯**、**熔断**、**监控等**,**需要很多的[组件](https://notebook.ricear.com/project-45/doc-827/#3-2-%E7%BB%84%E4%BB%B6)来支持一套功能**。 2. SpringCloud**依赖于 SpringBoot 开发**,而 SpringBoot 可以独立开发。 ### 3.2 组件 #### 3.2.1 默默无闻服务 > **融合在每个微服务中**,**依赖其他组件并为其提供服务**。 1. ****Ribbon****:******客户端负载均衡******,特性有******区域亲和******、******重试机制******。 2. ****Hystrix****:******客户端容错保护******,特性有******服务降级******、******服务熔断******、******请求合并******、******依赖隔离******。 3. ****Feign****:******声明式服务调用******,******本质上就是 Ribbon + Hystrix******。 4. ****Stream****:******消息驱动******,******有 Sink******、******Source******、******Processor 三种通道******,******特性有订阅发布******、******消费组******、******消息分区******。 5. ****Bus****:******消息总线******,******配合 Config 仓库修改的一种 Stream 实现******。 6. ****Sleuth****:******分布式服务追踪******,******需要搞清楚 TraceID******、******SpanID******、******抽样******、******如何与 ELK 整合******。 #### 3.2.2 利刃独挑大梁 > **独自启动不需要依赖其他组件**。 1. **Euraka**:**服务注册中心**,特性有**失效剔除**,**服务保护**。 2. **Dashboard**:**Hystrix 仪表盘**,**监控集群模式和单点模式**,其中**集群模式需要收集器 Turbine 配合**。 3. **Zuul**:**API 服务网关**,**功能有路由分发和过滤**。 4. **Config**:**分布式配置中心**,**支持本地仓库**、**SVN**、**Git**、**Jar 包内配置等模式**。 #### 3.2.3 各司其职 > **每个组件都不是平白无故的产生的**,**是为了解决某一特定的问题而存在**。 1. **Eureka 和 Ribbon 是最基础的组件**,**一个注册服务**,**一个消费服务**。 2. **Hystrix 为了优化 Ribbon**,**防止整个微服务架构因为某个服务节点的问题导致崩溃**,**相当于一个保险丝**。 3. **Dashboard 给 Hystrix 统计和展示用的**,而且**监控服务节点的整体压力和健康情况**。 4. **Turbine 是集群收集器**,**服务于 Dashboard**。 5. **Feign 是方便我们程序员写更优美的代码的**。 6. **Zuul 是加在整个微服务最前沿的防火墙和代理器**,**隐藏微服务节点 IP 端口信息**,**加强安全保护**。 7. **Config 是为了解决所有微服务各自维护各自的配置**,**设置一个统一的配置中心**,**方便修改配置**。 8. **Bus 是因为 Config 修改完配置后各个节点都要 `refresh` 才能生效太麻烦**,**所以交给 Bus 来通知服务节点刷新配置**。 9. **Stream 是为了简化研发人员对 MQ 使用的复杂度**,**弱化 MQ 的差异性**,**达到程序和 MQ 松耦合**。 10. **Sleuth 是因为单次请求在微服务节点中跳转无法追溯**,**解决任务链日志追踪问题**。 ## 参考文献 1. [Spring、SpringBoot、SpringCloud 的关系区别](https://www.cnblogs.com/wdzhz/p/13371213.html)。 2. [springboot,springcloud 的区别](https://zhuanlan.zhihu.com/p/75118522)。
ricear
Sept. 21, 2022, 10:11 p.m.
©
BY-NC-ND(4.0)
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
share
link
type
password
Update password