热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

跟我学springboot(二)微服务简介

1.微服务是怎么提出来的

说起微服务,首先需要提起一个人叫martin fowler。进入他的首页:https://martinfowler.com/ 选择->All Sections,进入选择->microservices,我们可以看到这个人在2014年提出来的概念解释。

2.什么是微服务

简而言之,微服务架构风格是将单个应用程序开发为一套小型服务的方法,每个小型服务都在自己的流程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建, 可通过全自动部署机制独立部署。有一个集中管理的最低限度的这些服务,可以用不同的编程语言和使用不同的数据存储技术。
- 詹姆斯刘易斯和马丁福勒

3.微服务的特点
  • 通过服务进行组件化
  • 围绕业务能力进行组织
  • 产品不是项目
  • 智能端点和哑管
  • 权力下放的治理
  • 分散数据管理
  • 基建自动化
  • 设计失败
  • 进化设计
4.微服务提供的好处
  • 强大的模块边界:微服务增强了模块化结构,这对大型团队尤为重要。
  • 独立部署:简单的服务更易于部署,并且由于它们是自治的,因此在出错时不太可能导致系统故障。
  • 技术多样性:通过微服务,您可以混合使用多种语言,开发框架和数据存储技术。
5.需要付出代价
  • 分布:分布式系统更难编程,因为远程调用很慢并且始终存在故障风险。
  • 最终的一致性:对于分布式系统来说,保持强一致性非常困难,这意味着每个人都必须管理最终的一致性。
  • 运营复杂性:您需要一个成熟的运营团队来管理大量服务,这些服务正在定期重新部署。
6.单体应用与微服务

6.1单体应用

单体应用是将所有的功能都放在一个应用里面,开发部署简单,横向扩展简单,但是也有自己的缺点就是可能会因为一点小bug会重新部署,牵一发而动全身,而且随着时间的推移,代码越越来越多,维护起来比较复杂。

6.2微服务

  • 一个微服务架构是把每个微服务的功能节点放到一个独立的服务中
  • 可以根据需要任意搭配,对于访问量较大的节点可以多部署,控制***
  • 对于大型分布式应用的部署是一个挑战,如果应用较多,将形成类似于一个神经网络的结构,这对运维要求很高,如果放在单体应用,就配置文件就会花很长的时间。
7.现代java的web应用解决方案
  • 我们用一张图来解释
    跟我学springboot(二)微服务简介
  • Spring Boot旨在尽可能快地启动和运行,只需最少的Spring前端配置。Spring Boot对构建生产就绪应用程序持批评态度。
  • Spring Cloud直接基于Spring Boot的创新企业Java方法,通过实施经过验证的模式简化分布式微服务式架构,为您的微服务带来弹性,可靠性和协调性。
  • Spring Cloud Data Flow将企业连接到任何东西的互联网 - 移动设备,传感器,可穿戴设备,汽车等。Spring Cloud Data Flow为创建可组合数据微服务提供统一服务,这些服务可解决基于流和基于ETL的数据处理模式。
8.总结
  • 单体应用:ALL IN ONE
  • 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元

推荐阅读
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • Spring 切面配置中的切点表达式详解
    本文介绍了如何在Spring框架中使用AspectJ风格的切面配置,详细解释了切点表达式的语法和常见示例,帮助开发者更好地理解和应用Spring AOP。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • Spring 中 Bean 信息定义的三种方法探讨
    本文详细探讨了 Spring 框架中实现 Bean 信息定义的三种方法:基于 XML 配置、基于注解配置和基于 Java 类配置。每种方法都有其适用场景和优缺点。 ... [详细]
  • 本文介绍了如何通过安装 rpm 包来使用 resize2fs 和 ext2online 工具进行系统文件的扩容。提供了详细的步骤和注意事项。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 本文深入解析了Spring Cloud路由网关Zuul的核心功能及其典型应用场景。通过对方志朋老师教材的学习和实践,详细探讨了Zuul在微服务架构中的重要作用,包括请求路由、过滤器链管理以及服务动态扩展等关键特性。同时,结合实际案例,展示了Zuul在高并发和复杂业务场景下的应用优势,为读者提供了全面的技术参考。 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
author-avatar
我是你的鹏鹏鹏爷
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有