在高流量高负载的网络环境中微服务产生的由来-Spring Cloud Alibaba微服务开发专题

下文摘自孙卫琴的经典书籍《Spring Cloud Alibaba微服务开发零基础入门到实操》,介绍了从Web应用到微服务的演进过程,帮助初学者理解微服务是为了完成怎样的使命而出现的。
在这里插入图片描述

在传统的Web应用中,由一台Web服务器响应各种各样的客户请求。已经熟悉Java Web开发技术的软件工程师阿云开发了一个购物网站。如图1所示,该购物网站应用发布到Web服务器中,四面八方的客户通过浏览器访问购物网站,浏览器与购物网站之间通过HTTP协议通信。
在这里插入图片描述
图1 浏览器与购物网站通过HTTP协议通信

随着该购物网站蓬勃发展,每日访问量由最初的数千人增长到数百万人。为了保证快速响应每个客户的请求,购物网站与时俱进地改进软件和硬件,比如优化访问数据库的性能,还把网站发布到高性能的服务器中。

即便如此,在双十一的时候,该网站还是遇到了瓶颈,服务器马不停蹄地运转,还是应接不暇,无法及时响应每个客户的请求。

阿云:“服务器已经开足马力运行,还是来不及同时响应几十万的并发请求,有什么解决办法突破瓶颈呢?”
答主:“在现实生活中,如果单个人无法及时完成一个任务,那就把任务划分成多个子任务,分派给多个人同时执行,这样就能及时完成任务了。要解决网站并发访问的瓶颈,也是采取同样的思路,把网站的服务拆分成多个微服务,这些微服务分布在多个主机中,由多个主机同时执行,就能及时响应更多客户的请求了。”

如图2所示,购物网站拆分成用户管理、订单管理、商品管理等微服务模块,把这些微服务模块部署到多个主机上各自独立运行,就能同时为更多的客户提供服务,从而提高网站的并发性能和运行性能。

在这里插入图片描述
图2 把购物网站的服务划分成多个微服务

阿云:“如图3所示,从一个网站的业务中拆分出多个微服务,就像把一个西瓜切成好多份,看起来很简单。”
在这里插入图片描述
图3 拆分微服务像切西瓜

答主:“切西瓜的比喻很形象。但在具体开发的时候,会遇到很多复杂的问题,比如业务逻辑之间有着千丝万缕的联系,如何划分和开发微服务呢?此外,微服务需要部署到什么样的容器中,客户端如何访问微服务,微服务之间又如何相互通信呢?”

阿云:“这倒也是,微服务分布在不同的主机中,它们的通信比独立的单体应用程序的内部模块之间的通信要复杂多了。如果有现成的分布式微服务框架可以运用,就能大大提高开发效率。”

答主:“Spring Cloud Alibaba就是现成的微服务框架,它的运用已经非常广泛了。”


想要循序渐进学习Spring Cloud微服务开发,强烈推荐看孙卫琴老师的经典著作《Spring Cloud Alibaba微服务开发零基础入门到实操》,还附赠121集配套视频课程,免费观看网址参见http://www.javathinker.net/alibaba

本书深入浅出地讲解了利用Spring Cloud Alibaba框架开发分布式微服务系统的技术,详细阐述了各种组件的用法,包括:注册和配置中心Nacos、负载均衡器LoadBalancer、远程调用组件OpenFeign、远程调用框架Dubbo、流量控制组件Sentinel、网关Gateway、链路追踪组件SkyWalking、消息中间件Stream和 RocketMQ、分布式事务管理框架Seata、分库分表中间件ShardingSphere、分布式缓存数据库Redis、分布式任务调度框架XXL-JOB。

本书以一位学习微服务开发的新手阿云向答主(本书作者)请教微服务开发技术为线索,激发读者主动探索知识的学习兴趣,把本来看似深奥复杂的分布式微服务系统如庖丁解牛般剖析得淋漓尽致,浅显易懂。本书不仅详细介绍各种技术的使用步骤,而且运用了许多生动形象的生活化的比喻,帮助读者理解这些技术的运作原理。

本书的范例很具有实用性,整合了Spring Boot、Spring Cloud Alibaba、Hibernate、Mybatis、DruidDataSource、HikariDataSource、lombox软件包、SLF4J等流行的框架或工具软件。

本书主要面向所有具有Java编程基础的开发人员和在校学生。对于不熟悉Java编程的读者,阅读本书,也能领略Spring Cloud Alibaba框架的基本用法和微服务开发的核心思想。本书还可作为高校和企业的微服务开发教材。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java技术集锦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值