分层模型分层模型应该是我们编程里面最常用的模型,尤其是web开发里面,会有表示层、业务层和持久化层以及DB层,在表示层主要是web页面,业务层主要是编写核心的业务代码,持久化层主要是负责保存数据 。通过分层将职责分开,上一层调用下一层的接口 。反过来,下层的设计不会依赖上层 。
文章插图
和分层模型比较关联的MVC模型,也是web开发中常用的,其中M是数据mode定义,也就是定义业务类,V是视图,用于数据展现,C是controller控制,编写业务逻辑 。
文章插图
管道过滤器管道过滤器主要用于数据处理,源数据经过一系列的过滤器处理后发送到sink 。这里的过滤器不仅限于过滤,还可以用于数据处理 。
文章插图
不同的过滤器实现相同的接口,这种松耦合的方式可以随意将不同过滤器组合到一起 。但由于链路比较长,延迟会比较高 。
客户端服务器这种方式主要是客户端通过网络连接到服务器,客户端通过HTTP或者RPC的方式,请求服务端,并等待服务端返回 。
文章插图
这种模式由于服务端是中心化的,性能瓶颈在服务端 。
事件驱动模型事件驱动也是最近两年比较流行的概念,服务之间通过事件驱动执行 。它是一种更加松耦合的方式,事件的触发者甚至不知道这个事件会被谁去消费,通常扔到消息队列里面 。
文章插图
事件的消费者通过监听关心的事件,触发执行操作 。我们熟知的knative 以及FaaS 等很多地方都使用了事件触发,譬如我们通过 FaaS 图片处理,每当上传一个图片到对象存储就会触发一次事件,执行对应的函数 。
微服务微服务也是这两年比较流行的概念,尤其是云原生(微服务、容器化、Devops)的兴起 。微服务主要是解决单体架构的弊端 。将单个庞大的服务拆分成多个高内聚、低耦合并且职责单一的微服务 。
文章插图
服务之间通过API 相互调用,外部通过API gateway 转发请求 。并且每个服务都可以独立部署和发布 。
【你需要知道的五种常用的编程模型】
推荐阅读
- 买电脑、硬件安全下车必须要做的操作,奸商绝不会告诉你
- 五款css布局工具,大大减少你写代码的时间
- 这11个网络工程师必备实用软件,别说老杨藏私不告诉你
- 一文带你详解 Chrome F12 Network 选项
- 徒步登山运动需要什么装备
- 四川长虹|职场上,大神级的人物都做了这点,参考对照,你是否有潜质?
- 站着看你的精神活动
- 性格测试的细节取决于你的真实性格
- 髋部怎么进行力量训练呢?
- 电影|温子仁晒恐怖合照庆《修女2》将开拍:下一个到你了