2.初识springcloud

文章目录

  • 1.什么是SpringCloud
    • 1.1版本的介绍
  • 2.Spring Cloud实现方案
  • 3.环境搭建
  • 4.服务拆分原则
  • 5.数据准备
    • 5.1订单服务
    • 5.2商品服务

大家好,我是晓星航。今天为大家带来的是 初识springcloud 相关的讲解!😀

1.什么是SpringCloud

简单来说,SpringCloud就是分布式微服务架构的一站式解决方案,是微服务架构落地的多种技术的集合:

  • Distributed/versioned configuration 分布式版本配置
  • Service registrationand discovery 服务注册和发现
  • Routing路由
  • Service-to-service calls 服务调用
  • Load balancing 负载均衡
  • Circuit Breakers 断路器
  • Distributed messaging 分布式消息

Spring Cloud 并不是Spring团队研发的框架,它只是把一些比较优秀的解决微服务架构中常见问题的开源框架基于SpringCloud规范进行了整合,并基于SpringBoot的风格,对这些组件进行封装,屏蔽掉了复杂的配置和实现原理,为开发者提供了开箱即用的微服务开发体验.这些开源技术的框架是由各个公司来维护的.Spring Cloud 就是这些微服务的大管家.

1.1版本的介绍

springcloud官网

image-20240528172910249

在使用springcloud时,我们还需要注意版本的区别,在不同的版本中spirngcloud是不一样的,因此我们在使用springcloud来做项目时一定要确定版本,要保证版本的一致性。

2.Spring Cloud实现方案

在SpringCloud的规范下,有很多实现,其中最为出名的是

  • Spring Cloud Netflix
  • Spring Cloud Alibaba

Spring Cloud Netflix

Spring Cloud Netflix是 Netflix OSS(Netflix Open Source Software)在Spring Cloud规范下的实现,包含的组件及其主要功能大致如下:

  • Eureka:服务注册和发现
  • Zuul:服务网关
  • Ribbon: 负载均衡
  • Feign:服务调用组件
  • Hystrix:断路器,提供服务熔断和限流
  • Hystrix Dashboard:监控面板

主键学习:

Springcloud官方Spring cloud netfilxSpring cloud alibaba
服务注册/发现EurekaEurekaNacos
服务调用OpenFeignFeignDubbo
配置中心SpringCloudConfigArchaiusNacos
服务网关SpringCloudGatewayZuulSpringCloudGateway
负载均衡SpringCloud LoadBalanceRibbonDubbo

3.环境搭建

在电脑上安装jdk17,并配置环境变量

  1. 安装jdk17

image-20240528182329346

  1. 配置jdk17环境变量
image-20240528182411927

在xshell虚拟机上安装jdk17 或 jdk1.8都可

image-20240528184139070

CenterOs安装jdk17教程

在xshell虚拟机上安装mysql

image-20240528184107230

下载好后链接mysql试试

image-20240528185327299

4.服务拆分原则

1.单一职责

单一职责原则原本是面对对象设计中的一个基本原则,它指的是一个类应该专注于单一功能。不要存在多于一个导致类变更的原因。

2.服务自治 自己独立治理

每一个服务都可以独立开发,构建,部署,运行,测试

比如企业管理

每个部分负责每个部门的事情,并且尽可能少的受其他团队影响

研发部门只负责需求功能的开发,而不负责需求文档的书写和 UI 的设计,并且其他部门的人员变动,流程变更,也尽可能少的影响研发部门。部门和部门之间尽可能自治。

3.单向依赖

微服务之间需要做到单项依赖,不能存在循环依赖,双向依赖

image-20240528185752641

image-20240528185801935

如果一些业务场景,存在循环依赖或者双向依赖,采用其他方式去解决,比如分布式消息等

image-20240528185822029

5.数据准备

分开建库,准备数据库表的搭建。

我们工程搭建有两种方法:

1.与Javaee一样,在idea中一个一个的搭建,并建不同的类

image-20240530130813272 image-20240530130747802

2.采用父子工程的方式搭建

5.1订单服务

根据订单ID,获取订单详情

写一个简单的订单服务来举例父子项目搭建以及代码实现:

在项目里右键点击Module新建子工程,以及父工程(新建两个Module即可)

image-20240529231425182

在工程中选择java,jdk17,maven项目,名字按需取即可

image-20240529231353797

再次返回我们主项目创建时的.xml文件可以看到,他名下有两个新的Module文件创建完成,如下图所示:

image-20240529231725655

在子工程的.xml文件中引入所需依赖(springboot,springweb,mysql,mybatis…)

image-20240529232002736

引入项目打包依赖

image-20240529232103431

在二号子工程中也一样引入这几个依赖,到此我们前期准备工作就完毕了,可以开始写代码了。

image-20240530130021041

先创建目录结构,config配置类,controller控制层,mapper数据访问层,model实体类层,service服务层

image-20240404202219072

image-20240324112329505

然后依次写入对应的代码

image-20240530130924627 image-20240530130938133 image-20240530130951767 image-20240530131002341 image-20240530131018236 image-20240530131043661

启动类:

image-20240530131109301

.yml配置文件:

image-20240530131140048

结果展示:

image-20240530131502120

5.2商品服务

根据商品ID,获取商品信息

image-20240530131755274

先创建目录结构,controller控制层,mapper数据访问层,model实体类层,service服务层

image-20240404202219072

image-20240324112329505

然后依次写入相应代码:

image-20240530131900458 image-20240530131910732 image-20240530131919459

image-20240530131930664

启动类:

image-20240530131941598

.yml配置文件:

image-20240530132014273

运行结果:

image-20240530132753655

订单服务与商品服务关系:

image-20240530132853653

当前项目存在问题:

1.url是写死的,如果IP地址发生变化,需要修改代码

2.如果多级部署,如何处理?

3.返回结果如何公用,url非常容易写错

4.接口对外开放,有一定风险

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

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

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

相关文章

【算法基础实验】图论-最小生成树-Prim的即时实现

理论知识 Prim算法是一种用于计算加权无向图的最小生成树(MST, Minimum Spanning Tree)的贪心算法。最小生成树是一个连通的无向图的子图,它包含所有的顶点且总权重最小。Prim算法从一个起始顶点开始,不断将权重最小的边加入生成…

Excel表格添加趋势线_数据拟合

一个曲线通过补偿算法拟合为另一个曲线,通常可以通过多种数学和计算技术实现。这里也可以通过Excel表格添加趋势线,然后对趋势线进行拟合,得到趋势预测公式来达到数据补偿。 通过把你需要的数据导入到Excel表格中。 通过 “ 插入 ” --> “…

谷歌云AI新作:CROME,跨模态适配器高效多模态大语言模型

CROME: Cross-Modal Adapters for Efficient Multimodal LLM https://arxiv.org/pdf/2408.06610 Abstract 研究对象:Multimodal Large Language Models (MLLMs) demonstrate remarkable imagelanguage capabilities, but their widespread use faces challenges in…

论坛 推荐

畅议论坛:http://udbbs.top/http://udbbs.top/

查看U盘的具体信息,分区表格式、实际容量和分区状态

查看U盘的具体信息,分区表格式、实际容量和分区状态 前言: 利用windows自带的命令行窗口就可以 1、使用命令提示符查看MBR和GPT分区类型 (1)按“Windows R”键,在弹出的运行对话框中输入“diskpart”,并按…

游戏开发设计模式之工厂模式

目录 简单工厂模式(Simple Factory Pattern) 应用场景: 优缺点: 工厂方法模式(Factory Method Pattern) 应用场景: 优缺点: 抽象工厂模式(Abstract Factory Patte…

碰撞检测 | 基于ROS Rviz插件的多边形碰撞检测仿真平台

目录 0 专栏介绍1 基于多边形的碰撞检测2 碰撞检测仿真平台搭建2.1 多边形实例2.2 外部服务接口2.3 Rviz插件化 3 案例演示3.1 功能介绍3.2 绘制多边形 0 专栏介绍 🔥课设、毕设、创新竞赛必备!🔥本专栏涉及更高阶的运动规划算法轨迹优化实战…

Debian12安装tomcat8

jdk安装 安装Tomcat前需要先安装JDK,JDK安装参见: https://zhengshaoshaolin.blog.csdn.net/article/details/141407600 tomcat安装 1、下载安装 Apache Tomcat 访问官方 Apache Tomcat 下载页面,获取最新的二进制文件 或者使用如下的 wg…

Spring DI 数据类型—— set 方法注入

首先新建项目&#xff0c;可参考 初识IDEA、模拟三层--控制层、业务层和数据访问层 一、spring 环境搭建 &#xff08;一&#xff09;pom.xml 导相关坐标 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.or…

【Win开发环境搭建】Redis与可视化工具详细安装与配置过程

&#x1f3af;导读&#xff1a;本文档提供了Redis的简介、安装指南、配置教程及常见操作方法。包括了安装包的选择与配置环境变量的过程&#xff0c;详细说明了如何通过修改配置文件来设置密码和端口等内容。同时&#xff0c;文档还介绍了如何使用命令行工具连接Redis&#xff…

ArcGIS如何将投影坐标系转回为地理坐标系

有时候两个数据&#xff0c;一个为投影坐标系&#xff0c;另一个为地理坐标系时&#xff0c;在GIS软件中位置无法叠加到一起&#xff0c;这需要将两个或多个数据的坐标系统一&#xff0c;可以直接将地理坐标系的数据进行投影&#xff0c;或将投影坐标系转为地理坐标系。下面介绍…

在使用Simulink进行FOC(Field-Oriented Control,场向量控制)仿真时,如果遇到波形丢失精度的问题,该这么解决

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

【Qt】输入类控件QLineEdit

目录 输入类控件QLineEdit 例子&#xff1a;录入个人信息 例子&#xff1a;使用正则表达式验证输入框的数据 例子&#xff1a;验证俩次输入密码一致 例子&#xff1a;切换显示代码 输入类控件QLineEdit QLineEdit 用来表示单行输入框&#xff0c;可以输入一段文本&#xf…

网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程

前言 1.入行网络安全这是一条坚持的道路&#xff0c;三分钟的热情可以放弃往下看了。2.多练多想&#xff0c;不要离开了教程什么都不会了&#xff0c;最好看完教程自己独立完成技术方面的开发。3.有时多百度&#xff0c;我们往往都遇不到好心的大神&#xff0c;谁会无聊天天给…

QT-五子棋游戏

QT-五子棋游戏 一、演示效果二、核心代码三、下载链接 一、演示效果 二、核心代码 #include "GameModel.h" #include <time.h> #include <stdlib.h>GameModel::GameModel(){}void GameModel::startGame(GameType type){gameType type;//初始化棋盤game…

如何备份电脑数据到U盘?防止数据丢失从备份开始

在数字化时代&#xff0c;数据备份已经成为我们日常生活中不可或缺的一部分。电脑中的数据&#xff0c;无论是工作文件、学习资料&#xff0c;还是珍贵的照片和视频&#xff0c;都是我们生活中重要的资产。为了防止数据丢失&#xff0c;将数据备份到U盘是一个简单且实用的方法。…

【IEEE独立出版】第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024,9月13-15)

第三届人工智能、物联网与云计算技术国际会议(AIoTC 2024)将于2024年9月13日-15日在中国武汉举行。 本次会议由华中师范大学伍伦贡联合研究院与南京大学联合主办、江苏省大数据区块链与智能信息专委会承办、江苏省概率统计学会、江苏省应用统计学会、Sir Forum、南京理工大学、…

《重温JavaScript五子棋小游戏》

目录 全部运行代码&#xff1a;五子棋游戏的基本步骤&#xff1a;代码剖析&#xff1a;1. 初始化游戏界面2. 管理游戏状态3. 玩家交互4. 电脑AI5. 胜负判定6. 游戏控制 本文通过实现一个基本的五子棋游戏&#xff0c;展示了如何使用HTML、CSS和JavaScript来构建一个简单的交互式…

GIS应用水平考试一级真题和答案分享~

2012年-2018年完整真题和答案 GIS应用水平考试资料分享https://docs.qq.com/doc/DRmxxaVhpbGJXSGho?u5295a88d71d8480d971da4e3334ee913

ES高级查询Query DSL查询详解、term术语级别查询、全文检索、highlight高亮

文章目录 ES高级查询Query DSLmatch_all返回源数据_source返回指定条数size分页查询from&size指定字段排序sort 术语级别查询term query术语查询terms query多术语查询range query范围查询exists queryids queryprefix query前缀查询wildcard query通配符查询fuzzy query模…