微服务与SpringCloud的概述

微服务概述

微服务的提出:马丁福勒论文

微服务是一种架构模式或者是一种架构风格,它提倡将单一应用程序划分位一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调,互相配合,为用户提供最终价值。

服务之间采用轻量级的通信机制互相沟通

微服务Cloud基于RESTful API

https://blog.csdn.net/qq_43647384/article/details/105978970

https://martinfowler.com/articles/microservices.html

技术维度理解

微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务作一件事。

从技术角度看就是一种小而独立的处理过程,类似进程概念,能够单独启动或销毁,拥有自己独立的数据库。

微服务与微服务架构

  • 微服务

强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,强调一个个的个体,每个个体完成一个具体的功能或任务

  • 微服务架构

一种架构模式,它提倡将单一应用程序划分成一组小服务,服务之间互相协调,为用户提供最终价值,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建。

微服务的优缺点

  • 优点
  1. 每个服务足够内聚、足够小,代码容易理解,这样能聚焦一个指定的业务功能或业务需求

  2. 开发简单、开发效率提高,一个服务可能就是专一的只干一件事

  3. 微服务能被小团队单独开发,这个小团队是2到5人的开发人员组成

  4. 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

  5. 微服务能使用不同语言进行开发

  6. 易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins,Hudson,bamboo

  7. 微服务允许你利用融合最新技术

  8. 微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面组件混合(前后端的分离)

  9. 每个微服务都有自己的存储能力,可以有自己的数据库,也可有统一的数据库

  • 缺点
  1. 开发人员要处理分布式系统的复杂性

  2. 多服务运维难度,随着服务是增加,运维的压力也在增大

  3. 系统部署依赖

  4. 服务间通信成本

  5. 数据一致性

  6. 系统集成测试

  7. 性能监控

微服务技术栈

多种技术的集合体

一个分布式的微服务架构的微服务条目(维度)维度的落地技术
服务开发Springboot、Spring、SpringMVC
服务配置与管理Archaius、Diamond
服务注册与发现Eureka、Consul、Zookeeper
服务调用Rest、RPC、gRPC
服务熔断器Envoy、Hystrix
负载均衡Ribbon、Nginx
服务接口调用(客户端调用服务简化工具)Feign
消息队列Kabbix、Nagios、Spectator
服务配置中心管理SpringCloudConfig、Chef
服务路由(API网关)Zuul
服务监控Zabbix、Brave、Dapper
全链路追踪Zipkin、Brave、Dapper
服务部署Docker、OpenStack、Kubernetes
数据流操作开发包SpringCloud Stream(封装与Redis,Rabbit、Kafka等发送接收消息)
事件消息总线Spring Cloud Bus

为什么选择SpringCloud微服务

选型依据

  • 整体解决方案和框架成熟度

  • 社区热度

  • 可维护性

  • 学习曲线

SpringCloud入门概述

什么是SpringCloud

官网:https://spring.io/

SpringCloud:https://spring.io/cloud

SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些可选型中立的开源组件。

SpringBoot风格进行再封装屏蔽离复杂的配置和实现原理,最终给开发者留出了一套简单易懂,易部署和易维护的分布式系统开发工具包

SpringCloud与SpringBoot的区别

SpringBoot:专注于快速方便的开发单个个体微服务

SpringCloud:是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来。为各个微服务之间提供、配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务

SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系。

总结:SpringBoot专注于快速,方便的开发单个微服务个体、SpringCloud关注全局的服务治理框架。

Dubbo是怎么到SpringCloud的

对比

1.png

最大区别:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式。

活跃度

https://github.com/spring-cloud

https://github.com/dubbo

能干啥

  • 分布式/版本控制配置

  • 服务注册与发现

  • 路由

  • 服务到服务的调用

  • 负载均衡配置

  • 断路器

  • 分布式消息管理

    。。。

资源在哪里

  • 官网

  • 开发API

    • https://spring.io/projects/spring-cloud

    • https://www.springcloud.cc/spring-cloud-dalston.html

  • Springcloud中国社区

  • springcloud中文网

  • https://www.springcloud.cc/spring-cloud-netflix.html



喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

使用Riotee轻松实现无电池TinyML

论文标题:Demo: Battery-free TinyML Made Easy with Riotee 中文标题:演示:使用Riotee轻松实现无电池TinyML 作者信息: Kai Geissdoerfer,Nessie Circuits,邮箱:kai.geissdoerfernessie-circ…

stm32 rtx操作系统 堆(heap) 栈(stack) keil在线监测

STM32内存分为3块区域:全局/静态变量区、栈区、堆区 其中全局/静态变量区用于存放全局/静态变量(包括指针变量), 栈区用于存放当前运行的函数及其中定义的局部变量和程序指针等, 堆区用于存放动态申请的内存&#xff0…

AI在医学领域:使用生成式深度学习和信号处理技术增强心脏听诊信号

心血管疾病(CVD)是全球死亡的主要原因,占2019年所有全球死亡的30%以上。为了有效地治疗CVD,准确诊断和评估心脏状况至关重要。心脏听诊(CA)是一种非侵入性方法,通过听取心脏产生的声音来检测和监…

日语学习零基础生活日语口语柯桥外语学校|股票用日语怎么说?

在日语中,“股票”可以说: • 株(かぶ) 这是最常用的表达方式,直接表示“股票”。 例如: 株を買う - 买股票 株を売る - 卖股票 • 株式(かぶしき) 这个词也是“股票”的意…

【C语言刷力扣】1832.判断句子是否为全字母句

题目&#xff1a; 法一 bool checkIfPangram(char* sentence) {int str[256];memset(str, 0, sizeof(int));for (int i 0; i < strlen(sentence); i) {str[ sentence[i] ];}for (int j a; j < z; j) {if (!str[j]) return false;}return true; } 法二 动态分配 typ…

微课录制 “绊脚石”,电脑录屏时PPT 与画板冲突及解决全析

在教育数字化转型的浪潮中&#xff0c;微课录制成为教师传授知识的新方式。最近&#xff0c;一位用户在评论区提出了一个常见问题&#xff1a;在使用画板功能辅助标注时&#xff0c;PPT无法正常切换&#xff0c;影响了微课的流畅性。这是一个典型的技术冲突问题&#xff0c;关系…

安防综合管理系统EasyCVR视频汇聚平台Linux环境下如何测试UDP端口是否正常开启?

视频汇聚EasyCVR安防监控视频系统采用先进的网络传输技术&#xff0c;支持高清视频的接入和传输&#xff0c;能够满足大规模、高并发的远程监控需求。平台灵活性强&#xff0c;支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大…

kernel32.dll下载地址:如何安全地恢复系统文件

关于从网络上寻找kernel32.dll的下载地址&#xff0c;这通常不是一个安全的做法&#xff0c;而且可能涉及到多种风险。kernel32.dll是Windows操作系统的核心组件之一&#xff0c;负责内存管理、进程和线程管理以及其他关键系统功能。因为kernel32.dll是系统的基础文件&#xff…

国家海洋环境预报中心李本霞:全国首个海浪智能预报系统已投入业务化运行,AI助力海浪预报多项突破

近日&#xff0c;在第 20 届 CCF HPC China 2024 大会中&#xff0c;第六届海洋数值预报与高性能计算论坛圆满举办。在本次大会上&#xff0c;国家海洋环境预报中心海浪预报室主任李本霞以「人工智能在海浪预报中的应用」为主题展开演讲&#xff0c; HyperAI超神经在不违原意的…

Leetcode—1188. 设计有限阻塞队列【中等】(多线程)

2024每日刷题&#xff08;183&#xff09; Leetcode—1188. 设计有限阻塞队列 C实现代码 class BoundedBlockingQueue { public:BoundedBlockingQueue(int capacity) {sem_init(&enSem, 0, capacity);sem_init(&deSem, 0, 0);}~BoundedBlockingQueue() {sem_destroy(…

2024年10月15日读书笔记

前面已经提到了我们要使用自上而下的方法去构建金字塔结构 下面让我们用一个例子试试&#xff1a; 下面举例说明应用以上方法时思维的发展过程。 表3-1是美国某大型饮料公司财务部主管写的一份备忘录&#xff0c;我们将试着用以上方法改写该备忘录。 表3-1 答非所问的例子 收…

解读华为云Kuasar多沙箱容器技术,带来更强隔离性和安全性

摘要&#xff1a;沙箱技术的引入&#xff0c;为容器提供了更强的隔离性和安全性&#xff0c;成为云原生技术的重要组成部分。 本文来源 《华为云DTSE》第五期开源专刊&#xff0c;作者&#xff1a;华为云云原生开源团队研发工程师。 近年来&#xff0c;云原生容器技术飞速发展&…

软件供应链十年:探索开源的增长、风险和未来

回顾软件供应链状况报告的 10 年既是一个里程碑&#xff0c;也是一次行动号召。在过去十年中&#xff0c;开源消费改变了软件开发的世界。我们看到了前所未有的创新&#xff0c;但也出现了新的挑战&#xff0c;特别是在管理软件供应链的安全性和完整性方面。 在 Sonatype&…

【AcWing】算法基础课-数据结构

目录 1、单链表 2、双链表 3、栈 3.1 模拟栈 3.2 表达式求值 4、队列 5、单调栈 6、滑动窗口 7、KMP字符串 8、Trie字符串统计 方法一 方法二 9、并查集 9.1 合并集合 9.2 连通块中点的数量 10、堆 10.1 堆排序 10.2 模拟堆 11、哈希表 11.1 模拟散列表 拉…

内核提供的通用I2C设备驱动I2C-dev.c分析:file_ops篇

往期内容 I2C子系统专栏&#xff1a; I2C&#xff08;IIC&#xff09;协议讲解-CSDN博客SMBus 协议详解-CSDN博客I2C相关结构体讲解:i2c_adapter、i2c_algorithm、i2c_msg-CSDN博客内核提供的通用I2C设备驱动I2c-dev.c分析&#xff1a;注册篇 总线和设备树专栏&#xff1a; 总线…

从零开始实现大语言模型(十二):文本生成策略

1. 前言 大语言模型GPTModel通过多轮推理生成连续自然语言文本&#xff0c;每轮推理仅生成一个token。对输入文本做tokenization&#xff0c;将输入文本转换成包含num_tokens个token ID的列表&#xff0c;并输入大语言模型GPTModel&#xff0c;可以得到num_tokens个维度为voca…

第T4周:TensorFlow实现猴痘识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标&#xff1a; 实现猴痘病例图片的准确实别 具体实现&#xff1a; &#xff08;一&#xff09;环境&#xff1a; 语言环境&#xff1a;Python 3.10 编 译…

mysql innodb 引擎如何直接复制数据库文件?

mysql innodb 引擎如何直接复制数据库文件&#xff1f;介绍如下&#xff1a; 1、首先找到数据库文件所在位置 一般可以看my.conf/my.ini配置的文件的“datadir” 看示例&#xff1a; “MAMP”在Macos下的数据库文件位置&#xff1a; /Library/Application Support/appsolu…

DAY35||452.用最少数量的箭引爆气球 |435.无重叠区间 |763.划分字母区间

重叠区间专场。 452.用最少数量的箭引爆气球 题目:452. 用最少数量的箭引爆气球 - 力扣&#xff08;LeetCode&#xff09; 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xst…

恢复已删除文件的 10 种安卓数据恢复工具

由于我们现在在智能手机上存储了大量重要文件&#xff0c;因此了解数据恢复工具变得很重要。您永远不会知道什么时候需要使用 安卓 数据恢复工具。 由于不乏 Windows 数据恢复工具&#xff0c;因此从崩溃的计算机中恢复文件很容易。但是&#xff0c;当涉及到从 安卓恢复数据时…