×

Loading...

很多还是可以分开的 ---- 想象一下 denormalize 一点儿的 db...

Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术 / 肉联里应该有许多 IT 大拿,我学习的老师,能不能分享一下你对 Microservices Architecture 的经验或/和看法?
    • 居然不写谢谢。不是原唱啊。 +2
    • LOL~~~光经验哪行?还得纯粹度。看你楼下的这位背后偷喝了几年醋还不够,要不你这个大拿写个程序让她就泡在纯醋缸里慢慢享受好了。。。谢谢 +6
    • 小弟不才,用过半年。感觉就是 service oriented , 各个系统组件相互独立通过服务关联 ,和过去中央服务器反过来,容易maintain ,容易延展,有个12 factors,你可以搜索一下。现在渐渐成为主流。
      • 有没有什么像是 transaction management 一类的东东要注意的?
        • one of the best ways to solve the problem of distributed transactions is to avoid them completely. +1
        • https://softwareengineering.stackexchange.com/questions/290917/what-is-the-most-accepted-transaction-strategy-for-microservices
      • 有加拿大什么公司成功部署了基于微服务架构系统?貌似各大银行都在搞。 +1
        • 天下分久必合,合久必分,似乎现在很多项目都开始走microservice这个路线了。
          • 还没听说哪家做的比较成功的
            • 成功的标志是什么?只要服务起来了就算一个项目完成了。
              • 成功替代原来的系统,终止旧系统的使用。
                • 我个人理解micro service更多优势是应用用在扩展,包装分发服务,而不是代替过去传统系统。 +1
                  • 你的理解很有道理!
      • 它应属于SOA架构的一个子集,但更强调分布性和异步性。所有数据库多采用Cassandra一类的分布型数据库,所写的代码提倡全部采用async调用。
    • 关键字是 DDD, bounded context... 仔细考虑一下哪些东西可以分开,哪些必须/最好在一起... 把它看作一个重新架构 business 的机会...
      • 感觉不是所有的商务模式都适合用这个架构,因为很多都是采用关系型数据库,各数据实体之间关联性非常强
        • 很多还是可以分开的 ---- 想象一下 denormalize 一点儿的 db...
      • 对,microservice就是要限定边界,互相不影响,一个服务下线不影响别的服务状态,这样就不应该有跨界 跨系统 分布transaction的考虑。
      • 这位碰过apps多的,你见过有一定size的app用了Microservices Architecture的?
        • 我们在用。一开始就是一系列 apps 和 backend svc, 所以重新组合、整合,拆分成 micro svc 也应该说比较 make sense...
          • 这和我们面对的类似,能分享用了那些Technologies吗?
            • micro svc 这块最多的是 asp.net core + aws / linux container...
          • 采用哪家的framework和什么数据库?
            • 历史原因主要业务数据库是 sql server,但 aws 里面的其他各种 storage 方式也都在用 +1
              • 采用关系型数据库scalability差了,没法根据服务请求的数量调整service的数量,按你的理解你们采用microservice架构得到了什么好处?
                • micro svc 主要要解决的不是 performance 的问题 ---- 用了它更容易 scale out --- 但前提是架构本身能 scale out... 我觉得主要是 loose coupled / 模块化 / 不同 dev / deployment schedule / separate concerns / CI-CD... +1
        • 总的来说,别着急为 micro svc 而 micro svc, 要是你本身就有几个 app, 或分 frontend vs backend, 有不同 teams, 不同开发周期,那就很容易下决心。
          • 有大拿建议新的应用先上monolith app,等处理不过来时再改为微服务架构,不过我同意三果的看法,这很难。
            • 还是那句话 ---- 看有多少个 moving parts... 要是多个 teams 互相踩脚,最好一开始就分 ---- 大部分 coder 都会写着写着就铁板一块再分就难了...
              • Monolithic app 设计好了,也可以 scale out, 但改一个地方就要从头到尾测一遍,重新 deploy 一家老小全家桶 ---- 这个是 micro svc 要解决的,而不是性能 / 处理能力。
                • 就是这个意思,其实还有其它好处:可以异构化,每个service用彻底不同的架构,可以比较清晰的区分责任。
                  • 其实最大的好处是:我们程序员又有几年的好日子过了!!
                  • 可以对企业并购比较有利,如果已经是micro service,业务集成就比较容易了
                  • 问题是,现在的公司经常对各部门重组,异构化产生不必要的维护麻烦
                    • 那是你的麻烦,大公司因为经常并购,有很多技术栈
                      • 所以这是异构化的弊端,增加了维护成本
                        • 异构化是并购造成的,并不是故意要这样
                          • 明白你的意思了。就是刚好大家都用微服务架构。不过这都是大家想象的好处,就像SOA概念刚提出来时倡导者说的各种好处一样,现在微服务都不愿意承认是SOA的一种。目前使用微服务的公司还不多,你说的这个好处还有待验证。
                            • 如果没有这些忽悠,我们IT人到哪里找饭碗?
              • LOL..."Always code as if the guy who ends up reading your code will be a violent psychopath who knows where you live...."

                 

    • microservice和数据形式有关,其实本质要理解underlying data model,或者具体说对底下的数据 business logic要理解透彻,然后运用sql ACID建模。microservice只是洋葱皮。 +2