SpringCloud 协同开发方案

news2024/11/25 12:21:22

相比Springboot开发,SpringCloud开发要复杂的多,因为涉及服务的注册发现,多个微服务模块间的调用等。

最简单的解决方案是每个开发者都在本地启动一套完整的开发环境,包括网关、nacos等各个组成微服务的模块,如果系统模块较少,这种开发方案还可以接受,如果系统太多,本地启动整套环境未免太多臃肿,非常不方便。

微服务注册问题

像下面这张图,倒数第二个服务启动了两个实例,他们两个组成了一个集群。前端在调用接口的时候可能想调用A的该服务,但是可能会被路由到B的该服务上去了,这种情况是我们不希望看到的。

我们想要看到的效果是,A、B两个开发者将自己的功能开发完以后提交到服务器部署。前端可以调用到这些开发好、经过后端自测的服务接口,后端在提交自己的代码之前,不应该注册到集群中。

 为了解决上述问题,可以在bootstrap.yml文件中加入下面配置。开启如下配置以后,启动服务将不再注册到nacos中,前端调用也不会再调用到该服务。

server:
  port: 3001
# 加入下面配置,取消该服务的注册
spring:
  cloud:
    nacos:
      discovery:
        register-enabled: false

后端如果想要调用自己开发的接口,可以直接通过http://localhost:3001/接口地址调用并测试,等测试接口没问题以后可以提交自己的代码并部署,部署完成以后前端可以调用接口进行开发。

微服务间调用问题

在微服务中可以通过OpenFeign,使用微服务名称进行微服务间的调用,但是同样的,如果本地开发,我们可能想让某个请求转发到某个特定的服务上,而不是通过微服务名称进行负载均衡转发,为了将请求转发给特定的服务,可以在@FeignClient注解中指定要请求的URL,如下,是将RemoteUserService类的请求转发给http://172.20.2.3:11201服务了。注意这样写是为了本地开发方便调试,如果要提交代码需要将这些代码去掉。

@FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, url = "http://172.20.2.3:11201", fallbackFactory = RemoteUserFallbackFactory.class)
public interface RemoteUserService
{
    /**
     * 通过用户名查询用户信息
     *
     * @param username 用户名
     * @param source 请求来源
     * @return 结果
     */
    @GetMapping("/user/info/{username}")
    public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

}

 前后端联调问题

正常的前后端联调应该是后端写好代码,将代码合并到开发分支上面,部署开发分支,前端连接开发分支进行调试。

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

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

相关文章

Hive 学习Demo

背景介绍 陌陌作为聊天平台每天都会有大量用户在线&#xff0c;会出现大量的聊天数据&#xff0c;通过对聊天数据分析&#xff0c;可以更好的构建精确的用户画像&#xff0c;为用户提供更好的服务以及实现高ROI(投资回报率)的平台运营推广&#xff0c;给公司的发展决策提供精确…

智能网联汽车渗透率变化图显示预计

IDC 于 2020 年最新发布的《全球智能网 联汽车预测报告&#xff08;2020-2024&#xff09;》数据显示&#xff0c;尽管受新冠肺炎疫情冲击&#xff0c;2020 年全球智能网联汽车出货量预计较上一年下滑 10.6%&#xff0c;约为 4440 万辆&#xff0c;但到 2024 年全球智能网联汽车…

广播机制基础知识

广播机制 1.广播机制 1.1概述 1.1.1引入 1.广播的生活案例 记得以前读书的时候&#xff0c;每个班级都会有一个挂在墙上的大喇叭&#xff0c;用来广播一些通知&#xff0c;比如&#xff0c;开学要去搬书&#xff0c;广播&#xff1a; "每个班级找几个同学教务处拿书"…

商业智能BI与业务结构分析

做商业智能BI还必须熟悉行业和业务知识&#xff0c;不结合行业业务知识&#xff0c;商业智能BI的项目是很难落地的。商业智能BI的本质其实是企业的业务和管理思维的落地。企业的高层、业务部门的管理人员为什么要通过商业智能BI去看报表&#xff0c;他们看的是什么&#xff0c;…

深度学习-吴恩达(C3)结构化你的机器学习工程

结构化你的机器学习工程改变了深度学习的错误 比如你分割数据的方法&#xff0c;分割成train&#xff0c;development(dev)或叫valid&#xff0c;test&#xff0c;所以最好的实践方法是什么&#xff1f;了解更多端对端的深度学习&#xff0c;进而了解到你是否需要使用它&#…

Elasticsearch 核心技术(三):Kibana 安装、配置、运行(Windows 版)

❤️ 个人主页&#xff1a;水滴技术 &#x1f680; 支持水滴&#xff1a;点赞&#x1f44d; 收藏⭐ 留言&#x1f4ac; &#x1f338; 订阅专栏&#xff1a;大数据核心技术从入门到精通 文章目录一、下载 Kibana二、安装 Kibana三、配置 Kibana1. 主机名2. 端口3. Elasticsea…

Spark基础入门----框架概述

Spark Spark 框架概述 Spark 诞生背景 Apache Spark是用于大规模数据处理的统一分析引擎 Spark 最早源于一片论文&#xff0c;该论文是由加州大学柏克莱分校的Matei Zaharia等人发表。论文中提出了一种弹性分布式数据集(RDD)的概念。 总的说&#xff0c;Spark借鉴了Map Red…

Android进阶——sdk开发和apk开发有什么区别?

sdk SDK 就是 Software Development Kit 的缩写&#xff0c;中文意思就是“软件开发工具包”。即辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。 apk APK&#xff08;全称&#xff1a;Android application package&#xff0c;Android应用程序包&#…

【重学Javase】—— 数组(从头剖析一维数组,二维数组,array常用工具类以及数组的两种常见异常)

目录 数组的概述 1、数组的理解&#xff1a; 2、数组的特点&#xff1a; 3、数组的分类&#xff1a; 一维数组 1、一维数组的声明与初始化 2、一维数组元素的引用&#xff1a;通过角标的方式调用 3、数组的属性&#xff1a;length 4、一维数组的遍历&#xff08;for循…

mysql 备份还原数据库,java使用Runtime对象执行mysqldump备份数据库

为了提高系统可用性,通过java写定时任务每天晚上定时备份mysql数据库,然后把备份的.sql文件(建议在压缩一次上传,减少文件体积提高传输效率)调用文件上传服务器提供的文件上传接口上传到文件服务器,达到数据库服务器损坏后快速还原数据库的目的。以windows系统为例。linux注…

high-resolution image synthesis with latent diffusion models

如何通俗理解扩散模型&#xff1f; - 知乎泻药。实验室最近人人都在做扩散&#xff0c;从连续到离散&#xff0c;从CV到NLP&#xff0c;基本上都被diffusion洗了一遍。但是观察发现&#xff0c;里面的数学基础并不是模型应用的必须。其实大部分的研究者都不需要理解扩散模型的数…

理解linux虚拟网络设备veth

理解linux虚拟网络设备veth 上一章介绍了linux network namespace,接着来讨论一下如何让一个独立的网络命名空间的和主机的网络相互通信,这里我们需要用到linux虚拟网络设备veth。 veth设备 veth设备总是成对出现,通常就是用来连接不同网络命名空间(下面开始简称…

基于线性表的图书管理系统实验报告

目录 基于线性表的图书管理系统实验报告 1、成员分工 2、数据字典 3、抽象数据类型定义 4、图书存储结构描述 5、基本操作的算法描述 6、测试 6.1测试数据集 6.2测试程序运行结果截图 7、存在的问题与思考 基于线性表的图书管理系统实验报告 组长&#xff1a;xxx 组…

2022年学习机器人和人工智能的一些体会

前些日子开会&#xff0c;很受启发&#xff0c;比如有大佬指出&#xff1a; 总结&#xff1a;一般是高屋建瓴&#xff0c;通常是级别高的总揽全局&#xff0c;小虾虾不适用&#xff1b;感想和体会&#xff1a;小虾虾们学习完大佬讲话之后&#xff0c;自己的收获。 这才发现写博…

CRM能给企业带来什么价值

对于任何企业而言&#xff0c;客户都是企业生存下去的根本&#xff0c;管理客户也是企业一直在做的事情&#xff0c;有的企业尝试采用CRM来管理客户&#xff0c;有的企业还在观望CRM能给企业带来什么价值。 前言 对于任何企业而言&#xff0c;客户都是企业生存下去的根本&…

如何增加3d渲染的逼真感?提高3d渲染真实感的技巧

照片写实主义是一种艺术&#xff0c;它需要图形媒体来创造独特的艺术品&#xff0c;看起来非常有说服力。专业艺术家研究图像并使用照片写实技术从中创作艺术品。真实感可以在 2D 和 3D 渲染中实现&#xff0c;该过程称为真实感渲染。专业人士倾向于使用智能渲染过程&#xff0…

管理员权限功能和开机自启功能

前言 开机启动功能在Window下是很重要的一个功能&#xff0c;很多程序它都需要这样的功能 一.VS的配置选项&#xff08;以管理员权限启动程序&#xff09; 作用&#xff1a;用户在点击任务栏窗口等需要管理员权限时不会没有响应。 二.开机自启动&#xff08;注册表&#xff…

解决Navicat打开表的速度慢的问题

前言 最近使用Navicat打开表或者设计表都很慢&#xff0c;需要等十几秒才能打开&#xff0c;一开始我以为是我电脑老了&#xff0c;配置比较差&#xff0c;慢点就慢点吧&#xff0c;好像慢的也比较合理&#xff0c;想到这里我也就没有追究先忍了。 但是这几天公司给我配置的新…

PriorityQueue详解

目录标题前言PriorityQueue特点API构造操作API底层显示&#xff1a;数组offer(E e)前言 PriorityQueue是优先队列&#xff0c;作用是保证每次取出的元素都是队列中权值最小的&#xff0c;这里涉及到了大小关系&#xff0c;元素大小的评判可以通过元素自身的自然顺序&#xff0…

手把手教你搭建环境和内核编译

环境搭建--安装Debian7.3 本系列文章假设读者已对linux有一定的了解&#xff0c;其实学习linux内核不需要有很深的关于linux的知识&#xff0c;只需要了解以下内容&#xff1a;linux基础知识及基本shell命令&#xff1b;现代操作系统的基本概念&#xff1b;C语言和gcc基本使用…