企业级应用系统设计--架构的选择

简介: SOA和微服务的抉择
莎士比亚曾经说过“to be or not to be”,在当今这个企业级应用盛行的时代,我们当然选择toB。

既然选择了toB,那么toB的项目都有什么特点呢?接下来咱们看一下企业级应用的特点
(1)数据持久化
(2)海量数据的存储
(3)数据的并发访问
(4)大量的用户图形界面
(5)分级体系复杂、需要和其它应用集成
(6)数据概念不统一结构复杂
(7)复杂的业务逻辑

image.png

toB的产品面向的是企业,他主要围绕着的是企业的业务功能来进行的,众所周知,一个企业的流程是非常繁琐的,通常也会造成开发和产品之间的一些矛盾。

image.png

针对这些矛盾,这些错综复杂的业务关系,架构方面改怎么来选择呢?
传统的行业用的是SOA架构,当今主流的则是微服务,对于这两种架构,我们该如何抉择呢?
image.png

下面看一下这两个架构的对比:

概念

SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作
微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
 微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想

特点

SOA
1、面向服务的分布式计算。
2、服务间松散耦合。
3、支持服务的组装。
4、服务注册和自动发现。
5、以服务契约方式定义服务交互方式。

微服务
1、分布式服务组成的系统。
2、按照业务而不是技术来划分组织。
3、做有生命的产品而不是项目。
4、智能化服务端点与傻瓜式服务编排。
5、自动化运维。
6、系统容错。
7、服务快速化

“中心化”和“去中心化”

中心化:SOA主要以ESB为服务主线,每次请求都要通过ESB来进行路由,强调“中心化”服务框架,进行多次网络会话,容易造成“雪崩”效应。

image.png
去中心化:微服务主要在服务中交互,强调“去中心化”服务框架,网络开销少了一半,会避免“雪崩”效应
image.png

主要区别

image.png

现在市面上也推出了很多微服务的架构,Spring全家桶、Dubbox、Thrift等等,微服务其实就是SOA的升华,一个软件的升级!

云顶云(yundingyun.com)是国内首批专注于云计算与大数据服务的提供商,致力于“让云计算更简单”。做为阿里云五星授权服务中心,云顶云致力于为企业和政府提供方案咨询、架构设计、部署实施、系统定制、运维托管、技术培训等全方位“4S”级公有云、私有云定制化服务。

相关文章
|
14天前
|
机器学习/深度学习 API 语音技术
|
1月前
|
设计模式 架构师 前端开发
JavaEE企业级分布式高级架构师课程
本课程主要面向1-5年及以上工作经验的Java工程师,大纲由IT界知名大牛 — 廖雪峰老师亲自打造,由来自一线大型互联网公司架构师、技术总监授课,内容涵盖深入spring5设计模式/高级web MVC开发/高级数据库设计与开发/高级响应式web开发/分布式架构设计等主流核心技术。
22 1
JavaEE企业级分布式高级架构师课程
|
1月前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【2月更文挑战第31天】 随着数字化转型的加速,云原生技术已经成为推动企业IT架构现代化的关键力量。本文深入探讨了云原生架构的核心组件、实施策略以及面临的主要挑战。通过分析容器化、微服务、DevOps和持续集成/持续部署(CI/CD)等关键技术,揭示了如何利用这些技术实现敏捷性、可扩展性和弹性。同时,文章还讨论了企业在采纳云原生实践中可能遇到的安全性、复杂性和文化适应性问题,并提供了解决这些问题的策略和建议。
|
1月前
|
数据库 Android开发 开发者
构建高性能微服务架构:从理论到实践构建高效Android应用:探究Kotlin协程的优势
【2月更文挑战第16天】 在当今快速迭代和竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性和独立部署能力而受到企业的青睐。本文将深入探讨如何构建一个高性能的微服务系统,涵盖从理论基础到具体实现的各个方面。我们将重点讨论服务拆分策略、通信机制、数据一致性以及性能优化等关键主题,为读者提供一个清晰、实用的指南,以便在复杂多变的业务环境中构建和维护健壮的微服务体系结构。 【2月更文挑战第16天】 在移动开发领域,性能优化和流畅的用户体验是至关重要的。随着技术的不断进步,Kotlin作为一种现代编程语言,在Android开发中被广泛采用,尤其是其协程特性为异步编程带来了革命性的改进。本文旨在深入
241 5
|
1月前
Web应用基本架构
Web应用基本架构。
38 6
|
9天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
46 0
|
12天前
|
运维 监控 自动驾驶
构建可扩展的应用程序:Apollo与微服务架构的完美结合
构建可扩展的应用程序:Apollo与微服务架构的完美结合
32 10
|
14天前
|
机器学习/深度学习 PyTorch API
|
14天前
|
机器学习/深度学习 语音技术 算法框架/工具
|
15天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第10天】 随着数字化转型的不断深入,企业对信息技术基础设施的要求日益提高。云原生架构作为一种新兴的设计理念和技术集合,以其灵活性、可扩展性和容错性,正在成为推动企业技术革新的关键力量。本文将探讨云原生技术的核心组件、实施策略以及面临的主要挑战,并分析如何通过采纳云原生架构来优化业务流程和提升服务效率。