SpringCloud:认识微服务


程序员老茶

🙈作者简介:练习时长两年半的Java up主
🙉个人主页:程序员老茶
🙊 P   S : 点赞是免费的,却可以让写博客的作者开心好久好久😎
📚系列专栏:Java全栈,计算机系列(火速更新中)
💭格   言:种一棵树最好的时间是十年前,其次是现在
🏡动动小手: 点个关注不迷路,感谢宝子们一键三连

目录

  • 课程名:Java
    • 内容/作用:知识点/设计/实验/作业/练习
    • 学习:SpringCloud
  • 1.认识微服务
    • 1.0.学习目标
    • 1.1.单体架构
    • 1.2.分布式架构
    • 1.3.微服务
    • 1.4.SpringCloud
    • 1.5.总结
    • 总结

课程名:Java

内容/作用:知识点/设计/实验/作业/练习

学习:SpringCloud

1.认识微服务

简介:
Spring Cloud 是一个基于Spring Boot的开源微服务架构构建工具集,它提供了在分布式系统环境中快速构建一些常见模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌等)。它利用Spring Boot的开发便利性,简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器以及分布式会话等。
微服务是一种设计思想,旨在通过将应用程序分解成一组小的服务来简化大型应用程序的开发和维护。每个服务运行在其独立的进程中,服务之间通过轻量级的通信机制(通常是HTTP资源API)进行互联。这些服务围绕业务功能构建,并且可以通过全自动部署机制独立部署。微服务旨在通过对应用程序分解成一组服务的方式来提高灵活性和可维护性,每个服务实现特定的功能,服务之间通过API通信,可以独立部署和扩展。

随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?

1.0.学习目标

了解微服务架构的优缺点

1.1.单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

在这里插入图片描述

单体架构的优缺点如下:

优点:

  • 架构简单
  • 部署成本低

缺点:

  • 耦合度高(维护困难、升级困难)

1.2.分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

在这里插入图片描述

分布式架构的优缺点:

优点:

  • 降低服务耦合
  • 有利于服务升级和拓展

缺点:

  • 服务调用关系错综复杂

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

  • 服务拆分的粒度如何界定?
  • 服务之间如何调用?
  • 服务的调用关系如何管理?

人们需要制定一套行之有效的标准来约束分布式架构。

1.3.微服务

微服务的架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
  • 自治:团队独立、技术独立、数据独立,独立部署和交付
  • 面向服务:服务提供统一标准的接口,与语言和技术无关
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

在这里插入图片描述

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,可以认为微服务是一种经过良好架构设计的分布式架构方案

但方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。

其中在Java领域最引人注目的就是SpringCloud提供的方案了。

1.4.SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。

SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

其中常见的组件包括:

在这里插入图片描述

另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:

在这里插入图片描述

我们课堂学习的版本是 Hoxton.SR10,因此对应的SpringBoot版本是2.3.x版本。

1.5.总结

  • 单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统

  • 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝

  • 微服务:一种良好的分布式架构方案

    ①优点:拆分粒度更小、服务更独立、耦合度更低

    ②缺点:架构非常复杂,运维、监控、部署难度提高

  • SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件

总结

   感谢小伙伴们一键三连,咱们下期文章再见~

往期专栏
Java全栈开发
数据结构与算法
计算机组成原理
操作系统
数据库系统
物联网控制原理与技术

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/834743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成式人工智能岗位探析

笔者近期看到一则新闻:生成式人工智能岗位需求暴涨超 300%,AIGC 相关岗位的平均招聘年薪达 40 万元以上。到底什么是生成式人工智能岗位,和传统的人工智能岗又有什么区别呢?笔者今天想和大家一起聊聊这个新兴岗位。 第一波先上概…

机器学习_KNN算法

机器学习_KNN算法 K-近邻(K-Nearest Neighbors,简称KNN)算法是一种基本的机器学习分类和回归算法 其核心思想是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别…

「短链接教程」如何使用自己的域名生成短链接

在当今数字化时代,短链接的应用越来越广泛。它们不仅能让链接更简洁美观,还便于分享和传播。 但很多时候想用自己的域名生成短链接?搭建短链接平台又比较麻烦,所以,这里以C1N短网址(c1n.cn)为例,介绍下如何…

Java 8的新特性,Lambda表达式、Stream API等

Java 8, 发布于2014年3月,带来了一系列令人兴奋的新特性,其中最显著的包括Lambda表达式、Stream API、新的日期时间API和接口的默认方法与静态方法。这些增强大大提高了Java的表达能力,简化了代码的复杂性,并改进了数据处理能力。…

kingbase R9 高可用集群相关术语介绍

术语介绍 术语 定义 金仓数据库管理系统 (KingbaseES) 人大金仓数据库管理系统,本文指代单机服务版本,下文也被称作单机版。其成员可能包括数据 节点(data node)、备份节点(repo node&am…

自定义函数工具库

一、函数相关 call()& apply()& bind() API说明 call() 语法: call(fn, obj, ...args)功能: 执行fn, 使this为obj, 并将后面的n个参数传给fn(功能等同于函数对象的call方法)apply() 语法: apply(fn, obj, args)功能: 执行fn, 使this为obj, 并将args数组中的元素传给f…

【EI会议|投稿优惠】2024年电力电网与电子通讯国际会议(ICPGEC 2024)

2024 International Conference on Power Grid and Electronic Communication 一、大会信息 会议名称:2024年电力电网与电子通讯国际会议会议简称:ICPGEC 2024收录检索:提交Ei Compendex,CPCI,CNKI,Google Scholar等会议官网:htt…

git cherry-pick命令使用

git cherry-pick 是一个非常实用的Git命令,它允许你将一个或多个提交从一个分支复制并应用到另一个分支上,而不需要进行整个分支的合并。这对于只想将某些特定更改而非整个分支历史引入当前工作的情况非常有用。以下是使用 git cherry-pick 的基本步骤和…

【训练与预测】02 - 完整的模型验证套路

02 - 完整的模型验证套路 模型图 验证一个模型就是指使用已经训练好的模型,然后给它提供输入。 test.py import torch import torchvision from PIL import Imagedevice torch.device("cuda" if torch.cuda.is_available() else "cpu") ima…

【数据结构】栈(Stack)和队列(Queue)

文章目录 栈一、栈的概念及结构二、栈的特点三、栈的实现1.初始化栈2.判断栈空3.入栈4.出栈5.取栈顶元素6.栈的元素个数7.销毁 队列一、队列的概念及结构二、队列的特点三、队列的实现1.初始化2.入队3.出队4.判断队空5.取队头元素6.取队尾元素 总结 栈 一、栈的概念及结构 栈…

政务热线系统让政府服务更接地气

一、引言 随着社会的快速发展和民众需求的日益增长,政府面临着巨大的挑战。政府需要更好地倾听民众的声音,关注民众的关切,并采取相应的措施回应民众的需求。而政府热线系统作为一种重要的沟通渠道,在提升政府服务质量、增强政府…

HR招聘面试测评,如何判断候选人的创新能力?

创新能力代表着一个人的未来发展潜力,创新能力突出的人,未来的上限就可能更高。而对于一个公司而言,一个具有创新能力的员工,会给公司带来新方案,新思路,对公司的长远发展拥有着十分积极的作用。 而在挑选…

Spark云计算平台Databricks使用,SQL

创建workspace:Spark云计算平台Databricks使用,创建workspace和Compute计算集群(Spark集群)-CSDN博客 1 创建schema 选择Calalog,点击Create schema 输入名字,Storage location选择workspace,数…

2024年小沙弥小视频,轻松吸引中老年观众,上手简单,轻松月入了万

利用人工智能工具制作小沙弥主题的抖音内容,已成为网络赚钱的新途径。这个项目主要吸引中老年人群体,尤其是对智慧和人生哲理感兴趣的观众。小沙弥以其温馨且启发性的内容,引起中老年用户的共鸣,为他们提供心灵慰藉。 项 目 地 …

AI工具摸索-关于写作(1)

虽然人工智能工具非常多,但是如果想要成为生产力,能达标的工具仍然非常少,除了最常用的chatgpt,其他的工具真的能达标吗,这篇文章主要就是对比市面上的一些工具, 但我这个人非常执拗,我认为作为生产力工具的功能必然是可以真正帮助我们的,而不是说作为一个写作工具结…

leetcode-189 轮转数组

一、题目描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,…

PINN物理信息网络 | 一种分层归一化物理信息神经网络hnPINN来解决偏微分方程问题附代码

PINN物理信息网络 | 一种分层归一化物理信息神经网络hnPINN来解决偏微分方程问题附matlab代码 分层归一化物理信息神经网络(Hierarchical Normalized Physics-Informed Neural Network,hnPINN)是一种用于求解偏微分方程问题的神经网络方法。 hnPINN结合了分层网络结构和物…

每日资讯阅读

1.今年荔枝自由没了 今年各大平台荔枝比往年高上许多,去年的妃子笑5元/斤,今年30元/斤,简单总结价格大幅上涨的原因和影响。 1.1 原因 暴雨频繁,产量10年新低 国内荔枝产地主要在我国南部的热带、亚热带森林中,福建、两广、海…

leetcode题目80

删除有序数组的重复项 Ⅱ 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间…

Java笔记(其八)--- 方法(函数)

方法 方法,其实就是C语言中的函数,在写作形式上仅有一点点的区别。 修饰词 返回值类型 函数名(形参){ ... } 例如 package com.su_de_lei; /*** 写一个两数相加的函数*/ public class FunctionCode {public static void main(St…