评估是否使用微服务架构的五个关键条件
为了实施微服务架构,我们一直在遵循实践原则:每个微服务都必须拥有自己的独立数据库来避免数据库级别的耦合。
为了更好地解决特殊场景的问题,微服务架构不提倡使用适合所有场景的标准化技术,而是为了根据每个服务的特性选择更合适的技术。
当请求量增加时,只需要扩展一些服务而不是所有服务;同样,当数据库性能无法满足需求时,则仅需扩展和升级某些服务的数据库。
这也是微服务的架构的优势所在;《领域驱动设计》引入了上下文“ boundedcase”的概念,通过梳理业务来找到不同业务上下文之间的界限,帮助我们找到了划分小服务的方法,重点是业务边界。JamesLewis和MartinFowler在微服务的定义中还强调,微服务是基于业务能力的构建。
因此,评估公司是否需要使用微服务架构通常会检查这五个关键条件:
- 数据量
- 业务复杂度
- 团队规模
- 应对业务流量变化
- 是否有足够的容错和灾难需求
Dobo是相对早期的微服务架构,可以使应用程序能够通过高性能RPC实现服务的输出和输入功能以及Spring框架无缝集成。
不同类型的应用程序可以通过微服务功能演变为现代应用。
目前许多企业可能都面临着是否要将单体架构进行微服务升级改造的问题。但从一个大一统的系统,拆分成一个一个单独的小服务,企业需要投入的人力、物力、财力是非常巨大的。在没有足够的资源投入之前,不妨选择一些折中的方案。
传统架构的最大问题就是紧耦合,在应用迭代、升级的过程中,除了升级微服务架构之外,选择一些可插拔式的技术工具也可以很好的解决问题。比如:FinClip小程序容器技术 ,这是一种以小程序技术为载体,发展成组装式的企业应用架构技术。
从应用层来说,只要把FinClip SDK嵌入到企业的App中,就能立刻获得小程序运行能力。不管你的项目是什么软件架构,都可以通过这种嵌入式的小程序技术去获得APP并行开发、热更新、敏捷迭代的能力。
从开发角度来说,这是一种「Native + 小程序」的混合开发模式,借助这种模式可以让小程序运行在自有 App 中,将臃肿的 App 功能打散,功能模块互相解耦实现模块化开发,各业务模块间互不影响,通过管理后台即能实现实时动态更新与发布。对于一些积重难返的项目来说,采用这种入侵性小、可插拔式的技术是一种值得尝试的解决方案。
相关文章
- DirectCXL:一种可能替换RDMA的内存分解架构
- 微服务架构与springcloud04——Eureka服务注册与发现
- SpringCloud微服务架构开发实战:实现服务注册与发现
- springcloud微服务架构开发实战:常见微服务的消费者
- SpringCloud微服务架构开发实战:微服务的集中化配置
- 微服务架构实战:使用Jenkins实现自动化构建
- 云计算服务架构任务池与指令池的搭建和使用,RabbitMQ消息队列
- 分布式系统开发实战:微服务架构,实战:基于CQRS微服务通信
- Uber Freight 近实时分析架构,晚点取消的比例下降了 0.4%
- 微服务架构下使用Spring Cloud Zuul作为网关将多个微服务整合到一个Swagger服务上详解架构师
- 使用Docker部署Redis服务,轻松搞定分布式架构(dockerredis)
- 设计微服务架构前应该了解的 5 项指导原则
- SQL Server 构建高效并行架构(架构的sqlserver)
- 微服务架构下的Redis缓存搭建实践(微服务redis缓存搭建)
- 用BS架构搭建MySQL数据库服务(bs架构使用mysql)
- 破解Redis架构借助虚拟机的帮助(使用虚拟机里的redis)
- 使用Oracle RACIP架构加速IT服务可用性(oracle racip)
- Redis聊天系统实现轻松实时交流(redis 聊天架构)