《SpringBoot揭秘:快速构建微服务体系》—第1章1.4节微服务会带来哪些挑战

简介:

本节书摘来自华章出版社《SpringBoot揭秘:快速构建微服务体系》一书中的第1章,第1.4节微服务会带来哪些挑战,作者王福强,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4 微服务会带来哪些挑战
微服务给我们带来的并非只有好处,还有相应的一些挑战。
服务“微”化之后,一个显著的特点就是服务的数量增多了。如果将软件开发和交付也作为一种生产模式看待,那么数量众多的微服务实际上就类似于传统生产线上的产品,而在传统生产模型下,为了能够高效地生产大量产品,通常采用的就是标准化生产。
比如在汽车产业,在福特T型车没有出来之前,大多汽车企业的生产效率都不高,而福特在引入标准化生产线之后,福特T型车得以大量生产并以低成本优势快速普及。
在其他行业也是同样的道理,个性化生产虽然会深得个别用户的喜欢,但生产成本通常也会很高,生产效率因为受限于个性化需求,也无法从“熟能生巧”中获益,所以,最终用户需要为生产成本和效率付出更多的溢价才能获得最终产品。而相对于个性化生产来说,标准化生产走的是另一条路,通过生产标准产品,使得整条生产链路可重复,从而提升了生产效率,可以为更广层面的用户提供大量“物美价廉”的标准产品。
微服务的研发和交付其实就类似于产品的生产链路,而数量大这一特点则决定了,我们无法通过个性化的生产模式来支撑整个微服务的交付链路和研发体系,虽然微服务化之后,我们可以投入相应的人力和团队对应各个微服务的开发和交付,可扩展性上绝对没有问题,但这不意味着现实情况下我们就能这样做,因为这些都涉及人力和资源成本,而这往往是受限的。所以,使用标准化的思路来开发和交付微服务就变成了自然而然的选择:

  • 通过标准化,我们可以重复使用开发阶段打造的一系列环境和工具支持。
  • 通过标准化,我们可以复用支持整个微服务交付链路的各项基础设施。
  • 通过标准化,我们可以减少采购差异导致的成本上升,同时更加高效地利用硬件资源。
  • 通过标准化,我们可以用标准的协议和格式来治理和维护数量庞大的微服务。

如果你还对使用标准化的思路来构建微服务体系存有疑惑,那么,不妨再结合微服务的多语言生态特性思考一番:

  • 增加一种语言生态用于微服务的开发和交付,我们是否要围绕着这种语言生态和微服务的需求重新搭建一套研发/测试环境?
  • 我们是否还要围绕着这种语言生态打造一系列的工具来提升日常开发的效率?
  • 增加一种语言生态,我们是不是还要围绕这种语言生态搭建一套针对微服务的交付链路基础设施?
  • 增加一种语言生态,我们是否还要围绕它提供特定的硬件环境以及运维支撑工具和平台?

多语言生态虽然灵活度高了,不同语种和思路的团队成员也能够百花齐放了,但是不是也同样带来了以上一系列的成本?
所以,很多事情你能做,并不意味着你一定要做。适度的收缩语言生态的选择范围,并围绕主要的语言生态构建一套标准化的微服务交付体系,或许是更为合理的做法。
要实施高效可重复的标准化微服务生产,我们需要有类似传统行业生产线的基础设施。否则,高效可重复的开发和交付大量的微服务就无从谈起,所以,完备的微服务研发和交付体系基础设施建设就成为了实施微服务的终极挑战。一个公司或者组织要很好地或者说成熟地实施微服务化战略,为交付链路提供完备支撑的基础设施建设必不可少!

相关文章
|
2月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
9月前
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
498 0
|
9月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
362 0
|
7月前
|
安全 Java API
Spring Boot 功能模块全解析:构建现代Java应用的技术图谱
Spring Boot不是一个单一的工具,而是一个由众多功能模块组成的生态系统。这些模块可以根据应用需求灵活组合,构建从简单的REST API到复杂的微服务系统,再到现代的AI驱动应用。
|
9月前
|
人工智能 自然语言处理 前端开发
20分钟上手DeepSeek开发:SpringBoot + Vue2快速构建AI对话系统
本文介绍如何使用Spring Boot3与Vue2快速构建基于DeepSeek的AI对话系统。系统具备实时流式交互、Markdown内容渲染、前端安全防护等功能,采用响应式架构提升性能。后端以Spring Boot为核心,结合WebFlux和Lombok开发;前端使用Vue2配合WebSocket实现双向通信,并通过DOMPurify保障安全性。项目支持中文语义优化,API延迟低,成本可控,适合个人及企业应用。跟随教程,轻松开启AI应用开发之旅!
|
9月前
|
消息中间件 存储 Java
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
本教程介绍ActiveMQ的安装与基本使用。首先从官网下载apache-activemq-5.15.3版本,解压后即可完成安装,非常便捷。启动时进入解压目录下的bin文件夹,根据系统选择win32或win64,运行activemq.bat启动服务。通过浏览器访问`http://127.0.0.1:8161/admin/`可进入管理界面,默认用户名密码为admin/admin。ActiveMQ支持两种消息模式:点对点(Queue)和发布/订阅(Topic)。前者确保每条消息仅被一个消费者消费,后者允许多个消费者同时接收相同消息。
329 0
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
|
9月前
|
消息中间件 Java 微服务
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——发布/订阅消息的生产和消费
本文详细讲解了Spring Boot中ActiveMQ的发布/订阅消息机制,包括消息生产和消费的具体实现方式。生产端通过`sendMessage`方法发送订阅消息,消费端则需配置`application.yml`或自定义工厂以支持topic消息监听。为解决点对点与发布/订阅消息兼容问题,可通过设置`containerFactory`实现两者共存。最后,文章还提供了测试方法及总结,帮助读者掌握ActiveMQ在异步消息处理中的应用。
440 0
|
9月前
|
消息中间件 网络协议 Java
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ集成
本文介绍了在 Spring Boot 中集成 ActiveMQ 的详细步骤。首先通过引入 `spring-boot-starter-activemq` 依赖并配置 `application.yml` 文件实现基本设置。接着,创建 Queue 和 Topic 消息类型,分别使用 `ActiveMQQueue` 和 `ActiveMQTopic` 类完成配置。随后,利用 `JmsMessagingTemplate` 实现消息发送功能,并通过 Controller 和监听器实现点对点消息的生产和消费。最后,通过浏览器访问测试接口验证消息传递的成功性。
631 0
|
Java 应用服务中间件 Maven
传统maven项目和现在spring boot项目的区别
Spring Boot:传统 Web 项目与采用 Spring Boot 项目区别
705 0
传统maven项目和现在spring boot项目的区别
|
XML Java 数据库连接
创建springboot项目的基本流程——以宠物类别为例
创建springboot项目的基本流程——以宠物类别为例
238 0
创建springboot项目的基本流程——以宠物类别为例

热门文章

最新文章