其实大家说的微服务到底是什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhuzhibin
V2EX    问与答

其实大家说的微服务到底是什么?

  •  
  •   zhuzhibin 2019-03-30 00:28:31 +08:00 4934 次点击
    这是一个创建于 2391 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 小白不太明白 如果要说理解 我只能简单类比于服务器的负载均衡
    • 希望 V 站的老师们能各抒己见 谈谈自己的认知咯
    • 纯粹是交流 以和为贵咯 嘻嘻 :)可爱
    31 条回复    2019-03-31 09:09:57 +08:00
    boris1993
        1
    boris1993  
       2019-03-30 01:31:08 +08:00 via Android
    今天刚听前辈谈了下微服务,说下我的理解

    拿商城举例,传统架构是把商城作为一个整体看待,简单来讲就是一个 war 包部署进一个 tomcat 示例

    微服务则是把应用按照功能,拆分成较小的,可以独立运行的模块,比如拆分成用户、登录、下单、搜索等几部分,模块之间用 HTTP 或 RPC 协议通信
    ferock
        2
    ferock  
    PRO
       2019-03-30 01:37:09 +08:00 via iPhone
    各种名词只是新瓶装旧酒。有一些公司 boss 喜欢搞的自己很高大上,于是就喜欢吹嘘这些名词,举个例子…生态化反…


    rz …
    hilbertz
        3
    hilbertz  
       2019-03-30 01:42:03 +08:00
    原来 1 个人干的活,变成 10 个人干的活
    lynskylate
        4
    lynskylate  
       2019-03-30 01:50:59 +08:00 via Android   3
    不同人看微服务都不一样吧。在我看来,微服务以服务为基础单元,配以 rpc 为核心的一系列中间件进行开发的一种方式。
    主要是传统的单体架构应用在面对用户增长时难以进行横向扩容,应用局部存在性能问题,却只能扩容整体。
    单体架构在进行开发新功能时也会造成整体代码的腐化,包括难以测试,难以维护。

    对于小公司来说微不微服务没啥必要,能用最重要。
    akira
        5
    akira  
       2019-03-30 02:08:06 +08:00
    面向对象会吧 类比一个个对象更合适
    just1
        6
    just1  
       2019-03-30 02:27:34 +08:00
    把一体机变成可以自由装配的台式机
    a123321456b
        7
    a123321456b  
       2019-03-30 02:34:57 +08:00 via Android
    性能不够怎么办 加服务器配置
    还不够怎么办 每个服务器少做点事 几个服务器拼起来组成整个系统
    Luckyray
        8
    Luckyray  
       2019-03-30 03:44:09 +08:00 via iPhone
    简单说就是模块化
    ferock
        9
    ferock  
    PRO
       2019-03-30 07:06:56 +08:00 via iPhone
    @Luckyray +1,但是却非要换个名字,深入说,就是怎么做好模块化。
    no13bus
        10
    no13bus  
       2019-03-30 07:26:07 +08:00
    首先你需要区分单体服务,微服务,soa 服务这几个
    rogwan
        11
    rogwan  
       2019-03-30 09:08:59 +08:00 via Android
    用企业部门打比方,传统组织机构是研发 销售 行政部这样,微服务是各种 CXO。
    zhuzhibin
        12
    zhuzhibin  
    OP
       2019-03-30 09:36:29 +08:00 via iPhone
    @boris1993 咋听起来 类似分离模块咯?然后 模块之间通过中间件通信 谢谢哈-
    zhuzhibin
        13
    zhuzhibin  
    OP
       2019-03-30 09:40:10 +08:00 via iPhone
    @lynskylate 哈哈 的确是 如果这么理解 前后端的分离 算是模块化么
    zhuzhibin
        14
    zhuzhibin  
    OP
       2019-03-30 09:41:22 +08:00 via iPhone
    @rogwan 嗯嗯 懂了:-) 所以大公司 大项目都在跨部门合作么
    zhuzhibin
        15
    zhuzhibin  
    OP
       2019-03-30 09:42:06 +08:00 via iPhone
    @no13bus 1 我会去 wiki 一下这几个概念
    lhx2008
        16
    lhx2008  
       2019-03-30 09:47:55 +08:00 via Android
    细粒度服务(不是一个公司一个大 jar 包),自动化流程(测试,发布,扩展等),完整的基础设施(配置中心,路由,熔断器,服务治理,链路监控,网关),轻量级服务通信( rpc,restful ),和服务数量相对应的开发人员(公司就几个人拆服务没意义)
    zhuzhibin
        17
    zhuzhibin  
    OP
       2019-03-30 09:50:08 +08:00 via iPhone
    opengps
        18
    opengps  
       2019-03-30 10:32:45 +08:00   1
    可以理解成单元,微服务就是把系统的拆分单元化,这样将来需要扩容时候,可以轻松知道只需要扩容哪个或者哪几个单元。
    举例说:某系统从 100 用户涨到 100000 用户,可能只是某个核心内容节点的读取量上升,那么其实只需要将这个读取内容的单元做负载均衡扩容
    opengps
        19
    opengps  
       2019-03-30 10:33:47 +08:00
    微服务,云架构,都是给将来访问量增加所打下的基础,合理的设计,面对范文压力将来不用推到重新做
    txwd
        20
    txwd  
       2019-03-30 10:45:44 +08:00
    上面的大神说得那么专业,说一下我的理解:就是把功能或模块部署一套或多套,再通过网关串起来。这东西开发成本和维护成本很高,要看场景用。仅是我的理解。
    edgnoz
        21
    edgnoz  
       2019-03-30 11:09:29 +08:00
    对于绝大多数企业来讲,加个云啊微啊什么的,显得高大上
    willyang
        22
    willyang  
       2019-03-30 11:16:34 +08:00 via Android
    划分业务模块的思想吧
    opengps
        23
    opengps  
       2019-03-30 11:21:23 +08:00
    临时写了篇博客,《使用微服务和云架构应对系统扩容》 https://www.opengps.cn/Blog/View.aspx?id=279
    结论:
    微服务的价值:在于将来访问量上升时,精准调控某一个瓶颈点的功能,主要属于开发层面的储备
    云架构的价值:在于访问量上升时,直接增加服务器数量扩大系统承载阈值,主要属于运维层面的储备
    Cyanic
        24
    Cyanic  
       2019-03-30 11:29:17 +08:00 via iPhone
    解耦合从代码层面进化到业务功能模块层面,模块间采用 rpc 通信,这是我的个人理解
    BCy66drFCvk1Ou87
        25
    BCy66drFCvk1Ou87  
       2019-03-30 14:34:48 +08:00 via Android
    “分而治之”
    huijiewei
        26
    huijiewei  
       2019-03-30 14:43:55 +08:00
    微服务容易扩容

    看你项目决定
    hoyixi
        27
    hoyixi  
       2019-03-30 15:20:32 +08:00   1
    SOA 老调新弹
    zzl22100048
        28
    zzl22100048  
       2019-03-30 17:41:30 +08:00
    小而自治,单一职责
    wc951
        29
    wc951  
       2019-03-30 18:01:26 +08:00 via Android
    去中心化 soa
    limuyan44
        30
    limuyan44  
       2019-03-31 01:59:08 +08:00 via Android
    就是功能拆分。。
    hsuehsen
        31
    hsuehsen  
       2019-03-31 09:09:57 +08:00
    1. 原生支持高可用、集群(分布式)、高并发,可根据流量水平扩展

    2. 服务拆分,说白了就是解耦
    服务之间通过接口的方式提供服务,所以开发、维护成本低。因为就是开发全新的一个子系统,没有历史负担,可以根据团队技术栈,选择全新的语言与开发框架

    3. 网关作为入口,可做限流、授权( api 级别)、分发等,共性的可以都放在网关,容易维护

    很多人都说小公司用不用微服务无所谓。只是我的观点恰恰相反,小公司更应该用微服务,因为只要一开始框架搭好,原生就支持高可用、高并发这就可以省很多事情。
    在公司业务扩展的时候,选择技术方案与招人,也可以灵活很多;不需要特定的技术栈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     961 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 19:39 PVG 03:39 LAX 12:39 JFK 15:39
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86