如何使用springCloud搭建一个简单的分布式demo

springcloud教程 -- 1.快速搭建入门级demo,看这一篇就够了 废话不多讲,跟紧我,开启你的SpringCloud初体验 首先回顾微服务的基本组成: [图片 here] 生产者:提供服务 消费者:消费服务 服务注册/发现中心:服务注册,发现,监控 所以,首先明白springcloud微服务的架构基础:生产者(client),消费者(client),服务注册/发现中心(server) 阅读详情

这里是修真院后端小课堂,每篇分享文从

八个方面深度解析后端知识/技能,本篇分享的是:

【如何使用springCloud搭建一个简单的分布式demo】

大家好,我是IT修真院北京分院第34期的学员岳晓鹏,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java任务10,深度思考中的知识点——如何使用springCloud搭建一个简单的分布式demo。自己只是实现了spring cloud的注册中心和简单的负载均衡,应该算是spring cloud的简单介绍。

(1)背景介绍:

微服务

微服务架构风格就像是把小的服务开发成单一应用的形式, 运行在其自己的进程中,并采用轻量级的机制进行通信(一般是 HTTP 资源 API)。这些服务都是围绕业务能力来构建,通过全自动部署工具来实现独立部署。这些服务,其可以使用不同的编程语言和不同的数据存储技术,并保持最小化集中管理。

Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

(2)知识剖析:

服务注册中心

使用微服务,微服务的本质还是各种API接口的调用。服务中心是统一管理我们的服务的,使用Spring Cloud Eureka,我们可以将自己定义的API接口注册到Spring Cloud Eureka上,Eureka负责服务的注册与发现,构成Eureka体系的包括:服务注册中心、服务提供者、服务消费者。

路由网关zuul

服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,

除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。

熔断器Hystric

微服务系统是一个分布式架构,服务之间是彼此调用的,当有一个服务出现了故障,而服务的调用方不知道服务出现故障,

此时调用方的请求不断的增加,最后就会调用方形成任务的积压,最终导致自身服务的瘫痪。熔断器的熔断机制类似电路中的短路,当我们某个服务不可用时,直接快速切断该服务的连接,返回一个错误的页面,这样做好处是仅仅是依赖该服务的业务无法正常运作,而其他的不依赖于这个服务的其他服务可以正常运作。

负载均衡组件ribbon

为了提高服务的可用性,我们一般会将相同的服务部署多个实例,负载均衡的作用就是使获取服务的请求被均衡的分配到各个实例中。我们在之前的任务里学了nginx实现了负载均衡,springCloud里提供了ribbon组件给我们,配合springCloud封装好的RestTemlate只需要简单的配置即可实现负载均衡。

Feign跟rebbin一样都是实现负载均衡的组件,不同的是feign里面封装了ribbon和hystric,不用像ribbon那样必须结合RestTemplate即可使用。

服务配置中心config

对于微服务还不是很多的时候,各种服务的配置管理起来还相对简单,但是当成百上千的微服务节点起来的时候,服务配置的管理变得会复杂起来。分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件Spring Cloud Config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。

消息中心bus

Spring Cloud Config中,我们知道的配置文件可以通过Config Server存储到Git等地方,通过Config Client进行读取,

但是我们的配置文件不可能是一直不变的,当我们的配置文件放生变化的时候如何进行更新哪?

一种最简单的方式重新一下Config Client进行重新获取,但Spring Cloud绝对不会让你这样做的,Spring Cloud Bus提供一种操作使得我们在不关闭服务的情况下更新我们的配置。

(3)常见问题:

pring cloud和dubbo的区别?

(4)解决方案:

在微服务相关的这几个方面,服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等来比较下的话,Dubbo 只是实现了服务治理,而 Spring Cloud 子项目分别覆盖了微服务架构下的众多部件,服务治理只是其中的一个方面。

(5)编码实战:

介绍了下hashmap几个概念的实现及put操作的流程

(6)拓展思考:

(7)参考文献:

https://www.cnblogs.com/xiaojunbo/p/7090742.html【1】优快云博客

http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html【2】个人博客

(8)更多讨论:

Q1:什么是客户端负载均衡?

A1:负载均衡一般分为服务端负载均衡和客户端负载均衡,服务端的负载均衡通过硬件(如F5)或者软件(如Nginx)来实现。服务端负载均衡是在硬件设备或者软件模块中维护一份可用服务清单,然后客户端发送服务请求到这些负载均衡的设备上,这些设备根据一些算法均衡的将请求转发出去。而客户端负载均衡则是客户端自己从服务注册中心获取服务清单缓存到本地,然后通过客户单内部算法均衡的去访问这些服务。

Q2:如何在服务端宕机的情况下保证服务运行?
A2:简单来说,这就是熔断器的功能,在服务提供者不能提供服务后,熔断器就会根据检测机制,将服务从注册中心清除,下次有别的请求的时候,就不会去访问已经宕机的服务,返回一个错误信息或导入到别的备用服务上边。有时候会有注册中心宕机的情况,这种情况下,就需要布置注册中心集群,保证注册中心不会全部宕机能好点。
Q3:如何区分spring eureka的生产者和消费者?

A3:因为spring eureka中只有server和client,生产者和消费者都属于client,他们之间没有明确的界限,根据具体行使的功能来进行划分,你提供服务,你就是服务生产者,你从别的client得到服务,你就是消费者,两者可以互换,功能也可以相互重叠,我们习惯上将他们的职责分清。比方说整个cloud中的其余组件,都是client,但是提供不同的功能,比如负载均衡,熔断等功能,只让它进行特定的功能。区分的话,从配置文件的服务名称来进行区分。

(9)鸣谢:

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

Spring Cloud Alibaba 三十二 Dubbo 在SpringBoot3环境下集成演示 Nacos:作为注册中心,为 Dubbo 提供服务注册和发现;Dubbo:高性能 RPC 框架,用暴露服务、引用服务;:整合 Nacos、提供更多微服务组件(Config、Sentinel、Seata 等)支持。:升级到 Jakarta 底层包,需保证依赖版本与 BOM 对齐。示例流程Provider:暴露接口实现,,注册到 Nacos;Consumer引用远程接口,从 Nacos 获取地址进行 RPC 调用;测试。 阅读详情

相关推荐

Spring Cloud - 带你认识微服务,简单demo实现服务拆分及远程调用

微服务是一种架构风格,按照业务板块来划分应用代码,使单个应用的职责更清晰,相互之间可以做到独立升级迭代。

CYK_byte的博客 2545

Springcloud(demo)

Springcloud+eureka+feign+hystrix+zuul

幻化成风 2637

springcloud项目Demo

Spring cloud 实战项目(Spring cloud zuul、spring cloud eureka、spring cloud config、 spring cloud admin 、spring cloud 微服务1、微服务2、spring cloud zipkin、网关的熔断+负载均衡、 微服务调用的熔断+负载均衡,集成mybatis、mq消息队列等、是Spring cloud学习的一个样例工程,通过这个工程, 基本掌握Spring cloud 各个组件的功能及使用方法)

spring cloud实例Demo详细搭建(一)

入门篇

weixin_45131680的博客 2396

【雷达信号处理实战】从原理到代码:脉冲多普勒(PD)处理全流程解析与MATLAB仿真

本文深入解析了脉冲多普勒(PD)雷达信号处理的核心原理与全流程。通过剖析多普勒效应、脉冲压缩与慢时间FFT等关键技术,并结合详细的MATLAB仿真代码,手把手指导如何从信号建模、回波模拟到最终生成距离-多普勒谱,实现运动目标的精确测距与测速,直观展示了相参积累带来的显著性能增益。

pca5navigator的博客 950

ESP32 WiFi自平衡小车硬件与PID控制实战

自平衡小车是典型的嵌入式实时反馈控制系统,其核心依赖姿态感知(如MPU6050)、电机驱动(如L298N)与闭环控制算法(如PID)的协同。系统通过IMU采集俯仰角,经互补滤波融合处理,再由PID控制器实时计算PWM输出,驱动直流电机产生恢复力矩;WiFi模块(ESP32内置)则提供远程遥控接口,实现AP模式下的Web指令交互。该架构兼具硬实时性(毫秒级采样与响应)与软实时性(HTTP服务),广泛应用于机器人教学、智能小车开发及边缘控制原型验证。本文围绕ESP32平台,详解传感器接口、驱动电路设计、PID抗

weixin_42509513的博客 391

SpringCloud从入门到入土01-SpringCloud入门概述

1.微服务与分布式架构 1.1分布式架构 分布式架构是一个比较大的业务系统,划分成多个业务服务,部署在不同的服务器上减缓单个服务器的压力,各个业务模块通过接口交付数据。 1.2微服务架构 分布式也属于微服务,只是业务的拆分思想是微服务,但是微服务不一样和分布式一样都部署在不同的机器上,对于不是很大的项目微服务都是部署在同一台服务器上。 分布式解决方案通常有两种,一种是springcloud,一站式解决方案,还有一种就是Dubbo+zookeeper(半自动,需要整合别人) 这块的区别后面学习Dubbo+zo

weixin_44480609的博客 258

Unity接入Google登录:Credential Manager完整集成指南与避坑实践

在移动应用开发中,第三方登录是提升用户体验和降低注册门槛的关键技术。其核心原理是通过OAuth 2.0等授权协议,安全地获取用户在平台的身份凭证。对于面向海外市场的Unity应用,Google登录因其庞大的用户基数成为首选方案。然而,随着Android系统更新和隐私政策收紧,传统的WebView登录方式面临兼容性挑战。Credential Manager作为Google推出的现代化凭据管理API,通过系统级集成解决了这一问题,它统一了密码、通行密钥和第三方登录的调用接口,显著提升了登录成功率和原生体验。在U

weixin_28025327的博客 318

Spring Cloud 5分钟搭建教程(附上一个分布式日志系统项目作为参考)

https://github.com/leoChaoGlut/log-sys 上面是我基于Spring Cloud ,Spring Boot 和 Docker 搭建的一个分布式日志系统. 目前已在我司使用. 想要学习Spring Cloud, Spring Boot以及Spring 全家桶的童鞋,可以参考学习,如果觉得好,star 一下吧~ <<<< 20170602...

一介布衣的博客 1227

【数据分析生命周期全揭秘】从零开始打造你的数据科学项目 | 最全指南

在当今数据驱动的世界中,数据科学正在颠覆传统行业,成为企业决策和价值创造的重要引擎。然而,如何科学、系统地开展一个数据分析项目?这是很多人关心的核心问题。本篇文章基于经典数据分析课程内容,深入解读数据分析生命周期的每个阶段,让你快速掌握从“发现问题”到“落地应用”的完整流程。如果你正在学习或准备从事数据分析领域,这篇文章一定会对你大有帮助!数据分析生命周期的六大阶段数据分析生命周期的六个阶段相辅相成,每个阶段都至关重要:发现问题:明确需求,提出假设。数据准备:清洗、转换和可视化数据。

AI手套的博客 1739

嵌入式硬件实战:RC、LC与RL滤波电路的设计与选型指南

本文深入探讨了嵌入式系统中RC、LC与RL滤波电路的设计与选型策略。通过生活化比喻和实战案例,详细解析了三种滤波电路的工作原理、应用场景及工程注意事项,帮助工程师根据电流大小、频率特征和成本预算选择最优方案,提升嵌入式硬件设计的稳定性和抗干扰能力。

kiwi8的博客 284

SpringBoot整合SpringCloud

1. SpringCloud特点 SpringCloud专注于为典型的用例和扩展机制提供良好的开箱即用体验,以涵盖其他情况: 分布式/版本化配置 服务注册和发现 Eureka 路由 Zuul 服务到服务的呼叫 负载均衡 Ribbon 断路器 Hystrix 分布式消息传递 2. 分布式系统的三个指标CAP 在介绍SpringCloud默认使用的注册中心前,先介绍分布式系统的三个指标,分别是: Consistency:一致性,在分布式系统中,更新操作执行成功后所有的用户的读

大仙 2997

用Multisim仿真AD630锁定放大器:从2012年电赛A题实战到避坑指南

本文详细介绍了如何使用Multisim仿真AD630锁定放大器,从2012年电赛A题实战出发,提供完整的电路搭建、参数优化及避坑指南。重点解析AD630的开关调制架构和双相位检测的工程实现,帮助读者在强噪声背景下有效提取微弱信号,提升电子设计竞赛和工程实践中的信号处理能力。

weixin_42549451的博客 202

微服务-开篇

前言

丁宿的博客 207

瑞芯微rk3568移植openbmc(一)----关于ob移植的优缺点

基于rock3a的单板,CPU为瑞芯微rk3568的环境,移植了openbmc

feixiang3839的专栏 5535

UE实现贴地线(SurfaceLine)效果

UnrealEngine实现贴地线效果

专注GIS开发 4572

简单的springboot2.0+spring cloud+eureka(分布式项目)项目搭建教程(附加源码)

//博客链接https://blog.youkuaiyun.com/hp_yangpeng/article/details/88803911 重点:本项目资源地址请点击:https://download.youkuaiyun.com/download/hp_yangpeng/11064773(ps:最好先看文档,跟着做完,然后再下载demo) 1、相关环境 开发工具:idea; springboot版本:2.1.13 springcloud版本:Finchley.SR1(注意,此处使用的是springboot2.0.x以上的

weixin_45281605的博客 1151

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

分布式框架搭建。(基于nacos+seata+springcloud)(nacos)

分布式框架搭建。(基于nacos+seata+springlcoud) 搭建nacos集群,官方 demo 很详细,本人基于 mac 手动搭建 1、安装nacos,参考https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 1)、下载安装包。 我下载的是:https://github.com/alibaba/nacos/releases/download/1.3.1/nacos-server-1.3.1.tar.gz 2)、解压下载的安装包 ..

若疆~赤云 765

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SpringCloudAlibaba分布式微服务入门搭建项目框架

场景 SpringCloud 是若干个框架的集合,包括 spring-cloud-config、spring-cloud-bus 等近 20 个子项目,提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案。 Spring Cloud 通过 Spring Boot 风格的封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、容易部署的分布式系统开发工具包。 Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应

BADAO_LIUMANG_QIZHI的博客 1197

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

springcloud config分布式配置中心的搭建

项目代码地址: https://gitee.com/xuluj/springcloud-config-demo.git 开发环境: 开发工具:Intellij IDEA 2018.3.2 springboot: 2.1.2 jdk:1.8.0_172 maven:3.5.4 步骤 1.Git环境搭建 使用码云环境搭建git服务器端 码云环境地址: https://...

qq_33382925的博客 275

【Apollo系列】1.Apollo本地运行环境搭建

文章目录1 环境搭建1.1 本地运行环境1.2 导入数据库信息1.2.1 创建ApolloPortalDB1.2.2 创建ApolloConfigDB2 本地启动2.1 Apollo Config Service和Apollo Admin Service2.1.1 新建运行配置2.1.2 配置Application2.2 Apollo-Portal参考 Apollo官方文档的介绍其实已经很详细,...

一起理解技术趋势,沉淀长期价值 3547

springcloud分布式微服务项目搭建

springcloud分布式项目继承nacos,项目如何进行依赖的配置和搭建,进行微服务各个模块之间的远程调用进行了实现,同时对一些常见的问题、注意事项、报错进行了总结,给出了博主的解决方案

m0_64882384的博客 2980

分布式之SpringCloud

怎么知道断点就达到这里,那我们看一下怎样查看源码的启动的路径,我们看一下我们订单微服务的路径,我们要集成nacos的服务发现功能,我们要引入我们的discovery的包,他是一个starter,前面我们学过springboot我们知道任何starter里面一定有个spring.factories,作为一个入口。,命名空间,服务名,然后将我们参数转化为实例。这个线程会一直在转,一直运行,如果他挂了那说明整个服务就挂掉了,好,你看着里面的异常也吃掉了,所以一直会运行,如果没有数据他会阻塞,阻塞会让出cpu。

励志成为一名优秀的全能型软件开发工程师。 2883
上一篇: SpringAOP的简单使用
下一篇: jdbc和jdbctemplate
learning__java
博客等级 码龄8年 87粉丝 174原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值