从 0 开始学微服务
胡忠想
微博技术专家
64643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

11 | 服务发布和引用的实践

服务配置升级
服务引用定义配置
服务发布预定义配置
服务发布预定义配置
服务消费者引用接口
服务提供者发布接口
服务提供者定义接口
IDL文件
XML配置
Restful API
服务发布和引用的坑
XML配置方式的服务发布和引用流程
服务发布和引用方式
服务发布和引用的坑

该思维导图由 AI 生成,仅供参考

专栏第 4 期,我给你讲解了服务发布和引用常见的三种方式:Restful API、XML 配置以及 IDL 文件。今天我将以 XML 配置方式为例,给你讲解服务发布和引用的具体实践以及可能会遇到的问题
首先我们一起来看下 XML 配置方式,服务发布和引用的具体流程是什么
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了XML配置方式的服务发布和引用的具体流程,以及在实际应用中可能会遇到的问题及解决方案。作者首先讲解了服务提供者定义接口的步骤,然后详细解释了服务提供者发布接口和服务消费者引用接口的流程。在实践中,作者指出了可能会遇到的问题,如服务包含多个接口时的配置问题以及服务配置升级的步骤。文章还提出了服务发布预定义配置和服务引用定义配置的解决方案,以及在实际项目中采用XML配置方式时可能遇到的其他问题及解决方法。总的来说,本文通过具体案例和实践经验,帮助读者更好地理解和应用服务发布和引用的技术特点。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(33)

  • 最新
  • 精选
  • echo_陈
    遇到过版本变更时序列化兼容问题 我们用的dubbo,经常会出现,某个dubbo接口的API升级:包含新增方法,或者某个方法的入参或者返回值新增字段。 我们的服务提供者更新消费者并不是一定要更新,如果我的api改动没有改动某个消费者调用的方法或者那个消费者可以兼容提供者的改动,那么消费者是可以不升级的。也就是允许系统中存在:服务提供者依赖的api是1.1版本,而服务消费者依赖的的api的jar包是1.0版本……这样的情况。 以前用hessian2做序列化方式,服务提供者单方面引用新版本api,老的消费者一样能正常调用。可是有同事听说FST序列化更快更强……于是某些接口改动了序列化方式为FST……发现这时依赖老版本api的服务都异常了…… 经验:性能是一方面,但也要考虑业务兼容性

    作者回复: 是的,兼容性很重要

    2018-09-15
    16
  • Jerry
    这个服务引用配置文件放在哪里

    作者回复: 放在客户端本地

    2018-11-02
    2
    7
  • 智哥哥
    <motan:service ref="userLastStatusLocalService" requestTimeout="50" retries="2" interface="com.weibo.api.common.status.service.UserLastStatusService" basicService="serviceBasicConfig" export="motan:8882"> <motan:method name="getLastStatusId" requestTimeout="300" retries="0" /> <motan:method name="getLastStatusIds" requestTimeout="300" retries="0" /> </motan:service> 这里的userLastStatusLocalService定义在哪呢? 可以提个建议:每一章都把源码打包附加到文章尾部可以吗?只提供部分源码比较容易把人弄的越来越晕

    作者回复: 极客目前没有这个功能,这里是抽取的代码片段,可以看下开源motan的实现

    2018-10-24
    5
  • 沙漠之鹰
    一个接口上百个方法,设计上是否不合理
    2018-09-23
    29
  • LYy
    对于超大规模的分布式系统来说 服务详细配置信息放到消费者侧的方案不可取 因为涉及服务众多 底层服务根本不知道有多少上层服务对其有依赖 所以服务详细描述文件还是要放在配置中心里 解耦提供者与消费者 同时对提供者和配置中心提出要求 1 提供者:保证接口前向兼容 2 配置中心:明确性能规格 设置限流策略
    2019-05-26
    6
  • 波波安
    使用dubbo遇到的一些坑。 之前没有形成规范,很多发布的服务都没有配置retry-time和和timeout导致经常出一些莫名其妙的问题。有些业务办理接口没有做幂等,接口超时导致重试,产生脏数据等。 后续主要通过团队形成一些规范来规避问题。
    2018-10-13
    4
  • 俯瞰风景.
    服务发布和引用的步骤是: 1、服务提供者定义接口,包括接口名,方法名,方法入参,方法出参等 2、在服务发布配置文件中配置接口名、通信协议、端口号,方法调用超时时间和重试次数 3、在服务引用配置文件中配置接口名、通信协议 服务发布预定义配置:为了解决多个服务消费者引用同一个服务的问题,可以用服务发布预定义配置的方式来减少消费者端的配置工作。 服务引用定义配置:但是随着服务方法数量的增多,每个方法都有自己的超时时间和重试次数信息,服务提供者所发布服务的详细配置信息都需要存储在注册中心中,配置信息占据内存容量会过大,每个消费者通过注册中心拉取最新配置信息时,会导致网络带宽被打满的情况。这种情况下,最好是把服务发布端的详细服务配置信息转移到服务引用端,注册中心中就不需要存储服务提供者发布的详细服务配置信息。 服务配置升级:服务升级就是把配置信息从服务发布配置文件中迁移到服务引用配置文件中。需要按照特定的流程来,先通过升级两台服务器观察升级是否成功,如果没问题再进行全部服务器的升级。
    2021-10-07
    3
  • 服务发布预定义配置如果遇到提供者接口超级多的极端情况的话建议把配置信息转移到服务信用配制中。请问老师如果这么做的话那不就每一个客户端都要配置一份了吗?这样的话客户端配制参差不齐的问题又出现了,总觉得这里跟您前面讲的矛盾了
    2018-12-26
    3
  • Sonny721
    多个服务消费者调用了服务提供者A,如果服务提供者A的接口参数发生变化,那所有消费者都需要变更,是否有好的解决方案呢?
    2018-09-20
    4
    3
  • Geek_af3d01
    目前只会spring cloud ,dubbo没有细研究过 只是看dubbo 官网会使用,觉得体系都差不多 没有太多机会去实战
    2018-09-17
    3
收起评论
显示
设置
留言
33
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部