JEA 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
JEA 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
JEA 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !

软件简介

JEA定位为面向服务的企业级分布式开发集成框架,要完全发挥JEA的各项特性,需要准备多台服务器分别部署应用和支撑系统,如果要商用,相对来说大中型企业可能会更适合些。主要特点如下:
1、分布式远程过程调用:随着SOA越来越深入人心,软件的整体设计可能也会像传统工业社会一样,慢慢向流水线方向发展。曾经接触过很多类似这样的产品:它们独力完成了所有的业务工作,不需要和其它业务系统进行协同工作,随着时间的推移,它们越来越庞大,越来越难维护,而且还会发现一个很神奇的现象,产品里的很多业务功能总是能在同家公司的其它产品里发现。解决这个问题的有效办法是对业务系统进行拆解,根据不同的业务节点拆解成多个子系统,一笔交易通过远程调用的方式由各个子系统协同完成,这样可以很好的控制各子系统的复杂度,同时也能提升业务重用。JEA的分布式远程过程调用是通过Storm的DRPC来实现的,由Spring做IOC容器管理,很容易做横向扩展,开发方面符合Spring通用开发模式,通过Maven生成发布包发布到Storm上,之后即可通过dispatch(String callback, String facadeId, Object... objs)调用,JEA在处理时会首先通过Kryo将对象序列化,然后发送到DRPC服务器,转交给Topology后由Bolt进行反序列化并调用Facade来完成交易。而对于实效性要求不高的异步交易,JEA同样通过ActiveMQ队列方式提供了支持,JEA将对象序列化后发送到相应的队列后结束本次交易,而Storm服务器的MQTopology会定时从队列里轮询,发现有新消息后调用Facade来完成交易。
2、二级缓存和双重缓存(很容易扩展成多级缓存和多重缓存):鉴于分布式多服务器部署的考虑,JEA的缓存服务器只支持Memcached和Redis这二种,同时通过配置可使其支持二级缓存和双重缓存。双重缓存,在往L1缓存数据时会同时往L2缓存一份数据,此时L2将作为L1的备份缓存,如果L1缓存失效,会自动从L2缓存里去获取数据,避免缓存雪崩的发生。二级缓存,Memcached和Redis都是性能优越的缓存服务器,但它们都有各自的特色,相互之间并不能完全替代,有条件的情况下,建议打开JEA的L1缓存和L2缓存,然后往缓存服务器新增或更新缓存数据时,根据实际的业务情况制定缓存策略,决定是将业务数据缓存在L1缓存还是缓存在L2缓存,通过调用CacheContext.set(String cacheLevel, String key, Object value, int seconds)将数据缓存在指定级别的缓存器上。
3、面向服务体系结构:每一个基于JEA进行构建的系统,它即是一个服务提供者,同时它也可以作为服务消费者。向外部系统提供服务时,除了通过Storm和ActiveMQ队列这二种不同时效要求的方式外,JEA还支持更通用的基于WebService的REST服务或者SOAP服务,鉴于性能、稳定性和横向扩展等需要,在企业内部构建SOA服务体系,建议基于Storm+MQ来构建整套服务体系,如果需要提供服务供外部机构调用,再在其基础上额外提供更通用的REST服务或SOAP服务。而向外部系统消费服务时,主要基于外部系统所提供的服务接口方式调用不同的消费方式来获得服务的请求结果,目前允许的消费方式有:ActiveMQ、Storm、REST、SOAP这四种,如果服务提供方提供的是REST服务,此时数据默认将按JSON的方式组织发送。
4、JEA整体是基于Spring进行容器管理,通过Maven进行构建,同时又集成了Hibernate和Mybatis这二大开源ORM框架,所以通过JEA很容易构建出一套SpringMVC系统,系统分层结构:Web->Bridge->Facade->Service->Dao(Integration,对外消费服务),其中Web可以单独部署成Web服务器,Bridge及之后各分层组成StormTopology服务发布到DRPC服务器上,另外在Dao层通过AbstractBaseDAO所提供的各个方法,很容易完成DB层面的CRUD操作,只是需要注意,JEA要求所有的DB事务管理统一交由Hibernate进行管理,所以所有涉及会引发DB数据变化的操作都由Hibernate来完成,而查询操作则交由Mybatis来完成(后续将引入自定义的缓存机制,使Hibernate和Mybatis能够共享缓存内容)。

子项目的说明:
1、web,用于Web层,封装了调用AppServer的序列化逻辑和调用逻辑
2、integration,用于Integration层,封装了调用外部系统的(需优化)
3、ws,提供MQ、REST、SOAP、STORM服务的一些封装
4、orm,对于Hibernate和Mybatis的一些封装
5、cache,对于Memcached和Redis的一些封装
6、core,核心组件
7、achieve,一些默认实现

展开阅读全文

代码

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2018/02/26 22:42

Windows Server 2016-Win Ser 2016新增功能

本来想着整个系列都是与Active Directory相关的内容,上一章节我们应读者要求补充了Window Server 2016标准版与数据中心版的区别,鉴于读者的疑惑,从本章节开始补充三到五章与Windows Server 2016相关内容,希望可以帮到有需要的读者。PS.建议读者们学会学习的方法,学会搜索并消化整理相关知识点是学习技术的第一步,贪多嚼不烂,善于理解并按自己的思路总结相关内容才能不断进步;学习微软相关技术,要学会在docs.microsoft....

0
0
发表了博客
2018/01/17 10:59

Windows Server服务器之用户界面,任务管理器等

用户界面 简化服务器管理。 跟Windows 8一样,重新设计了服务器管理器,采用了Metro界面(核心模式除外)。 在这个Windows系统中,PowerShell已经有超过2300条命令开关(Windows Server 2008 R2才有200多个)。而且,部分命令可以自动完成。 任务管理器 Windows Server 2012跟Windows 8一样,拥有全新的任务管理器(旧的版本已经被删除并取代)。 在新版本中,隐藏选项卡的时候默认只显示应用程序。在“进程”选项卡中,以色调来...

0
0
2020/03/24 01:20

DevOps工具介绍连载(25)——Microsoft Azure Stack

顾老师安全测试新课,报名地址: http://www.hbz100.com/pc/course/courseInfo.do?courseId=182320200226121405459。疫情期间,您在注意身体安全的同时,关注身体安全了吗?500元工作几天的薪酬,让你薪资翻几倍。 顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址: https://item.jd.com/34295655089.html 《基于Django的电子商务网站》网上购买地址: https://item.jd.com/12082665.html 店铺二维码: 先来捋一捋...

0
0
发表了博客
2020/12/16 10:27

关于近期国家网络攻击的客户指南

译者:知道创宇404实验室翻译组 原文链接:https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/ 这篇文章包含近期国家网络攻击背后攻击者的技术细节。以下是攻击者常使用的工具及技术: 通过SolarWinds Orion产品中的恶意代码入侵。这导致攻击者在网络中获得立足点,从而获得更高的凭据。详请参阅SolarWinds安全咨询。 一旦进入网络,攻击者就会使用通过本地泄露获得的管理权...

0
0
发表了博客
2020/03/21 02:18

攻击与防御的双刃剑:深入分析PowerShell的两面性

      概述   在这一系列文章中,我将站在攻击与防御的两个不同视角,重点介绍已知攻击者如何利用不同的策略和技术来实现其恶意目的,并分析我们应该如何检测并阻止这些恶意活动。我将使用MITRE ATT&CK知识库和术语来说明其中涉及的各项技术。如果大家对MITRE ATT&CK技术不是很了解,建议可以先参考我在2018年发表过的文章和视频,题目名为“了解网络犯罪分子的工作方式,实现更加智能的安全”(Smarter Security Starts...

0
0
发表了博客
2020/03/19 20:01

攻击与防御的双刃剑:深入分析PowerShell的两面性

http://dy.163.com/v2/article/detail/F7NT84930511CJ6O.html       概述   在这一系列文章中,我将站在攻击与防御的两个不同视角,重点介绍已知攻击者如何利用不同的策略和技术来实现其恶意目的,并分析我们应该如何检测并阻止这些恶意活动。我将使用MITRE ATT&CK知识库和术语来说明其中涉及的各项技术。如果大家对MITRE ATT&CK技术不是很了解,建议可以先参考我在2018年发表过的文章和视频,题目名为“了解网络犯罪分子...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
33 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部