博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《微服务设计》读书笔记(关于微服务的一点想法)
阅读量:6806 次
发布时间:2019-06-26

本文共 800 字,大约阅读时间需要 2 分钟。

1、在学习软件构造、设计相关知识时,大家应该有学习到内聚性的概念:即把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来。而

微服务将这个理念应用在独立的服务上。根据业务的边界来确定服务的边界,这样就很容 易确定某个功能代码应该放在哪里。

我个人觉得,微服务就是将原来的单体应用安装功能进行切分,然后各个服务之间通过通信(跨进程、跨机器)来共同完成原来的单体应用所提供的功能。

微服务对比与原来的单体应用,有它的优势,如服务的自治性增强、但同时也会带来一些其他问题,如性能、复杂度等问题。

2、想要使用微服务,首先是要清楚哪些业务或者功能应该成为单独的服务。《微服务设计》一书中给了一些建议:

当你在思考组织内的限界上下文时,不应该从共享数据的角度来考虑,而应该从这些上下 文能够提供的功能来考虑。
这个上下文是做什么用的。
组织结构和软件架构会互相影响。

当然,书中列出的建议不止这些,我也想谈一谈我自己的一些想法。

  • 我觉得首先要从业务出发(单独的基础服务,例如分布式事务、数据库同步服务例外),这一块业务我们需要实现怎样的功能,它在系统中处于什么样的位置,它需要与哪些服务进行交互(提供接口和消费接口)。知道了业务功能在整个系统的位置,有助于我们进行决策。
  • 其次,考虑业务极有可能的变化。业务功能可能因为产品进度等其它客观因素导致其部分需求或功能在本次迭代中没有提出,但可以预见的是这些功能在很大程度上会在后面的迭代中补充,这些功能可能会对当前业务有影响,将这些情况考虑进去在一定程度上会使得服务设计更加合理。在服务拆分、功能分配的时候可能会遇到这些情况,但需要避免过度设计
  • 最后,也需要根据自己团队的特点来设计微服务,例如组织架构会影响软件架构、以及当团队技术能力无法保障多服务协作的正确性,可以减少服务的拆分,将一些功能合并在一个服务内。

如有不正确的地方,欢迎指正交流。

转载地址:http://aunwl.baihongyu.com/

你可能感兴趣的文章
数据科学与DevOps之间的差距还有救吗?
查看>>
信息化一周回顾:金融业大数据十大趋势
查看>>
Http、TCP/IP协议与Socket之间的区别
查看>>
文思海辉:智慧数据避免企业成为大数据时代落伍者
查看>>
迅雷发布“星域CDN” 做条颠覆市场的鲶鱼
查看>>
英国《数字经济法案》
查看>>
Asp.net与Flex交互测试记录
查看>>
运维前线:一线运维专家的运维方法、技巧与实践1.8 运维自动化依赖的团队模型...
查看>>
《树莓派渗透测试实战》——第1章 树莓派和Kali Linux基础知识
查看>>
《圣殿祭司的ASP.NET4.0专家技术手册》----1-7 HTML5与CSS3的支持
查看>>
数据结构之链表
查看>>
八年了必须放手了,我不是你妈妈
查看>>
Eric S. Raymond 五部曲
查看>>
《Ansible权威指南 》一2.7 本章小结
查看>>
《iOS编程指南》——2.4节安装iOS SDK
查看>>
Comparing Mongo DB and Couch DB
查看>>
《配置管理最佳实践》——1.6 工具的选择
查看>>
前端工程师如何快速的开发一个微信JSSDK应用
查看>>
Apache Spark源码走读(九)如何进行代码跟读&使用Intellij idea调试Spark源码
查看>>
Android应用安全开发之浅谈网页打开APP
查看>>