课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习软件开发技术,而今天我们就一起来了解一下,软件开发架构方法都有哪些类型。
1、事件驱动架构
上下文
需要提供计算和信息资源来处理传入的应用程序生成的独立异步事件,这种方式可以随着需求的增加而扩展。
问题
构建分布式系统,这个系统可以服务异步到达的事件相关信息,并且能从简单小型扩展到复杂大型。
方案
为事件处理部署独立的事件进程或处理器。到达的事件进入队列。调度程序根据调度策略从队列中拉取事件并将它们分配到合适的事件处理器。
弱点
性能和错误恢复可能是问题。
用途
使用这个方案的电商应用程序将工作如下:
OrderService创建一个Order,这个订单处于待定状态,然后发布一个OrderCreated事件。
CustomerService接收到这个事件并尝试为这个Order扣除信用。然后发布一个CreditReserved事件或者CreditLimitExceeded(超出信用限额)事件。
OrderService接收到CustomerService发送的事件并将订单状态更改为已核准或已取消。
2、微服务架构
上下文
部署基于服务器的企业应用程序,支持各种浏览器和原生移动客户端。应用程序通过执行业务逻辑、访问数据库、与其它系统交换信息并返回响应来处理客户端请求。这个应用程序可能会暴露一个三方API。
问题
一体化应用程序会变得过于庞大和复杂,无法得到有效支持和部署来实现优的分布式资源利用,例如在云环境中。
方案
将应用程序构建成服务套件。每个服务都是独立部署和可扩展的,拥有自己的API边界。不同的服务可以用不同的编程语言编写,管理它们自己的数据库,由不同的团队开发。
弱点
系统设计必须能容忍服务失败,需要更多的系统监控。服务编排和事件协作开销比较大。
当然,我们还需要更多钱。
用途
许多使用场景都可以应用微服务架构,特别是那些涉及大量数据管道的场景。例如,一个微服务系统对关于一个公司的零售店销售的报表系统会比较理想。数据展现过程的每一步都会被一个微服务处理:数据收集、清理、规范化、浓缩、聚合、报告等。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。