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

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

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

曙光

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

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

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

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

一、微服务简介

1.什么是微服务架构

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

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

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

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

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

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

3.微服务设计原则

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

4.如何实现微服务架构

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

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第1张图片
前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第2张图片

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第3张图片

有话说:由于资料内容太多,只能放取一部分了。
如果想要获取更详细的资料:可看文末 获取方式

二、微服务开发框架————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与Docker微服务实战,挽救了濒临辞退的我!_第4张图片
前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第5张图片

三、开始使用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.服务提供者与服务消费者

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

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

服务消费者:服务的调用方,即依赖其他服务的服务。
前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第6张图片
5.编写服务提供者

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

6.手动编写项目

7.使用Spring Initializr 快速创建Sping Boot项目
前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第7张图片
前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第8张图片

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

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第9张图片

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

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第10张图片
前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第11张图片

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

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第12张图片

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

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第13张图片

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

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!_第14张图片

总结

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

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

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

想要资料的小伙伴们:请给我点赞+转发。看下方即可免费获取资料!

~资料获取方式~
添加助手小姐姐的 VX:  Mlzg5201314zz 
或者加入技术交流Q群:614478470
记得备注[CSDN]

你可能感兴趣的:(JAVA,java,后端)