微服务SpringCloud无法进行服务消费

最近用SpringCloud做微服务,一直无法成功进行服务消费。
我使用的服务消费者是Feign,声明式调用服务提供者。

排查过程

1.检查服务提供者:
(1)对提供的方法进行测试,确保提供的服务没有问题。
(2)是否在控制层上方添加了@Controller。
(3)方法的method是否正确。是GET还是POST。
2.仔细检查服务消费者:
(1)服务名value是否正确。服务名不一定是项目名,要检查服务提供者的application配置文件,对应的spring.application.name属性,也可以直接打开注册中心查看服务名。
(2)是否存在上下文。要检查服务提供者的application配置文件,是否有 context-path 属性。如果存在上下文属性,要加到方法参数value的前面 。
(3)方法的method是否正确。是GET还是POST。
(4)方法的url是否正确。对应服务提供者的url。
3.检查断路由Hystrix:
(1)在类的上方是否加了@Component
(2)是否添加了@HystrixCommond

示例如下:

服务消费者Feign如下:

@FeignClient(value="smkp",fallback=InvoiceMsgHystrix.class)
public interface InvoiceMsgService {

   /**
     *  服务提供者。
     *  注意:此处的/test是smkp服务的上下文,相关的yml配置为: context-path: /test
     */
    @RequestMapping(value = "/test/smkp/sentMsg", method = RequestMethod.POST)
    public JSONObject sentMsgToWeChat(JSONObject invoiceJson) ;
}

服务熔断如下:

/**
 *   断路由
 *
 */
@Component
public class InvoiceMsgHystrix implements InvoiceMsgService{

    private JSONObject createObject(){
        JSONObject object=new JSONObject();
        object.put("errcode", ErrorType.INVOICE_SCAN_CODE_SENT_MSG_IS_FAIL.getCode());
        object.put("description", ErrorType.INVOICE_SCAN_CODE_SENT_MSG_IS_FAIL.getMsg());
        return object;
    }

    @Override
    public JSONObject sentMsgToWeChat(JSONObject request) {
        // TODO Auto-generated method stub
        return createObject();
    }

}

服务提供者如下:

@Controller
public class InvoiceMsgController extends BaseController{
       private static final Logger logger=LoggerFactory.getLogger(InvoiceMsgController.class);
    @Autowired
    private SendMsgService sendMsgService;
     /**
          * 服务提供者的方法
          */
    @ResponseBody
    @RequestMapping(value = "/smkp/sentMsg", method = RequestMethod.POST )
    public JSONObject sentMsgToWeChat(HttpServletRequest request) throws Exception {

        // 其他逻辑忽略
        sendMsgService.SendWechatMessage(sendJson);
        logger.info("==============>成功推送个人号消息。");
        JSONObject data = new JSONObject();
        data.put(ResultCode.H_CODE, ResultCode.DEAL_SUCCESS);
        data.put(ResultCode.H_DESCRIPTION, ResultInfo.DEAL_SUCCESS_CN);
        data.put("serial_no", serialNo);
        return data;
    }

}

原文地址:https://www.cnblogs.com/expiator/p/10566702.html

时间: 2024-10-11 23:52:22

微服务SpringCloud无法进行服务消费的相关文章

干货分享微服务spring-cloud(8.服务治理和配置中心Spring-cloud-zooke)

8.1.    服务治理 Spring-cloud-zookeeper提供的模式包括服务发现和配置,配置动态更新不需要手动请求/refresh端点.该项目通过自动配置并绑定到Spring环境和其他Spring编程模型成语,为Spring Boot应用程序提供Zookeeper集成.通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用基于Zookeeper的组件构建大型分布式系统.Feign,Turbine,Ribbon和Zuul均与Spring Cloud Zookeeper合作

SpringCloud 教程 之三 服务消费(Feign)

1.启动服务注册应用 可参考 SpringCloud 教程 之一 服务注册与服务发现(Eureka) 创建 springcloud-eureka-server 服务注册工程,并启动 2.启动服务提供者应用 可参考 SpringCloud 教程 之二 服务消费(Ribbon) 创建 springcloud-eureka-provider 服务提供者工程,并启动 3.创建服务消费工程 3.1.新建 Spring Boot 工程 springcloud-eureka-feign 3.2.工程pom.x

微服务SpringCloud+Docker入门到高级实战(教程详情)

第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧 2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可以到达怎样的程度, 1.IDEA JDK8 Maven SpringBoot基础 Linux 2.理解掌握并开发SpringCloud里面主流架构和组件的基础使用,还有部分源码原理的理解 3.掌握学习的技巧和解决问题的思路 第二章 架构演进和分布式系统基础知识 1.传统架构演进到分布式架构 简介:讲

微服务SpringCloud+Docker入门到高级实战(目录)

第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可以到达怎样的程度, 第二章 架构演进和分布式系统基础知识 1.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图)2.微服务核心基础讲解 简介:讲解微服务核心知识 :网关.服务发现注册.配置中心.链路追踪.负载均衡器.熔断3.常见的微服务框架 简介:讲解常用的微服务框架4

微服务SpringCloud+Docker入门到高级实战

第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧2.技术选型和学后水平简介:课程所需基础和技术选型讲解,学完课程可以到达怎样的程度, 第二章 架构演进和分布式系统基础知识 1.传统架构演进到分布式架构简介:讲解单机应用和分布式应用架构演进基础知识 (画图)2.微服务核心基础讲解简介:讲解微服务核心知识 :网关.服务发现注册.配置中心.链路追踪.负载均衡器.熔断3.常见的微服务框架简介:讲解常用的微服务框架4.微服务下

微服务SpringCloud之服务注册与发现

在找.net core 微服务框架时发现了Steeltoe开源项目,它可以基于Spring Cloud实现.net core和.net  Framework的微服务.正好之前也有学习过SpringBoot,而Spring Cloud是基于SpringBoot的,有了SpringBoot基础上手入门SpringCloud应该也不难,正好我的第一本书<<Spring快速入门>>即将上架,感兴趣的朋友可以多多支持.本篇主要学习服务注册与发现组件Eureka. 在学习之前首先聊一聊为什么会

小D课堂 - 新版本微服务springcloud+Docker教程_汇总

小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务springcloud+Docker教程_2_01传统架构演进到分布式架构 原文地址:https://www.cnblogs.com/wangjunwei/p/11434371.html

微服务SpringCloud之服务网关zuul一

前面学习了Eureka.Feign.Hystrix.Config,本篇来学习下API网关zuul.在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务.当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端. 为什么需要API Gateway 1.简化客户端调用复杂度 在微服务架构模式下后端服务的实例数一般是动态的,对于客户端而言很难发现动态改变的服务实例的访问地址信息

干货分享微服务spring-cloud(4.负载均衡ribbon与熔断器hystrix)

Ribbon是一个基于http和tcp的客户端负载均衡工具 Hystrix具备服务降级.服务熔断.线程和信号隔离.请求缓存.请求合并以及服务监控 为了方便消费者负载均衡效果,复制demo-springcloud-client1并重名为demo-springcloud-client2,修改配置文件和启动类,服务提供者1和2服务名均为spring.application.name=demo-springcloud-client 修改YhqContoller实现,为了方便负载均衡观察效果,demo-s