前辈给的 Spring Cloud 与 Docker 微服务实战,挽救了要被辞退的我

news2024/12/23 13:20:30

前言

还记得那天天气阴冷,整个人心都是拔凉拔凉的;原因是因为领导找我聊了一下,委婉地说觉得我的技术不太行,能力不突出;要么自己做出改变,要么选择离开。

说实话,我是有点难过的,但是领导既然说了出来,那就说明他给了我一个机会;所以我还是要抓住这个机会,努力提升自己的技术。如果此刻选择了离开,那么今后我遇到了每一个困难都不会想要迈过去,只会选择逃避。

曙光

的确,在一个职位呆久了,还是不应该一成不变,现在的互联网行业也一直在革新,我又有什么理由一直停在原地呢?

也许是我运气好,在工作上遇到了很好地前辈,他了解之后,也觉得我做的决定是对的,遇到困难不应该退缩。

并且,告诉我了很多提升自己的秘诀,并且将学习资料都打包发给了我。其中这一份《Spring Cloud 与 Docker 微服务构架实战》帮助我非常大。我希望能够分享给大家,跟大家一起学习、进步。

接下来一起看看笔记内容:

一、微服务简介

1.什么是微服务架构

微服务架构风格是一种将一个单一应用程序开发为以小组型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用 HTTP 资源 API)。

2.微服务架构的优点与挑战

​优点:易于开发和维护、单个微服务启动较快、局部修改容易部署、技术栈不受限、按需伸缩

综上所述,单体应用架构的缺点,恰恰是微服务的优点,而这些优点使得微服务看起来简直非常完美。

然而完美的东西并不存在,下面来讨论使用微服务会带来哪些挑战。

​挑战:运维要求较高、分布式固有的复杂性、接口调成本高、重复劳动

3.微服务设计原则

和数据库设计中的 N 范式一样,微服务也有一定的设计原则,这些原则指导我们更加合理地架构微服务。

4.如何实现微服务架构

技术选型、架构图常用组件

有话说:由于资料内容太多,只能放取一部分了。


资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦

二、微服务开发框架————Spring Cloud

1.Spring Cloud 简介、特点、版本

Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用 Spring Cloud 开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及 Cloud Foundry 等托管平台。

2.子项目一览

Spring Cloud 的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot 化”的封装和抽象,也是数量最多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如 Spring Cloud Stream 扮演的就是 kafka, ActiveMQ 这样的角色。对于我们想快速实践微服务的开发者来说,第一类子项目就已经足够使用,如:

Spring Cloud Netflix

  是对 Netflix 开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST 客户端、请求路由等。

Spring Cloud Config

  将配置信息中央化保存, 配置 Spring Cloud Bus 可以实现动态修改配置文件

Spring Cloud Bus

  分布式消息队列,是对 Kafka, MQ 的封装

Spring Cloud Security

  对 Spring Security 的封装,并能配合 Netflix 使用

Spring Cloud Zookeeper

  对 Zookeeper 的封装,使之能配置其它 Spring Cloud 的子项目使用

Spring Cloud Eureka

Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分,它基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。

3.Spring Cloud/Spring Boot 版本兼容性

三、开始使用 Spring Cloud 实战微服务

1.Spring Cloud 实战前提

spring cloud 不一定适合所有人,他并不是面向零基础开发人员的。

​要想玩转它,你可能需要具备以下相关条件:

语言基础:spring cloud 是一个基于 Java 语言的工具条件,所以学习它需要有一定的 Java 基础。

spring boot:spring cloud 是基于 spring boot 构建的,因此它延续了 spring boot 的开发模式。

项目管理与构建工具:就是我们经常使用的 maven。

2.技术储备

3.工具及软件版本

截止当前, spring cloud 相关工具及其版本建议:

  •  JDK:JDK1.8( 官方强烈建议 )

  •  Spring Boot:Spring Boot 1.4.3.RELEASE

  •  Spring Cloud: Spring Cloud Camden SR4

  •  IDE: Spring Tool Suite 3.83 、IntelliJ IDEA、Eclipse 等( 这个随自己爱好 )

  •  Maven: Maven 3.3.9(和 Spring Boot、Spring Cloud 一样,Maven 3.3.x 也是运行在 JDK1.8 上的)

4.服务提供者与服务消费者

服务构建的是分布式系统,各个微服务之间通过网络进行通信。一般我们用服务提供者和服务消费者来描述微服务之间的调用关系。

服务提供者:服务的被调用方,即为其他服务提供服务的服务。

服务消费者:服务的调用方,即依赖其他服务的服务。

5.编写服务提供者

1 进入、2 创建用户微服务、3 点击生成项目、4 创建微服务

6.手动编写项目

7.使用 Spring Initializr 快速创建 Sping Boot 项目

四、使用 Ribbon 实现客户端侧负载均衡

五、使用 Feign 实现声明式 REST 调用

六、使用 Hystrix 实现微服务的容错处理

七、使用 Zuul 构建微服务网关

使用 Spring Cloud Config 统一管理微服务配置

总结

这份《Spring Cloud 与 Docker 微服务构架实战》很好地帮助了我提升自己,成功地保住了工作,并且工资往上涨了 6K。

​非常感谢前辈的帮助,我希望这份资料能够帮助更多的人,提升自己的能力,去到更远的远方!欢迎大家一起分享自己的故事,一起讨论工作经验!

​​当然,我手里也有其他的资料,如有需求可一起打包发给你!


资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lambda完整学习指南

什么是Lambda表达式 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式还增强了集合库。 Java La…

大学生HTML作业篮球网页 HTML作业篮球网页期末作业 HTML+CSS篮球网页 HTML学生作业体育篮球网页

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

ARS系列毫米波雷达技术一览

近年来,自动驾驶成为了当下最热门的话题。随着自动驾驶技术的发展,作为其关键传感器之一的毫米波雷达,也得到了广泛关注。但就目前来看,海外巨头公司主导着全球毫米波雷达产业的发展,其中,大陆ARS540更以九…

吊打面试官,聊聊:Java中String对象的大小?(史上最全)

下面是一个常见的Java 面试题: 聊聊:Java中String对象的大小? 首先,看看空String占用的空间 当前内存大小是在默认开启压缩指针的条件下 对象头 12char[]数组引用 4int 类型 hash数据大小 4loss due to the next object alignm…

MacOS好用的系统清理工具CleanMyMac有哪些特点功能?

怎么样为Mac选择一款专业靠谱的清理工具?需要满足那些功能呢?对于大多数的新手用户可能并不知道如何来清理Mac系统,当然也不知道在众多清理工具中如何选择。选择一款清理工具最重要的是它的性能如何,能不能有效的帮助用户清理系统…

[附源码]JAVA毕业设计小说阅读网站(系统+LW)

[附源码]JAVA毕业设计小说阅读网站(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

听说你还不了解二叉树?赶紧进来轻松解决

✨个人主页: Yohifo 🎉所属专栏: 数据结构 | C语言 🎊每篇一句: 图片来源 Only by self-respect will you compel others to respect you. 只有自尊才能迫使他人尊敬你。 文章目录📘前言📘正文…

java的vo实体类字段和返回前端接收的字段大小写不一致

java的vo实体类字段和返回前端接收的字段不一致 后台的vo字段和前端接收到的出现大小写一直的情况 例如: 后台字段 /** a_lwa */private String aLwa;前端实际接收到的 这是由于使用lombok插件导致的 解决办法 实体类添加注解强制绑定 /** a_lwa */JsonProperty("aLwa&…

【JavaWeb开发-Servlet】day07-学生成绩管理系统-实现登录注册功能

目录 一、登录功能 1、实现登录页面 ①新建一张登录表:login ②插入一条测试数据 ③新建一个login.jsp登录界面 ④此表的实体Teacher类: ⑤ 然后在写一个dao方法,需要根据用户名查询登录表中的用户信息 ⑥业务层中我们直接调用dao层方法 ⑦在…

【负荷预测】基于灰色理论负荷预测的应用研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

南京邮电大学编译原理实验一(词法分析器的构造)

文章目录一、 实验目的和要求二、实验环境(实验设备)三、实验原理及内容(一)设计概要1、C语言子集2、单词及编码3、状态转换图(二)实现分析(三)结果分析四、实验小结(包括问题和解决方法、心得体…

文本纠错--N-gram--Macbert模型的调用以及对返回结果的处理

文本根据词典进行纠错 输入一段可能带有错误信息的文字, 通过词典来检测其中可能错误的词。 例如:有句子如下:中央人民政府驻澳门特别行政区联络办公室1日在机关大楼设灵堂    有词典如下:中国人民,中央人民&#x…

红帽曹衡康:开源是企业数字化转型的机遇

在数据成为企业核心资产的今天,为了更好地降本增效,实现业务创新和增长,越来越多的企业都开启了数字化转型之路。然而对于绝大多数企业来说,这条转型之路都并非一帆风顺。事实上,数字化转型在为企业开启更多机遇的同时…

爆火Chatgpt注册 chatgpt使用 完全指南

1 chatgpt 简介 ChatGPT是一种语言模型,它被训练来对对话进行建模。它能够通过学习和理解人类语言来进行对话,并能够生成适当的响应。ChatGPT使用了一种叫做Transformer的神经网络架构,这是一种用于处理序列数据的模型,能够在输入…

Java System类

JavaSystem类\huge{Java \space System类}Java System类 System类概述 简而言之:SystemSystemSystem类就是一个工具类,直接调用对应的方法来使用即可,不需要也不能被实例化。 常用方法 ①. exit() 退出Java虚拟机 //执行这个exit(0)代码之…

[附源码]计算机毕业设计的花店售卖系统的设计与实现Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

GPU——占用情况和进程情况的参数解读表

GPU——占用情况和进程情况的参数解读表一、GPU占用情况二、GPU的进程情况参考资料一、GPU占用情况 名称功能说明Fan风扇转速在0 (%) 到100 (%) 之间变动Temp摄氏温度CPerf性能状态从P0到P12,P0表示最大性能,P12表示状态最小性能Persistence-M持续模式的…

微服务框架 SpringCloud微服务架构 微服务保护 31 限流规则 31.2 流控模式【关联】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护31 限流规则31.2 流控模式【关联】31.2.1 流控模式31.2.2 流控模式 - 关联31.2.3 小结31 限流规则…

OpenCV入门(C++/Python)- 使用OpenCV色彩空间(七)

在本教程中,了解计算机视觉中使用的流行色彩空间,并将其用于基于颜色的分割。 使用OpenCV色彩空间不同的颜色空间RGB颜色空间LAB颜色空间YCrCB 颜色空间HSV颜色空间如何使用这些颜色空间进行分割简单方法文章内容如下:首先,我们将…

Linux线程的创建

用户态创建线程: 线程不是一个完全由内核实现的机制,它是由内核态和用户态合作完成的。pthread_create不是一个系统调用,是Glibc库的一个函数。 在nptl/pthread_creat.c里面找到了这个函数: int __pthread_create_2_1 (pthread…