随笔 - 17,  文章 - 0,  评论 - 4,  阅读 - 44011

今天用canal来监听mysql binlog,使用feign远程调用,

 

请求过去,并且能查询到数据返回。

 

 

但是在调用方法处抛出异常,也就是不能走到下面的 if判断:

 

 

 

异常信息中提取大致:

 

end of stream when reading header

你的主机中的软件中止了一个已建立的连接...

 

后者的连接解决是因为监听类里面,我写了两个自定义的监听的方法@ListenPoint,导致终止连接,把方法改成一个自定义的监听就可以了。

 

然后前面这个feign调用,我改成一个监听方法之后,试了几次,能成功回调,也会失败,具体显示是打印了这个错误:

2019-11-03 19:57:40.730 ERROR 4360 --- [pool-1-thread-1] .s.c.c.t.AbstractBasicMessageTransponder : pool-1-thread-1: Error occurred when invoke the listener's interface! class:com.cmmplb.canal.listener.CanalDataEventListener, method:onEventContent

 

搜了网上有很多方法,也试了,都有这个错,不过把feign和对应的controller中的参数,加上一个name对应,这个错误发生的次数变少了:

feign:

/**
     * 根据cid查询对应的内容集合
     * @param cid
     * @return
     */
    @GetMapping("/list/category/{cid}")
    Result<List<Content>> findContentByCategoryId(@PathVariable(name = "cid") Long cid);

controller:

复制代码
/**
     * 根据cid查询对应的内容集合
     * @param cid
     * @return
     */
    @GetMapping("/list/category/{cid}")
    public Result<List<Content>> findContentByCategoryId(@PathVariable(name = "cid") Long cid) {
        List<Content> contentList = contentService.findContentByCategoryId(cid);
        return new Result<List<Content>>(true, StatusCode.OK, "查询成功", contentList);
    }
复制代码

 

也不知道是啥毛病,暂时是这样做能正常的监听数据库,然后调用另一个服务获取数据,具体看以后接触到再深入学习一下。

posted on   夏目co  阅读(4485)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示