==
主要内容
====
第1章介绍了什么是微服务、为什么需要微服务、微服务的优缺点和面临的挑战,并且将单体架构的系统和微服务架构的系统进行了比较。
第2章主要介绍微服务应该具备的功能以及Spring Cloud的基本组件,最后介绍了SpringCloud与Dubbo、Kubernetes之间的差异。Spring Cloud作为Java语言的微服务框架,它依赖于Spring Boot,有快速开发、持续交付和容易部署等特点。Spring Cloud的组件非常多,涉及微服务的方方面面,并在开源社区Spring和Netflix、Pivotal两大公司的推动下越来越完善。
本章主要介绍Spring Cloud,将从以下方面来讲解。
-
微服务应该具备的功能。
-
Spring Cloud介绍。
-
Dubbo介绍。
-
Kubernetes介绍。
-
Spring Cloud 与Dubbo比较。
-
Spring Cloud 与 Kubernetes比较。
第3章介绍了开发环境的构建,包括JDK的安装、IDEA和Maven的使用等;
第4章介绍了Spring Boot的基本使用方法,包括Spring Boot的特点、用IDEA创建一个Spring Boot项目、Spring Boot配置文件详情、Spring Boot的Actuator模块,以及Spring Boot集成JPA、Redis和Swagger2等。
第5章服务注册和发现Eureka,“Eureka”来源于古希腊词汇,意为“发现了”。在软件领域,Eureka是Netflix在线影片公司开源的一个服务注册与发现的组件,和其他Netflix公司的服务组件(例如负载均衡、熔断器、网关等)一起,被Spring Cloud社区整合为Spring Cloud Netflix模块。
本章将从以下4个方面来讲解服务注册与发现模块Eureka。
-
Eureka简介。
-
编写一个Eureka注册和发现的例子。
-
深入理解 Eureka。
-
编写高可用的Eureka Server。
第6章负载均衡Ribbon,上一章讲述了服务注册和发现组件Eureka,同时追踪源码深入讲解了Eureka的机制,最后通过案例讲解了如何构建高可用的Eureka Server。本章讲解如何使用RestTemplate和Ribbon相结合作为服务消费者去消费服务,同时从源码的角度来深入讲解Ribbon。
第7章声明式调用Feign,在上一章中,讲解了如何使用RestTemplate来消费服务,如何结合Ribbon在消费服务时做负载均衡。本章将全面讲解Feign,包括如何使用Feign来远程调度其他服务、FeignClient的各项详细配置,并从源码的角度深入讲解Feign。
Feign受Retrofit、JAXRS-2.0和WebSocket的影响,采用了声明式API接口的风格,将Java Http客户端绑定到它的内部。Feign的首要目标是将Java Http客户端的书写过程变得简单。Feign的源码地址: https://github.com/OpenFeign/feign。
第8章熔断器Hystrix,前两章讲述了如何使用RestTemplate和Feign去消费服务,并详细地讲述了Ribbon做负载均衡的原理和Feign 的工作原理。本章将讲述如何在用RestTemplate和Feign消费服务时使用熔断器Hystrix,将从以下7个方面进行讲解。
-
什么是Hystrix。
-
Hystrix解决了什么问题。
-
Hystrix的工作原理。
-
如何在RestTemplate和Ribbon作为服务消费者时使用Hystrix。
-
如何在Feign作为服务消费者时使用Hystrix。
-
如何使用Hystrix Dashboard监控熔断器的状况。
-
如何使用Turbine聚合多个Hystrix Dashboard。
第9章路由网关Spring Cloud Zuul,前文已经讲解了Netflix的一系列组件,包括服务发现和注册组件Eureka、负载均衡组件Ribbon、声明式调用组件Feign和熔断器组件Hystrix。本章讲解Netflix构建微服务的另一个组件——智能路由网关组件Zuul。Zuul作为微服务系统的网关组件,用于构建边界服务(EdgeService ),致力于动态路由、过滤、监控、弹性伸缩和安全。本章将从以下3个方面来讲述Zuul。
-
为什么需要Zuul。
-
Zuul 的工作原理。
-
Zuul的案例实战。
第10章服务网关,服务网关(Spring Cloud Gateway)是Spring Cloud官方推出的第二代网关框架,用于替代第一代网关Netflix Zuul,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关的基本功能。服务网关建立在Spring Framework 5 之上,使用非阻塞模式,并且支持长连接Websocket。Netflix Zuul是基于Servlet的,采用HttpClient进行请求转发,使用阻塞模式。在性能上,服务网关优于Netflix Zuul,并且服务网关几乎实现了Netflix Zuul的全部功能。在使用和功能上,用服务网关替换掉Netflix Zuul的成本上是非常低的,几乎可以实现无缝切换。
服务网关作为整个分布式系统的流量入口,有着举足轻重的作用,列举如下。
-
协议转换,路由转发。
-
流量聚合,对流量进行监控,日志输出。
-
作为整个系统的前端工程,对流量进行控制,有限流的作用。
-
作为系统的前端边界,外部流量只能通过网关才能访问系统。
-
可以在网关层做权限判断。
-
可以在网关层做缓存。
第11章介绍了服务注册中心Consul,详细讲解了如何使用Consul进行服务注册和发现,以及如何使用Consul作为分布式配置中心。
第12章配置中心Spring Cloud Config,前面的章节详细讲解了Spring Cloud Netflix组件,包括服务注册和发现组件Eureka、负载均衡组件Ribbon,声明式调用Feign、熔断器组件Hystrix和路由网关组件Zuul。本章讲述SpringCloud的另—组件——分布式配置中心Spring Cloud Config。
本章以案例的形式来全面讲解Spring Cloud Config 的知识,分为以下4个方面。
-
Config Server从本地读取配置文件。
-
Config Server从远程Git仓库读取配置文件。
-
搭建高可用Config Server集群。
-
使用Spring Cloud Bus刷新配置。
第13章介绍了链路追踪组件Spring Cloud Sleuth,包括微服务系统为什么需要链路追踪组件,并以案例的形式详细介绍了如何在Spring Cloud微服务系统中使用链路追踪,以及如何传输、存储和展示链路数据。
第14章以案例的形式介绍了Spring Boot Admin,包括Spring Boot Admin在微服务系统中的应用、在Spring Boot Admin中集成安全组件。Spring Boot Admin用于管理和监控一个或者多个Spring Boot程序。Spring Boot Admin分为Server(服务端)和Client(客户端),客户端可以通过向服务端注册,也可以结合Spring Cloud的服务注册组件(Eureka和Consul)进行注册。Spring Boot Admin提供了用React编写的UI界面,用于管理和监控。其中,监控内容包括Spring Boot的监控组件Actuator的各个Http节点,也支持更高级的功能,包括Jmx和Loglevel等。
第15章详细介绍了如何在Spring Boot应用中使用SpringBoot Security;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/8e8a3fdf9b677b08102cdae0de9aae7c.jpeg)
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
img-nRknddRx-1712523484413)]
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
[外链图片转存中…(img-9hM3xuxV-1712523484413)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!