为了账号安全,请及时绑定邮箱和手机立即绑定

什么是微服务,它要干啥

标签:
微服务

微服务, 强调一个“微”字,体现的是细粒度的高内聚、低耦合
它很小,专注于做好一件事

把因相同原因而变化的东西聚合在一起,把因不同原因而变化的东西分离开来
一个微服务应该在两个内可以重写
代码从你的笔记本到生产环境要多久

微服务需要隔离变化, 这个变化可能是由我们程序员比较关注的代码的业务边界或者说限界上下文引起,比如商品管理和营销活动设置;也可能是由于产品需求变化的速度不一致引起,比如商品基本信息的管理和商品时效信息(退改规则、费用说明等)调整的频率就差距很大, 产品经理会经常调整时效信息的文案和录入规范; 或者是为了匹配部门的组织架构 等等。

隔离了变化后

  1. 技术异构性得以支持,  每个服务可以选用最适合的技术栈去实现

  2. 整体可用性的提升, 这个类似分布式系统带来的部分不可用不影响整体主流程一样的优势

  3. 部署的风险降低, 想象一下 修改一个小bug而不得不发布整个庞大的项目

  4. "微" 之后, 替换原来的实现方式(技术栈、重构)风险就会小很多,两个星期内能重写就太棒了
    ...

不过,既然是服务,就必须面对服务类架构需要解决的问题

  1. 保证api的技术无关性,不使用平台绑定的接口实现, 如提供的服务java能调用 .net能调用 python及其他也能调用

  2. 协议的选择, rpc 还是 rest, json 还是其他

  3. 如何方便消费者使用 等
    其他可以参考下 soa服务技术的设计原则

微服务要快速上线, 需要持续集成,需要持续交付,需要测试来保证质量


webp

那么上线后是不是就没事了? 线上出了问题如何排查? 你还得监控
微服务感觉散落一地的玻璃珠一样, 需要监控小的服务,然后串起来看整体

webp


或许你要跟踪一长串调用链上每个节点的响应时长,还需要一个关联标记来串起这个调用链看看调用节点之间的联系

代码从你的笔记本到生产环境要多久?  要清晰限界上下文,隔离变化原因,要可持续集成,持续交付,保证速度的同时也要保证质量...
其实,微服务不正是我们学习设计模式时和面向对象编程时强调的各种原则的体现么


webp



作者:holysu
链接:https://www.jianshu.com/p/d594a14fc3de


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消