目录
一、服务注册
1.dubbo && springcloud
我们在开发环境中进行开发的时候经常会调用测试环境的服务,测试环境的注册中心服务是最完整的,所以推荐直接使用测试环境的注册中心。
但是这样会导致我们本地电脑上面的服务注册到注册中心,测试环境就有可能调用到我们本地的服务,所以会有冲突,解决方案是关闭开发环境服务注册到注册中心。
# 禁止向注册中心注册服务
eureka.client.register-with-eureka = false
# 禁止向注册中心注册服务
dubbo.registry.register = false
如果springcloud 用的nacos 为注册中心,可以使用下面的配置
spring.cloud.nacos.discovery.register-enabled=false
2.kafka
同样开发环境kafka也有可能消费测试环境的数据,这里需要修改代码和增加 配置来控制listener 的启动
# 是否开启kafkalistener
kafka.listener.autoStartup = false
listener
@KafkaListener(topics = TopicNameConstants.FINANCE_REFUND_STATUS_GROUP_SYNC,autoStartup = "${kafka.listener.autoStartup:#{\"true\"}}")
这样 listener 就不会消费消息了
二、开发调试
这样配置之后,不能通过注册中心找到开发机上面的服务,本地调试接口可以通过配置 url 来调用本地的接口
1.springcloud feign
@FeignClient 注解改动,增加本地服务路径端口。我们的 @FeignClient 一般是配置在api 包里面的,改好之后 maven install 一下,如果生产者和消费者不在一台机器,填生产者机器的ip端口即可
feign注解
@FeignClient(path = "/generate", name = ServiceNameConstants.MH_ORDER_GENERATE_SERVICE, fallbackFactory = MHServiceOrderApiFallbackFactory.class,url = "http://127.0.0.1:8083" )
2.dubbo
@Reference 注解 也可以增加url, 改好之后不用 maven install,直接可以调用本地的接口,如果生产者和消费者不在一台机器,填生产者机器的ip端口即可
@Refrence注解
@Reference(version = "1.0.0", check = false, timeout = 60000,url = "dubbo://127.0.0.1:20883")
3.kafka
kafka 的本地测试可以选一个没有人用的topic进行测试,然后使用jemter 进行测试
kafka
@KafkaListener(topics = "没人用的topic")