架构师培训第 10 周练习
1、根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。
2、关于微服务(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识?
微服务是一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。
微服务的产生是为了解决单体巨无霸应用编译部署困难、代码分支管理困难、数据库资源耗尽、新增需求困难等一系列问题而产生的,它可以带来如下益处:
1,根据业务选择合适的技术栈
2,因为现在的服务都比较小,进行颠覆性改造的成本和难度会小很多
3,服务集群的水平扩展和收缩非常方便
4,服务是自给自足的,所以服务底层平台的切换更容易。究竟是使用公有云,还是自己搭建私有云平台。
5,微服务可以方便的添加新功能,称为一个有机的系统(可以随着时间自己成长)
6,随着技术的发展演进,我们可以将一个微服务升级应用新的技术,而不需要升级整个系统,和前面的有点重复
7,在一个微服务中,可以有多个版本的某一服务
8,可以根据服务的边界,确定团队。在组织划分上便于打造小而专的团队
不要为了微服务而拆分系统,微服务落地应该遵循如下原则:
1、业务先行,先理顺业务边界和依赖,技术是手段而不是目的,这一点非常重要。
2、现有独立的模块,后有分布式服务。
3、业务耦合严重,逻辑复杂多变的系统进行微服务重构要谨慎。
4、要搞清楚实施微服务的目的是什么,是为了业务复用,还是开发边界清晰,还是分布式集群提升性能。
中台架构是支持多个前台业务且具备业务属性的共性能力组织架构。中台架构就是采用微服务架构设计理念,将具备业务属性的共性能力提炼出公共服务,形成中台供前台业务调用。
领域模型是为解决特点场景下的领域问题而形成的一套模型,然后使用这套模型来解决业务问题。 根据重复劳动经验我们会形成一套模式。通过领域模型的战略设计,可以很好的梳理和划分微服务,是指导微服务划分的方法论。
组件设计包括的原则:
1、组件内聚原则
2、复用发布原则
3、共同封闭原则
4、共同复用原则
5、组件耦合原则
6、无循环依赖原则
7、稳定依赖原则
8、稳定抽象原则
总之,业务需求才是最重要的,业务人员和开发人员必须通过沟通,需求理解并达成一致之后,才能够梳理出微服务的边界,才能设计出合理的微服务。
评论