关于flying框架
开发10多年了,开发过程中遇到的最大的问题:
①项目的代码越来越多了,越来越复杂了,而客户的需求,你还不得不往里面加入新代码。
②开发了很多项目,每次复用时却只能把代码copy来copy去,然后调试、测试,不是不相信原来的代码,而是原来的代码的生存空间变化了。
③业务需要使用很久以前的模块,但是技术已经经历了很大的升级或者改变(如老版本的系统用到了hibernate1),除非技术升级否则很难集成。
怎么办?
flying框架采用类似微服务的设计解决这些问题。
flying中包含框架和模块,框架负责管理和组织模块,以及请求的分发,模块负责业务的处理。模块是服务的载体。模块之间的服务是可以完全互相调用的。我们把整个系统按照业务的特点分成更加细小的模块,所有的模块都可以共享它里面承载的业务,这些业务具备方便的java接口提供调用;老旧的业务系统与新业务的其他模块部署在一起,无需再升级、调试、测试老旧模块而直接使用,所有的问题圆满了。
框架特征
功能服务化,所有接口可以在前端、后端、跨JVM中访问
开发模块化,应用通过模块组装,模块成为企业的积累,不同的技术在模块下完成整合
共享简单化,从模块、服务等所有单元均可共享,共享的是服务,而不再是代码
大量的可用组建,可扩展性和可维护性
长期愿景:
我们将所有的模块注册到zookeeper中,如是,服务可以被快速的注册、发现和使用(配合zookeeper)。
关键词:
本地模块:部署在当前JVM中的Module
远程模块:部署在其他JVM中的Module
服务:POJO类,负责完成业务处理
框架源码:https://github.com/hifong/flying
Demo应用:https://github.com/hifong/pas
技术QQ群:455852142
关于flying框架的更多相关文章
- 请求服务(RequestService)
一个module中的web组件,负责将Service的结果按照适当的规范输出给前端.格式:http://server/moduleID/param0/param1/paramN/p.TYPE格式上包含 ...
- PDF 生成插件 flying saucer 和 iText
最近的项目中遇到了需求,用户在页面点击下载,将页面以PDF格式下载完成供用户浏览,所以上网找了下实现方案. 在Java世界,要想生成PDF,方案不少,所以简单做一个小结吧. 在此之前,先来勾画一下我心 ...
- WhyGL:一套学习OpenGL的框架,及翻写Nehe的OpenGL教程
最近在重学OpenGL,之所以说重学是因为上次接触OpenGL还是在学校里,工作之后就一直在搞D3D,一转眼已经毕业6年了.OpenGL这门手艺早就完全荒废了,现在只能是重学.学习程序最有效的办法是动 ...
- A Benchmark Comparsion of Monocular Visual-Inertial Odometry Algorithms for Flying Robots论文笔记
摘要: 本文主要比较单目VIO的算法在飞行机器人上运行的性能,测试使用统一数据集为EuRoC.其中评价指标为:姿态估计精度.每帧处理时间以及CPU和内存负载使用率,同时还有RMSE(运行轨迹与真实轨迹 ...
- 一系列令人敬畏的.NET核心库,工具,框架和软件
内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...
- 16 . PythonWeb框架之Django
Web框架简介 Web开发是Python语言应用领域的重要部分,也是目前最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Django.Tornado.Flask.Twist ...
- 15 . PythonWeb框架本质
PythonWeb框架的本质 简单描述就是:浏览器通过你输入的网址给你的socket服务端发送请求,服务端接受到请求给其回复一个对应的html页面,这就是web项目.所有的Web应用本质上就是一个so ...
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
随机推荐
- Javascript中遍历数组方法的性能对比
Javascript中常见的遍历数组的方法 1.for循环 for(var i = 0; i < arr.length; i++) { // do something. } 2.for循环的改进 ...
- 记录一次APP的转让流程
由于业务需要,需要将开发的App从一个账号(A账号)转移到另一个账号(B账号),这里简单介绍一下转让流程.主要包括两大步骤: 转让方(A账号)提出转让申请 接收方(B账号)接受转让App 如果不想看这 ...
- MySQL5.7新特性:lossless replication 无损复制
MySQL的三种复制方式 asynchronous 异步复制 fully synchronous 全同步复制 Semisynchronous 半同步复制 asynchronous replicatio ...
- 通过yum安装mysql数据
1. 卸载掉原有mysql 因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已 ...
- 9、ABPZero系列教程之拼多多卖家工具 拼团提醒类库封装
本篇开始正式做功能,我在开发拼团提醒之前,拼多多并没有放出拼团人数不足就提醒卖家的功能. 有这个想法主要来源于朋友的抱怨,我想这应该是大部分卖家的心声吧. 经过分析,拿到了几个api,不要问我api怎 ...
- java_web学习(四) Date的理解与应用
1.日期 1.1 日期的本质: 是一个长整型long,最小单位是毫秒 1.2 日期的格式: 本次运用子类simpleDateformat定义格式 1.3 日期的运算 本次运用calendar类来的ad ...
- JavaSE(四)之接口、访问控制
上面我们学习了几个修饰符,在开发中经常会用的到,所以必须熟练的掌握.接下来我学习一下接口和访问控制. 一.接口 一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方 ...
- 我的第一次Pascal程序
今天刚刚来学点Pascal语言,都怪我买的书大多是用Pascal语言写的,所以我只能试着学一点咯! 来一段程序员最经典的Hello World! ; begin write('Hello World! ...
- hdu_1036(取整和格式控制)
题意很简单,求平均时间 复习一下如何取整 (int) fl 是直接向下取整 == floor(fl) 向上取整 (int)(fl+1) == ceil(fl) 四舍五入 (int)(fl+0.5 ...
- hdu_4463(最小生成树)
hdu_4463(最小生成树) 标签: 并查集 题目链接 题意: 求一个必须包含一条路径的最小生成树 题解: 把那条边初始化成0 保证这条边一定会被选 #include<cstdio> # ...