从0开始学微服务
胡忠想
微博技术专家
立即订阅
16289 人已学习
课程目录
已完结 42 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 微服务,从放弃到入门
免费
模块一 入门微服务 (10讲)
01 | 到底什么是微服务?
02 | 从单体应用走向服务化
03 | 初探微服务架构
04 | 如何发布和引用服务?
05 | 如何注册和发现服务?
06 | 如何实现RPC远程服务调用?
07 | 如何监控微服务调用?
08 | 如何追踪微服务调用?
09 | 微服务治理的手段有哪些?
10 | Dubbo框架里的微服务组件
模块二 落地微服务 (14讲)
11 | 服务发布和引用的实践
12 | 如何将注册中心落地?
13 | 开源服务注册中心如何选型?
14 | 开源RPC框架如何选型?
15 | 如何搭建一个可靠的监控系统?
16 | 如何搭建一套适合你的服务追踪系统?
17 | 如何识别服务节点是否存活?
18 | 如何使用负载均衡算法?
19 | 如何使用服务路由?
20 | 服务端出现故障时该如何应对?
21 | 服务调用失败时有哪些处理手段?
22 | 如何管理服务配置?
23 | 如何搭建微服务治理平台?
24 | 微服务架构该如何落地?
模块三 进阶微服务 (8讲)
25 | 微服务为什么要容器化?
26 | 微服务容器化运维:镜像仓库和资源调度
27 | 微服务容器化运维:容器调度和服务编排
28 | 微服务容器化运维:微博容器运维平台DCP
29 | 微服务如何实现DevOps?
30 | 如何做好微服务容量规划?
31 | 微服务多机房部署实践
32 | 微服务混合云部署实践
模块四 展望微服务 (4讲)
33 | 下一代微服务架构Service Mesh
34 | Istio:Service Mesh的代表产品
35 | 微博Service Mesh实践之路(上)
36 | 微博Service Mesh实践之路(下)
阿忠伯的特别放送 (4讲)
阿忠伯的特别放送 | 答疑解惑01
阿忠伯的特别放送 | 答疑解惑02
微博技术解密(上) | 微博信息流是如何实现的?
微博技术解密(下)| 微博存储的那些事儿
结束语 (1讲)
结束语 | 微服务,从入门到精通
从0开始学微服务
登录|注册

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

胡忠想 2018-09-15
专栏第 4 期,我给你讲解了服务发布和引用常见的三种方式:Restful API、XML 配置以及 IDL 文件。今天我将以 XML 配置方式为例,给你讲解服务发布和引用的具体实践以及可能会遇到的问题
首先我们一起来看下 XML 配置方式,服务发布和引用的具体流程是什么
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0开始学微服务》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(23)

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

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

    2018-09-15
    5
  • 智哥哥
    <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
    4
  • Sonny721
    多个服务消费者调用了服务提供者A,如果服务提供者A的接口参数发生变化,那所有消费者都需要变更,是否有好的解决方案呢?
    2018-09-20
    3
  • 张小小的席大大
    目前只会spring cloud ,dubbo没有细研究过 只是看dubbo 官网会使用,觉得体系都差不多 没有太多机会去实战
    2018-09-17
    3
  • Jerry
    这个服务引用配置文件放在哪里

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

    2018-11-02
    2
  • godtrue
    MOTAN是细到方法级别的,我们的JSF是到接口级别,我认为调用的详细信息应该放在调用端。方法级别针对每个调用方的限流MOTAN是怎么实现的?
    2019-06-14
    1
  • LYy
    对于超大规模的分布式系统来说 服务详细配置信息放到消费者侧的方案不可取 因为涉及服务众多 底层服务根本不知道有多少上层服务对其有依赖

    所以服务详细描述文件还是要放在配置中心里 解耦提供者与消费者
    同时对提供者和配置中心提出要求
    1 提供者:保证接口前向兼容
    2 配置中心:明确性能规格 设置限流策略
    2019-05-26
    1
  • 张迪
    客户端是怎么知道服务端在哪里,ip地址或者域名没看到在配置文件中配置呀
    2019-02-22
    1
  • shine
    课程中提到的服务引用配置文件:user-last-status-client.xml和client.xml是同一个文件吗?
    那些坑里,1. 服务发布预定义配置 和 2. 服务引用定义配置 是不是只有这二种配置方式,而且是相互对立的,要根据实际情况选择?
    2019-02-16
    1
  • 服务发布预定义配置如果遇到提供者接口超级多的极端情况的话建议把配置信息转移到服务信用配制中。请问老师如果这么做的话那不就每一个客户端都要配置一份了吗?这样的话客户端配制参差不齐的问题又出现了,总觉得这里跟您前面讲的矛盾了
    2018-12-26
    1
  • cricket1981
    motan支持多版本发布吗?跟dubbo异同点能讲下吗?
    2019-06-28
  • 平头哥
    为什么要每个方法都声明出来呢?直接到类呢
    2019-01-08
  • 英宁
    “服务提供者所发布服务的详细配置信息都需要存储在注册中心中,这样服务消费者才能在实际引用时从服务发布预定义配置中继承各种配置。”,没看懂这里为啥,是有些详细信息服务端配置放不了嚒?比如说呢?
    2018-11-15
  • 王晓军
    胡老师,如何合理的规划mianx前端的服务和面向服务的服务,您有什么建议吗?还是说,任何一个服务都可以由前端调用也可以由其他的服务调用
    2018-10-15
  • 有渔@蔡
    这里的mota协议跟dubbo是什么关系?
    2018-10-14
  • 波波安
    并观察是否所有的服务消费者引用时都包含服务详细信息。
    服务端怎么看到消费者的引用配置?
    2018-10-13
  • 波波安
    使用dubbo遇到的一些坑。

    之前没有形成规范,很多发布的服务都没有配置retry-time和和timeout导致经常出一些莫名其妙的问题。有些业务办理接口没有做幂等,接口超时导致重试,产生脏数据等。

    后续主要通过团队形成一些规范来规避问题。

    2018-10-13
  • 吴浩
    服务配置升级哪里没大看懂

        服务提供者升级两台服务器,在服务发布配置文件中删除服务详细信息,并观察所有的服务消费者引用时都包含服务详细信息。

         最后得出如果包含则升级成功,我想问,不是已经删除了发布配置文件中的服务详细信息,那怎么还是包含则升级成功,觉得上面那句"在服务发布配置文件中删除服务详细信息"话,应该是删除升级两台服务器以外的其他服务器发布配置文件的服务详细信息吧
    2018-10-09
  • wuhulala
    老师您好 在接口定义好之后 如何减轻消费者对api的强依赖性 比如A服务接口变动之后 增删参数 导致了B消费者调用失败 比如序列化问题 如何提高这种容错性呢
    2018-10-08
收起评论
23
返回
顶部