本文小编为大家详细介绍“SpringCloud协同开发如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringCloud协同开发如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
微服务注册问题
像下面这张图,倒数第二个服务启动了两个实例,他们两个组成了一个集群。前端在调用接口的时候可能想调用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{ @GetMapping("/user/info/{username}") public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); }
前后端联调问题
正常的前后端联调应该是后端写好代码,将代码合并到开发分支上面,部署开发分支,前端连接开发分支进行调试。
读到这里,这篇“SpringCloud协同开发如何实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。