分布式快速开发框架 GO-YEA

Apache 2.0
Java
跨平台
2017-04-28
yiyongfei

YEA

重要事情说三遍:使用go-yea前,请先下载yea,并且执行yea/pom.xml,不然会缺少依赖Jar包。

mvn clean install -Dmaven.test.skip=true

YEA项目地址:https://git.oschina.net/yiyongfei/yea

概述

GO-YEA是什么

GO-YEA是YEA的一个应用,它是一个极其容易使用的分布式框架,致力于提供产品的快速启动以及后续的服务伸缩。 其核心部分包含:

  • RPC服务:基于Netty4框架、序列化、数据压缩、心跳检测、断链重连等机制提供稳定的RPC服务,完成服务之间的非阻塞通讯。
  • 负载均衡:基于Ribbon提供的负载均衡算法,通过不同的负载均衡策略可以合理分担系统负载、加强网络数据处理能力。
  • 熔断处理:基于Hystrix提供的熔断机制,为分布式系统提供延迟和容错功能,防止级联失败,在面临不可避免的失败时仍能有其弹性。
  • LOOKUP服务:基于Zookeeper提供的注册中心,使地址透明,方便服务生产者、消费者平滑增加或减少机器。
  • 认证授权:基于Shiro框架、Redis服务提供的权限管理,提供用户的认证服务和可配置的授权服务。
  • 代码生成:通过生成工具,生成基于Mybatis的Sql-Mapping文件及相应的Entity、PK、Domain类(均是贫血对象),降低开发人员的重复工作。
  • Spring配置:透明化接入,通过Spring自身的注解机制无需额外编写代码即可为服务提供分布式能力。

GO-YEA  传送门

GO-YEA能做什么

首先它是一个分布式服务框架,通过高性能的RPC远程调用以及SOA服务治理,提升产品在各个阶段不同的可伸缩要求。以达到最大程度降低由于伸缩性的改变对整个项目的变动影响。

系统伸缩性通常以三种方式完成:1、增加副本;2、功能分割;3、数据分割。YEA主要考虑前二种方式。

 Alt 后期部署

其次它是一个快速启动的应用开发平台,集成了项目中常用的基础组件。

  • 认证授权:基于Shiro实现的可配置授权管理系统,通过页面可定义整个系统的权限、角色、授权。

  • 缓存:按照Map接口对Redis和Ehcache封装,降低使用门槛,同时也减少未来缓存方案的迁移开销(本地缓存向分布式缓存的迁移)。

  • ORM:基于Mybatis完成数据库层面的增、删、改、查操作。

  • 代码生成:基于数据表生成Sql-Mapping文件及相应的Entity、PK、Domain类。

  • 序列化:提高统一的序列化接口,支持三种序列化方式:FST、Hessian2、原生。

  • 等等

  •  Alt 技术结构

附上性能测试数据。

测试环境:三台Vultr的云主机,各1 CPU(单核),1024MB 内存,一台部署go-yea-web(Tomcat),一台部署Launcher(启三个服务,每个服务占用堆内存128MB),一台部署Jmeter用于测试。
测试软件:Jmeter。
测试说明:调用api:permission/operation/query。执行路径Jmeter--(http)-->Go-yea-web--(netty)-->Launcher--(tcp)-->DB--(tcp)-->Launcher--(netty)-->Go-yea-web--(http)-->Jmeter
测试结果(360并发): 
Alt 360并发

详细数据: 详细结果
提高并发数,提升性能指标:可以考虑先适当增加CPU核数和内存容量,然后再横向扩充。

纵向扩展对比(二台各2 CPU,4096MB 内存云主机,999并发): 
Alt 999并发

详细数据: 详细结果

访问GO-YEA(部署在bluemix上)

  • 访问地址:http://169.44.3.50
  • 用户名密码:admin admin 或 zhangsan zhangsan
  • 备注:对于admin用户,授权时请不要移除超级管理员这个角色

更新

  • GO-YEA是YEA的应用,绝大多数的问题修复、功能增强都会在YEA上更新

ISSUE

  • 使用期间若发现问题,请登记Issue,我会定期维护Issues上的问题
的码云指数为
超过 的项目
加载中

评论(6)

yiyongfei
yiyongfei 软件作者
重要的事情说三遍:GO-YEA是YEA的一个应用,依赖YEA,先从码云下载YEA这个项目,MVN INSTALL后再运行GO-YEA。地址:https://git.oschina.net/yiyongfei/yea。
j
james
是不是少代码,这个代码好像不全!重要的事说三遍,少三个代码块: yea-shiro/yea-core/yea-dispatcher
云飞扬11
云飞扬11
一个简单纯净的DUBBO
卖红薯
卖红薯
一直以为是GOlang
webas
webas
Could not find artifact com.yea:yea-orm🏺0.0.1 编译报错,找不依赖
xuanskyer
xuanskyer
贫血对象。。。

GO-YEA V0.0.2 发布了,分布式快速开发框架

GO-YEA V0.0.2发布了,它是一个极其容易使用的分布式框架,致力于提供产品的快速启动以及后续的服务伸缩。 主要更新内容: Netty优化,在增强稳定性的同时又提升了发送效率; 增加数据压缩机...

2017/06/01 16:10

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

TableView height for row

Height for row in table view

2014/09/07 22:57
10
0
什么是以太坊DAO?(二)

Decentralized Autonomous Organization,简称DAO,以太坊中重要的概念。一般翻译为去中心化的自治组织。 在上一节中,我们为了展示什么是DAO创建了一个合约,就像一个采用邀请制的俱乐部,会...

2018/12/12 09:01
10
0
箴 言 Proverbs 22

22:1 A GOOD name is rather to be chosen than great riches, and loving favour rather than silver and gold. 22:2 The rich and poor meet together: the LORD is the maker of them all...

2013/10/22 14:42
6
0
think there's many who

think there's many who

2015/06/11 13:52
6
0
20111230

The tides advance; the tides recede. Winter goes and summer comes. summer wanesand the cold increases. The sun rises; the sun sets. The moon is full; the moon is black. The bird...

2011/12/30 11:01
7
0
决策树判断党派

数据背景为选举中投票人员党派的确定。

2015/04/27 12:02
71
0
今天,我要做自己情绪的主人 Today I will be master of my emotions.

年初的时候,几乎天天跟人吵架,因为什么呢?因为自己的狗脾气,那会甚至都不管自己到底对不对,反正就是吵。坦诚的说,后来都有点因此而沾沾自喜,觉得那是自己NB,自己是个有个性的人。事到...

2016/06/20 13:34
3
0
今天,我要做自己情绪的主人 Today I will be master of my emotions.

年初的时候,几乎天天跟人吵架,因为什么呢?因为自己的狗脾气,那会甚至都不管自己到底对不对,反正就是吵。坦诚的说,后来都有点因此而沾沾自喜,觉得那是自己NB,自己是个有个性的人。事到...

2016/06/20 13:34
0
0
今天,我要做自己情绪的主人 Today I will be master of my emotions.

年初的时候,几乎天天跟人吵架,因为什么呢?因为自己的狗脾气,那会甚至都不管自己到底对不对,反正就是吵。坦诚的说,后来都有点因此而沾沾自喜,觉得那是自己NB,自己是个有个性的人。事到...

2016/06/20 13:35
0
0
今天,我要做自己情绪的主人 Today I will be master of my emotions.

年初的时候,几乎天天跟人吵架,因为什么呢?因为自己的狗脾气,那会甚至都不管自己到底对不对,反正就是吵。坦诚的说,后来都有点因此而沾沾自喜,觉得那是自己NB,自己是个有个性的人。事到...

2016/06/20 13:34
2
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部