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

silvermeercat 发布于1年前 阅读26235次
0 条评论

YEA

使用go-yea前,请先下载yea,并且执行yea/pom.xml。

mvn clean install -Dmaven.test.skip=true

概述

GO-YEA是什么

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

  • RPC服务:基于Netty4NIO框架、FST序列化、Ketama Hash算法提供的RPC服务,完成服务之间的非阻塞通讯。

  • LOOKUP服务: 基于Zookeeper提供的注册中心,使地址透明,方便服务提供方平滑增加或减少机器。

  • 认证授权:基于Shiro框架、Redis服务提供的权限管理,提供用户的认证服务和可配置的授权服务。

  • 代码生成:通过生成工具,生成基于Mybatis的Sql-Mapping文件及相应的Entity、PK、Domain类(均是贫血对象),降低开发人员的重复工作。

  • Spring配置:透明化接入,通过Spring自身的注解机制无需额外编写代码即可为服务提供分布式能力。

GO-YEA能做什么

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

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

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

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

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

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

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

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

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

  • 等等

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

最后,附上性能测试数据。

测试环境说明:三台Vultr的云主机,各1 CPU(单核),1024MB 内存,一台部署go-yea-web(Tomcat),一台部署Launcher(启三个服务,每个服务占用堆内存128MB),一台部署Jmeter用于测试。

测试软件:Jmeter,300并发,1000次循环。

测试请求:permission/operation/query。

测试结果: 

详细数据: 详细结果

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

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

查看原文: GO-YEA —— 分布式快速开发框架

需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。