something about flower and Panthera

简介: something about flower and Panthera

一、响应式服务编程以及Flower框架


响应式服务编程有以下几个特点:


   即时响应,应用的调用者可以即时得到响应,无需等到整个应用程序执行完毕,也就是说应用调用是非阻塞的。


   回弹性,当应用程序部分功能失效的时候,应用系统本身能够进行自我修复,保证正常运行,保证响应,不会出现系统崩溃和宕机。


   弹性,能够对应用负载压力做出响应,能够自动伸缩以适应应用负载压力,根据压力自动调整自身的处理能力,或者根据自身的处理能力,调整进入系统中的访问请求数量。


   消息驱动,功能模块之间、服务之间,通过消息进行驱动,完成服务的流程。

Flower如何解决这个问题的?


2


对 Flower 而言,只需要有限的几个线程,就可以完成全部的用户请求操作。当并发用户到达应用服务器的时候,Flower 只需要极少的容器线程就可以处理所有的并发用户请求。这个线程并不会执行真正的业务操作,它只是将用户的请求变为请求对象以后,将请求对象异步交给 Flower 的 Service 去处理,自身立刻就返回。因为容器线程不做太多的工作,所以极少的线程就可以满足高并发的用户的请求,用户的请求不会被阻塞,不会因为线程不够而无法处理。


用户请求交给 Flower 的 Service 对象以后,Service 之间依然是使用异步的消息通讯的方式进行调用,Service 之间也不会直接进行阻塞式的调用。一个 Service 完成业务逻辑处理计算以后,会返回一个处理结果,这个结果以消息的方式异步发送给它的下一个 Service,Service 之间使用了 AKKA Actor 进行消息通信,也是只需要有限的几个线程就可以完成大量的 Service 处理和消息传输。


上面提到 Web 应用主要的线程阻塞,是因为数据库的访问导致的线程阻塞。Flower 支持异步数据库驱动,用户请求数据库的时候,将请求提交给异步数据库驱动,立刻就返回,不会阻塞当前线程,异步数据库访问连接远程的数据库,进行真正的数据库操作,得到结果以后,将结果以异步回调的方式发送给 Flower 的 Service 进行进一步的处理,这个时候依然不会有线程被阻塞。也就是说使用 Flower 开发的系统,在一个典型的 Web 应用中,几乎没有任何地方会被阻塞,所有的线程都可以被不断复用,有限的线程就可以完成大量的并发用户请求,从而极大地提高了系统的吞吐能力,也极大地提高了系统的响应时间。


主要应用了AKKA的Actor进行通信。那么 AKKA Actor 又是如何实现异步消息通信的呢?下面是 AKKA Actor 架构图。


3



二、讲解了面向对象的设计模式


定义:


   每一种模式都描述了一种问题的通用解决方案。这种问题在我们的环境中,不停地出现。


   设计模式是一种可重复使用的解决方案。


一个设计模式的四个部分:


   模式的名称 - 由少量的字组成的名称,有助于我们表达我们的设计。


   待解问题 - 描述了何时需要运用这种模式,以及运用模式的环境(上下文)。


   解决方案 - 描述了组成设计的元素(类和对象)、它们的关系、职责以及合作。但这种解决方案是抽象的,它不代表具体的实现。


   结论 - 运用这种方案所带来的利和弊。主要是指它对系统的弹性、扩展性和可移植性的影响。


设计模式的分类


从功能分


   创建模式(Creational Patterns)

   ☞ 对类的实例化过程的抽象。


   结构模式(Structural Patterns)

   ☞ 将类或对象结合在一起形成更大的结构。


   行为模式(Behavioral Patterns)

   ☞ 对在不同的对象之间划分责任和算法的抽象化。


从方式分:类模式和对象模式

下面分别讲述了一些设计模式。有大量的参考资料,不再赘述。


以JUnit为例,讲述了工厂模式。以Spring为例讲述了工厂模式和单例模式。重点是Spring的DI和IoC的实现。


作为前端框架,Spring也不可避免的使用了MVC模式。



三、Panthera代码解析


Panthera是一种大数据仓库引擎,分析了这个引擎中的组合模式和装饰器模式。回顾了抽象语法树 AST。





目录
相关文章
|
安全
PCB中泪滴的作用
泪滴在PCB设计中起到加固线路、保护焊盘和优化信号传输的作用,防止外力导致接触点断裂,确保焊盘稳定,减少阻抗突变。通过工具栏的"Tool"->"Teardrops"或快捷键"T+E"添加泪滴,选择操作模式(添加或移除)、对象(全部或选中)及配置选项,如泪滴形状、强制执行和大小调整。在添加过程中,可选曲线或直线样式,并能自动调节尺寸以适应空间限制。
382 4
|
6天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
12天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
11天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
7天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
628 17
|
6天前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
423 34