一起来揭开微服务的神秘面纱--《Spring微服务实战》系列 01

从今天开始,正式开启Spring三剑客的第二本书《Spring微服务实战》系列学习笔记的更新。在上一本书《Spring实战》中,我们知道了Spring框架是一个轻量级的软件开发框架,其功能性和实用性都非常的强,对于软件开发人员,学习和掌握Spring是非常重要的。那么这次这个Spring微服务又是何方神圣?我们为什么要学习它呢?

我认为主要有两点原因:一是面试需求。现在程序员如果出去找工作,面试后台开发的岗位,与微服务相关的技术是必须要写上的,因为几乎90%以上的公司都需要应聘者掌握和拥有微服务相关经验,如果没有实际的项目经验或者学习经验,那么可能连第一关简历都无法通过。所以对于目前任何一个后台软件开发来讲,掌握微服务相关知识,是非常有必要的。

二是技术需求。微服务之所以这么流行和火爆,是因为这是一种流行趋势,大部分的公司都在采用微服务的技术,是因为它的出现可以解决新的业务需求,带动公司朝更好的方向发展。业务驱动技术,业务的不断变化也推动着技术不断的向前发展,这也是作为开发人员需要不断学习的原因,只有不断的学习,不断的提升自身技术,才能够更好的在这个行业发展下去。

综上所述,Spring微服务是每一个后台软件开发人员的必修课。那就开始今天的学习吧。

一:什么是微服务?

关于微服务的定义众说纷纭,在看完学习视频以及读完这本书的第一章节的介绍之后,留在我脑海里的印象是:微服务是一种理念,它建立在分布式架构模式之上,或者说分布式架构的模式实现了微服务这种理念。书中给出的解释是:微服务是松耦合的分布式软件服务,这些服务执行少量的定义明确的任务。在思考微服务时,一个重要的概念是:分解和分离应用程序的功能,使它们完全彼此独立。

二:为什么要用微服务?

01:复杂性上升——与单个数据库通信并且不参与其它应用程序集成的“孤立的”应用程序已不再是常态。如今,应用程序不仅需要与更多个位于公司数据中心内的服务和数据库进行通信,还需要通过互联网与外部服务提供商的服务和数据库进行通信。

02:客户期待更快速的交付——客户不再希望等待软件包的下一次年度发布或者整体版本更新。相反,他们期望软件产品中的功能被拆分,以便在几周甚至几天内即可快速发布新功能,而无须等待整个产品发布。

03:性能和可伸缩性——全球性的应用程序使预测应用程序将处理多少事务量以及何时出发该事务量变得非常困难。应用程序需要快速跨越多个服务器进行扩大,然后在事务量高峰过去时进行收缩。

04:客户期望他们的应用程序可用——因为客户与竞争对手之间只有点击一下鼠标的距离,所以企业的应用程序必须具有高度的弹性。应用程序中某个部分的故障或者问题不应该导致整个应用程序崩溃。

看完上面四个需求后,大家发现没有,用户真正需要的是:构建一个高可伸缩性和高度冗余的应用程序。这本身就是一个悖论。但是,如果采用微服务的方式,就可以解决这个矛盾,即将应用程序分解成互相独立构建和部署的小型服务,使其拥有高灵活性,高弹性,高可伸缩性的应用程序。

三:如何使用微服务?

任何一项理念都需要有落地的技术来实现,微服务也是如此。好在我们有Spring全家桶,提供了各式各样的技术来满足微服务的需要,同时也是这本书后面的章节会重点展开的,今天我们先来简单认识认识它们。

01:Spring Boot。Spring Boot是微服务实现中使用的核心技术。它通过简化构建基于REST的微服务的核心任务,大大简化了微服务开发。

02:Spring Cloud Config。 它通过集中式服务来处理应用程序配置数据的管理,因此应用程序配置数据(特别是环境特定的配置数据)与部署的微服务完全分离。这确保了无论启动多少个微服务实例,这些微服务始终具有相同的配置。

03:Spring Cloud 服务发现。比如使用Consul和Eureka作为服务发现引擎,通过服务发现,开发人员可以从客户端消费的服务中抽象出部署服务器的物理位置。服务消费者通过逻辑名称而不是物理位置来调用服务器的业务逻辑。同时服务发现也处理服务实例的注册和注销。

04:Spring Cloud 与 Netflix Hystrix和 Netflix Ribbon。Spring Cloud 与 Netflix 的开源项目进行了大量整合。对于微服务客户端弹性模式,Spring Cloud 封装了Netflix Hystrix库和Netflix Ribbon 项目,开发人员可以轻松地在微服务中使用它们。

05:Spring Cloud 与 Netflix Zuul。Spring Cloud 使用Netflix Zuul 项目为微服务应用程序提供服务路由功能。Zuul是代理服务请求的服务网关,确保在调用目标服务之前,对微服务的所有调用都经过一个“前门”。

06:Spring Cloud Stream。这是一种让开发人员轻松地将轻量级消息处理集成到微服务中的支持技术。借助Spring Cloud Stream,开发人员能够构建智能的微服务,它可以使用在应用程序中出现的异步事件。此外,也可以快速将微服务与消息代理进行整合,如RabbitMQ和Kafka。

07: Spring Cloud Sleuth。它允许将唯一跟踪标识集成到应用程序所使用的HTTP调用和消息通道(RabbitMQ和Kafka)之中。这些跟踪号码能够让开发人员在事务流经应用程序中的不同服务时跟踪事务。

08 : Spring Cloud Security。它是一个验证和授权框架,可以控制哪些人可以访问服务,以及他们可以用服务做什么。

这些就是在使用微服务过程中,需要重点学习和掌握的技术,我们会在后面详细展开。

结束语:

以上就是今天要分享的主要内容,我们围绕着“为什么要学习微服务,微服务是什么,为什么要用微服务,如何使用微服务”这四个话题进行了简单的介绍,更多细节内容大家可以参考《Spring微服务实战》这本书,或者上网进行学习和研究。

书山有路勤为径,学海无涯苦作舟。作为一名技术人,唯有保持不断学习新技术的态度和执行力,才能够在这条道路上越走越远。希望今天的文章能对你有所帮助,我们下期再会。

更多干货请关注微信公众号:功不唐捐skr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值