Spring Cloud微服务入门(一)

微服务的演变过程 

//controller 视图交互层 前端数据处理传给service
//1.DAO @RequestBody userDAO
String id;String type;
{"id":"lcs",
"type":"lcs"}
//2.GET请求 findUserById?id=1&type=lcs
            @RequestParam String id
            @RequestParam String type
//3.POST请求 findUserById/{id}/{type}
            @Pathvariable String id
            @Pathvariable String type

单体架构

定义:功能、业务集中在一个发布包(war、jar)里,部署运行在同一个容器(tomcat)中。

在单体架构中,系统通常采用分层架构模式,按技术维度对系统进行划分,比如持久化层、业务逻辑层、表示层。

1.单体架构的优点:

2.系统的架构简单。

系统在开发、测试、部署时更方便。

单体架构存在的问题:

1.系统内通常以API的形式互相访问,耦合紧密导致难以维护。

2.各业务领域需要采用相同的技术栈,难以快速应用新技术。

3.对系统的任何修改都导致整个系统必须一起重新部署、升级,运维成本高。

4.在系统负载增加时,难以进行水平扩展。 当系统中一处出现问题,会影响整个系统。

垂直架构

第一个是为了业务之间互不影响

第二个是在研发团队的壮大后为了提高效率,减少组件之间的依赖。

优点:

项目拆分流量做了分流,解决了并发问题,同时可以对模块进行针对性优化

一个子项目出问题不会影响到其他子项目,提高容错率

缺点:

子项目间相互独立, 无法进行相互调用

子项目间相互独立, 存在重复造轮子问题

SOA架构

优点:

使用注册中心解决了服务间调用关系的自动调节

缺点:

服务间会有依赖关系,一旦某个环节出错会影响较大( 服务雪崩 )

服务关系复杂,运维、测试部署困难

微服务架构

微服务,又叫微服务架构。微服务架构是一种架构风格,它将一个复杂的应用拆分成多个独立自治的服务,服务与服务间通过松耦合的形式交互。

微服务特性:

每个微服务可独立运行在自己的容器里。

一系列独立运行的微服务共同构建起整个系统。

每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如内容管理、用户管理等。

可使用不同的语言与数据存储技术。

微服务之间通过轻量的通信机制进行通信,例如通过REST API进行调用。

全自动的部署机制。 

微服务优点:

单个服务更易于开发、维护。

单个微服务启动比较快。

局部修改容易部署。

技术栈不受限。

按需伸缩。

微服务缺点:

复杂度高 微服务间通过REST、RPC等形式交互,需要考虑被调用方故障、过载、消息丢失等各种异常情况,代码逻辑更加复杂。

运维复杂 系统由多个独立运行的微服务构成,运维人员需要对系统有细致的了解才能够更好的运维系统。

影响性能 微服务之间进行交互过程中通信的延时,会对服务间的访问引起较大的影响。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电商大数据采集|电商API接口|自动化采集|人工采集

大数据采集是指从海量、异构、分散、动态的网络环境中收集、提取和存储数据的过程。大数据采集主要分为两种方式:自动化采集和人工采集。 1.自动化采集 电商API自动化采集是利用爬虫技术和API等方式,通过编写程序实现对网站或者应用程序中的数据进行自…

用户认证安全性测试

用户认证安全性测试 认证与会话管理认证--Authentication01 常见认证方式02 session认证Session Fixation攻击Session保持攻击 03 Token认证多因素认证session和token区别 04 暴力破解密码的那些事密码设置推荐策略 会话--Authorization 权限控制权限管理方式垂直权限管理水平权…

5.3.2 实验2:配置交换机端口安全

1、实验目的 通过本实验可以掌握: 交换机管理地址配置及接口配置。查看交换机的MAC地址表。配置静态端口安全、动态端口安全和粘滞端口安全的方法。 2、实验拓扑 配置交换机端口安全的实验拓扑如图所示。 配置交换机端口安全的实验拓扑 3、实验步骤 &#xff…

界面控件DevExtreme JS ASP.NET Core 2024年度产品规划预览(一)

在本文中我们将介绍今年即将发布的v24.1附带的主要特性,这些特性既适用于DevExtreme JavaScript (Angular、React、Vue、jQuery),也适用于基于DevExtreme的ASP.NET MVC/Core控件。 注意:本文中列出的功能和特性说明官方当前/预计的发展计划&a…

Jenkins--任务详解

一、任务类型 Jenkins的主要功能的实现是由执行任务去完成的,常用的任务类型主要有以下三种: 自由风格任务(Free Style Project): 这是Jenkins中最常用的任务类型,允许你自定义各种构建步骤和配置选项,如源码管理、构建触发器、…

【第十一届大唐杯全国大学生新一代信息通信技术大赛】赛题分析

赛道一 一等奖 7% 二等奖 15% 三等奖 25% 赛道二 参考文档: 《第十一届大唐杯全国大学生新一代信息通信技术大赛(产教融合5G创新应用设计)专项赛说明.pdf》 一等奖:7% 二等奖:10% 三等奖:20% 赛项一&am…

使用 Flume 将 CSV 数据导入 Kafka:实现实时数据流

使用 Flume 将 CSV 数据导入 Kafka:实现实时数据流 文介绍了如何使用 Apache Flume 将 CSV 格式的数据从本地文件系统导入到 Apache Kafka 中,以实现实时数据流处理。通过 Flume 的配置和操作步骤,我们可以轻松地将数据从 CSV 文件中读取并发…

Django複習總結

①Django是框架。那麼什麼是框架: 框架很像是一個骨架,帶有很多默認器官的骨架。我們可以根據需要改寫、複寫這些器官。 從而實現自己所需要的功能。 ②Django是MVC模型\MVT模型: MVC模型:M:models模型層 V&#…

wireshark解析grpc/protobuf的方法

1,wireshark需要安装3.20以上 下载地址:https://www.wireshark.org/ 2,如果版本不对,需要卸载,卸载方法: sudo rm -rf /Applications/Wireshark.app sudo rm -rf $HOME/.config/wireshark sudo rm -rf /…

【信号处理】基于变分自编码器(VAE)的脑电信号增强典型方法实现(tensorflow)

关于 在脑电信号分析处理任务中,数据不均衡是一个常见的问题。针对数据不均衡,传统方法有过采样和欠采样方法来应对,但是效果有限。本项目通过变分自编码器对脑电信号进行生成增强,提高增强样本的多样性,从而提高最终…

【Layui】------ layui实现table表格拖拽行、列位置的示例代码

一、完整的示例代码&#xff1a;&#xff08;请使用layui v2.8.3的版本&#xff09;看懂就能用、不要照搬、照搬会出错误、拷贝重要代码改改符合你自己的需求。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

Camtasia Studio2024汉化版下载(功能强大的屏幕录制和视频编辑软件)

Camtasia Studio 2024是一款功能强大的屏幕录制和视频编辑软件&#xff0c;由TechSmith公司开发。这款软件不仅能够帮助用户轻松地记录电脑屏幕上的任何操作&#xff0c;还可以将录制的视频进行专业的编辑和制作&#xff0c;最终输出高质量的视频教程、演示文稿、培训课程等。 …

如何在本地使用Ollama运行开源LLMs

本文将指导您下载并使用Ollama&#xff0c;在您的本地设备上与开源大型语言模型&#xff08;LLMs&#xff09;进行交互的强大工具。 与像ChatGPT这样的闭源模型不同&#xff0c;Ollama提供透明度和定制性&#xff0c;使其成为开发人员和爱好者的宝贵资源。 我们将探索如何下载…

【大数据存储】实验4 NoSQL数据库

实验4 NoSQL数据库 NoSQL数据库的安装和使用实验环境&#xff1a; Ubuntu 22.04.3 Jdk 1.8.0_341 Hadoop 3.2.3 Hbase 2.4.17 Redis 6.0.6 mongdb 6.0.12 mogosh 2.1.0 Redis 安装redis完成 新建终端启动redisredis-server新建一个终端redis-cli 建表操作 尝…

Vue项目中 安装及使用Sass(scss)

普通方法 一、安装使用scss 1. 安装 scss npm install scss --save2. 安装 node-sass 和 sass-loader sass-loader&#xff1a;把 sass编译成css node-sass&#xff1a;nodejs环境中将sass转css 提示&#xff1a;限制 node-sass&#xff0c;sass-loader 版本号&#xff0c;…

Jmeter02-1:参数化组件CVS

目录 1、Jmeter组件&#xff1a;参数化概述 1.1 是什么&#xff1f; 1.2 为什么&#xff1f; 1.3 怎么用&#xff1f; 2、Jmeter组件&#xff1a;参数化实现之CSV Data Set Config(重点中重点) 2.1 是什么&#xff1f; 2.2 为什么&#xff1f; 2.3 怎么用&#xff1f; …

高斯消元详解

算法概述 高斯消元法是一个用来求解线性方程组的算法 那么什么是线性方程组呢? 线性:每个未知数次数都为1次方程组:多个方程&#xff0c;多个未知数。 &#xff08;a1x1a2x2..anxnbn&#xff09;x为一次的 当x是平方的时候就不是线性 简而言之就是有多个未知数&#xff…

docker版Elasticsearch安装,ik分词器安装,用户名密码配置,kibana安装

1、安装es和ik分词器 创建映射目录并赋予权限&#xff1a; mkdir -p /docker_data/elasticsearch/conf mkdir -p /docker_data/elasticsearch/data mkdir -p /docker_data/elasticsearch/plugins chmod -R 777 /docker_data/elasticsearch编写配置文件&#xff1a; vi /dock…

水果销售(源码+文档)

水果销售管理系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端添加地址首页商品详细意见反馈待发货商品分类我的代付款我的地址搜索防骗指南资料修改登录注册 后端管理分类管理反馈管理订单管理商品管理用户管理 文件包…

医疗器械5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

医疗设备5G智能制造工厂数字孪生可视化平台&#xff0c;推进行业数字化转型。在数字化浪潮的推动下&#xff0c;医疗设备行业正迎来一场深刻的变革。5G技术的崛起&#xff0c;智能制造工厂的兴起&#xff0c;以及数字孪生可视化平台的出现&#xff0c;正在共同推动医疗设备行业…