V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhazi
V2EX  ›  设计

微服务是不是模块化?对微服务应该怎样理解

  •  
  •   zhazi · 2018-07-13 18:27:04 +08:00 · 3818 次点击
    这是一个创建于 2361 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司开个视频站项目,我从规划到实施,最近微服务火的一塌糊涂,考虑使用微服务实现,现在接口写的差不多的,思考的时候再考虑一个问题,是不是把微服务理解错了
    我说一下我现在的半成品模式:
    1、多媒体服务(视频信息)
    2、权限服务(权限信息,RBAC )
    3、项目本身(业务信息、如各种活动,购买等实现,视频状态控制)

    项目本身充当一个 context 承上启下的作用,也是具体业务实现,如拉客户免费观看视频,购买视频,是否能查看免费视频然后调用视频库返回视频资源

    这样设计考虑到公司其他项目也可以复用多媒体模块,业务在自己项目里实现,然后再调用视频服务资源
    权限也是这样考虑的

    但这样设计是不是背离微服务的模式了,有没有朋友对微服务理解比较深刻给讲一讲
    4 条回复    2018-07-20 01:29:49 +08:00
    GoPython
        1
    GoPython  
       2018-07-14 06:09:08 +08:00 via Android
    我来说下,我做过的吧。
    并不仅仅是模块化,应该说更重要是可以不再单机部署,可以容器部署到多台机器,分布式协调运行(我们一般用 RPC 内部调用)。
    不仅仅是业务代码可以拆分,数据库也可以拆分,然后分别部署到不同的机器,解决单机性能不足的问题。

    然后说的,权限服务,其他各种服务的互相调用,这个用 RPCI 互相调用不是问题。
    artandlol
        2
    artandlol  
       2018-07-14 08:20:27 +08:00 via iPhone
    部署下 fabric8 就能理解了
    karllynn
        3
    karllynn  
       2018-07-16 21:19:52 +08:00
    微服务是为了应对大规模软件系统的…模块化在单体应用里也能实现

    微服务会引入很多新的问题,最典型的就是事务问题,分布式事务代价太大。

    不要为了微服务而微服务。
    zhazi
        4
    zhazi  
    OP
       2018-07-20 01:29:49 +08:00 via Android
    这两天学习了一下相关领域的知识,说一下自己新的理解,微服务以充血模型和事物驱动为实现,以 ddd 思想为设计理念,ddd 的设计思想重点是领域的划分,bc 的规划。
    微服务跟大规模小规模没啥太大关系。
    我觉得微服务的特点是高度自制,目的是去中心化,提高可扩展性,可靠性。
    和模块化的概念出发点不太一样,模块化是为了提高可复用性。
    顺便推荐一本书《领域驱动设计》。对软件开发设计的思想很涨见识。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.