SpringCloud协同开发实现方法浅析

目录
  • 微服务注册问题
  • 微服务间调用问题
  • 前后端联调问题

相比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);

}

前后端联调问题

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

到此这篇关于SpringCloud协同开发实现方法浅析的文章就介绍到这了,更多相关SpringCloud协同开发内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 深入学习java内存化和函数式协同

    前言 所有编程语言都在增加函数特性,因为运行时已变得强大到足够适应性能或内存开销.函数式编程的许多收益之一是,您可将麻烦或容易出错的任务卸载到运行时.另一个收益是将函数特性简洁地组合到您代码中的能力. 在本期文章中,我将探讨 Java 下一代语言中的内存化.然后,通过利用 Clojure 示例,我将展示通过利用函数特性之间的协调作用,如何实现常见问题的一般解决方案. 内存化 内存化 这个词是 Donald Michie(一位英国人工智能研究人员)发明的,用于表示重复的值的函数级缓存.如今,内存化

  • Java编程实现基于用户的协同过滤推荐算法代码示例

    协同过滤简单来说是利用某兴趣相投.拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要. 协同过滤又可分为评比(rating)或者群体过滤(social filtering)协同过滤以其出色的速度和健壮性,在全球互联网领域炙手可热 UserCF的核心思想即为根据用户数据模拟向量相似度,我们根据这个相似度,来找出指定用户的相似用户,然后将相似用

  • SpringCloud协同开发实现方法浅析

    目录 微服务注册问题 微服务间调用问题 前后端联调问题 相比Springboot开发,SpringCloud开发要复杂的多,因为涉及服务的注册发现,多个微服务模块间的调用等. 最简单的解决方案是每个开发者都在本地启动一套完整的开发环境,包括网关.nacos等各个组成微服务的模块,如果系统模块较少,这种开发方案还可以接受,如果系统太多,本地启动整套环境未免太多臃肿,非常不方便. 微服务注册问题 像下面这张图,倒数第二个服务启动了两个实例,他们两个组成了一个集群.前端在调用接口的时候可能想调用A的该

  • 详解Android Studio中Git的配置及协同开发

    一. Android Stutio配置git setting–>Version Control–>Git–>Path to Git executable中选择git.exe的位置,这个Stutio一般会默认配置好: 配置完路径后点击后面的Test按钮,出现下面提示框则表示配置成功: 二. 将项目分享到github 1. 设置github账号密码 打开Setting–>Version Control–>GitHub,填写完账号密码后,点击Test测试,如果连接成功会弹出如下提示

  • 新手学习微服务SpringCloud项目架构搭建方法

    这篇文章主要介绍了新手学习微服务SpringCloud项目架构搭建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Spring的微服务框架SpringCloud受到众多公司欢迎,给大家带来一篇框架搭建入门.本次采用的版本是Spring Cloud版本为Finchley.RELEASE. 一.SpringCloud项目简介 spring cloud: 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.

  • 协同开发巧用gitignore中间件避免网络请求携带登录信息

    目录 协同开发时本地测试 GoFrame如何优雅的获得方法名 巧用中间件 中间件在登录之后设置关键信息到context上下文中 业务逻辑直接通过context直接取值 case when 总结 协同开发时本地测试 昨天的文章中提到了Go如何优雅的进行本地测试,今天分享一下:在多人协同开发中,如果大家都进行本地测试可能会出现的问题. 最大的问题就是git合并的问题,大家都改这个test文件,就会导致有冲突. 我们可以通过把test文件加到.gitignore中来解决这个问题. 比如,我的测试文件所

  • JavaScript中的 attribute 和 jQuery中的 attr 方法浅析

    根据大体上的意思我感觉js setAttribute与jquery中attr工作是完全一样的,只是jquery中简写了并且工能更强大了,下面我来分别介绍一下他们的用法. attribute 是原生js dom 对象上的一个属性,这个属性有很多子属性,比如 isId(判断属性是否是Id) , name (获取属性名称) , value (获取属性值),attributes 用来获取dom元素 的所有属性集合. 话不多说,上例子了: <input type="text" name=&

  • Android入门之使用eclipse进行源码开发的方法

    本文实例讲述了Android入门之使用eclipse进行源码开发的方法.分享给大家供大家参考,具体如下: 一.版本说明: 1. eclipse for javaEE 3.5.2 2. jdk1.6 3. adt12.0 4. linux/Ubuntu10.04 或者 linux/ubuntu10.10 二.准备工作: 1. 下载 Android2.3.7 源码 欲了解具体内容可以参看 android 官网. 2. 编译源码 必须编译源码,否则会引发很多问题.记住:如果下载没问题的话,编译只是时间

  • springcloud集成zookeeper的方法示例

    为什么使用zookeeper Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理. zookeeper 核心 Zookeeper的数据模型是树结构,在内存数据库中,存储了整棵树的内容,包括所有的节点路径.节点数据.ACL信息,Zookeeper会定时将这个数据存储到磁盘上. zoo

  • 使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法

    什么是 Vue TCB 我自己平时经常会用到 Vue 来开发前端应用.所以,基于 Vue 的插件系统,封装了一个 Vue 插件. 如何使用 1. 安装 vue-tcb 执行如下命令,安装 vue-tcb # npm npm install --save vue-tcb #yarn yarn add vue-tcb 2. 在主文件中引入 vue-tcb 在你的 main.js 中加入如下代码 import * as Tcb from 'vue-tcb' Vue.use(Tcb,{ env: 'en

  • laravel框架学习笔记之组件化开发实现方法

    本文实例讲述了laravel框架学习笔记之组件化开发实现方法.分享给大家供大家参考,具体如下: 1.第一个难点,就是把本地的组件引入到项目中,进行开发和测试,这个已经解决了 2.就是需要发布组件中的配置文件到项目中 3.就是怎么在组建中加载组建中的视图view层 视图 你需要告诉 laravel 视图的位置才能使 laravel 加载包中的视图.你可以通过服务提供者的 loadViewsFrom 方法.loadViewsFrom 方法接受两个参数:视图的路径和包的名称.比如,如果你的包名称是"c

  • C语言基础使用IDE快速开发的方法

    这篇文章介绍一下如何使用CLion进行C语言的开发与调试. CLion CLion是Jeb Brain出品的一款跨平台的C/C++的集成开发环境IDE. 详细介绍: https://www.jetbrains.com/zh-cn/clion/ 下载地址: https://www.jetbrains.com/zh-cn/clion/download/ 官方提供了30天试用的方式,可根据需要进行下载使用. 安装与设定 首先选择缺省主题 然后选择缺省插件 习惯使用vim方式的可以通过点击对应的Inst

随机推荐