【bird-java】bird-java概述
bird-java是以dubbo为基础的分布式服务框架,专注于业务开发,提炼后台应用中的经典业务场景,大幅减少开发编码量。
技术选型
- 基础框架:spring
- 服务调度:dubbo
- web层:spring-mvc
- 缓存:redis
- 数据访问:mybatis、mybatis-plus
- 数据库连接池:druid
- 消息队列:kafka
- 日志:slf4j、logback
- 任务调度:quartz
- 服务总线:基于Kafka自研EventBus
- 身份认证:自研单点登录
架构图
- 接入层:即web层,服务的使用者,面向用户。多系统之间通过sso实现登录与权限的统一控制。
- 服务层:服务的提供者,每个服务均可集群部署,服务之间可通过RPC调用,也可通过EventBus实现通信。
- 数据层:包括数据的持久化与缓存。每个服务可对应其各自的数据库,缓存使用redis。
- 基础设施层:为以上各层提供服务,包括日志、工具类、任务调度等。
项目介绍
- thchengtay-core:包括各种抽象基类与工具类、缓存的实现等。
- thchengtay-service-common:依赖thchengtay-core,包括所有服务接口、DTO、Model、EventArg的定义。
- thchengtay-service-xxx:依赖thchengtay-core、thchengtay-service-common,服务的实现,可自由扩展。每个模块均可集群部署,可拥有自己的数据库,可单独做读写分离等。
- thchengtay-web-admin:依赖thchengtay-core、thchengtay-service-common,web层,可负载均衡,调用远程服务,不依赖具体实现。
- thchengtay-web-user:用户中心,单点登录服务器。
- thchengtay-web-file:文件服务器。
功能特性
bird-java提供了许多功能特性,包括:
- 分布式。每个服务均可集群部署,服务间可自由通信,每个服务可拥有自己的数据库,可单独做读写分离。
- EventBus事件总线。让服务间事件传递像本地程序一样简单。
- 全自动CRUD,表格增删查改、筛选、排序、分页均从框架层面解决,业务编码量不到20行。
项目地址
项目地址:https://github.com/liuxx001/bird-java,有兴趣的朋友们可以看看。
【bird-java】bird-java概述的更多相关文章
- Java Reference简要概述
@(Java)[Reference] Java Reference简要概述 Reference对象封装了其它对象的引用,可以和普通的对象一样操作. Java提供了四种不同类型的引用,引用级别从高到低分 ...
- java基础---java语言概述
一.计算机编程的两种范型 1.面向过程的模型---具有线性执行特点,认为是代码作用于数据. 2.面向对象的模型---围绕它的数据(即对象)和为这个数据定义的接口来组织程序:实际上是用数据控制代码的访问 ...
- Notes 20180506 : Java程序设计语言概述
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...
- (转)Hibernate框架基础——Java对象持久化概述
http://blog.csdn.net/yerenyuan_pku/article/details/52732990 Java对象持久化概述 应用程序的分层体系结构 基于B/S的典型三层架构 说明 ...
- Java:多线程概述与创建方式
目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方 ...
- Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员、局部),匿名对象的调用,构造代码块(5)
Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员.局部),匿名对象的帝爱用,构造代码块(5)
- Java类加载器概述
Java类加载器概述 Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由Java 应用开发人员编写的. 系统提供的类加载器 引导类加载器 它用来加载 Java 的核心库,是用原生 ...
- java util包概述
util是utiliy的缩写,意为多用途的,工具性质的包这个包中主要存放了:集合类(如ArrayList,HashMap等),随机数产生类,属性文件读取类,定时器类等类.这些类极大方便了Java编程, ...
- java语言特性概述
一.前言 我们都知道java是面向对象的编程,其中四个基本特性:抽象.封装.继承.多态.这四个特性,概括起来可以这么理解,抽象.封装.继承是多态的基础,多态是抽象.封装.继承的表现. 二. JAVA ...
- Java程序设计环境概述
本文主要Java程序设计环境的要点,以及相关注意事项. 一.安装Java开发包 Oracle公司为Linux.Mac OS X.Solaris和Windows提供了Java开发工具包(JDK)的最新. ...
随机推荐
- SQL Server学习之路(四):“增删改查”之“删”
0.目录 1.前言 2.通过SSMS删除 3.通过SQL语句删除 3.1 删除单行数据 3.2 删除所有行数据 3.3 删除表和数据库 1.前言 增删改查都是对数据的操作,其中"删" ...
- QWT与QT Designer
QWT是一套非常不错的开发库,它能结合QT开发,做出非常好的曲线,刻度,表盘等效果来. qwt的下载以及动态链接库的编译等这里就不做介绍了.在源码目录下可以找到designer目录,其中有插件的源码 ...
- 错误代码: 1054 Unknown column 't.createUsrId' in 'group statement'
1.错误描写叙述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:select count(t.id),t.`createUserId` ...
- Android 四大组件学习之ContentProvider四
上节我们学习了怎样去读取系统短信以及插入一条短信到系统中. 本节我们学习怎样获取系统的联系人,以及插入一条联系人 好.废话不多说了,直接操作. 首先和读取短信一样,先找到联系人在数据库中的位置. wa ...
- UVA 540(队列)
Description Team Queue Queues and Priority Queues are data structures which are known to most comp ...
- Qt---自定义界面之 Style Sheet
这次讲Qt Style Sheet(QSS),QSS是一种与CSS类似的语言,实际上这两者几乎完全一样.既然谈到CSS我们就有必要说一下盒模型. 1. 盒模型(The Box Model) 在样式中, ...
- AJAX跨域问题解决---后台解决
对于ajax请求数据,经常出现一个坑,防不胜防.今天突然找到一个很好的解决办法,直接在后台设置资源共享就可以了. 代码为:response.raw().setHeader("Access-C ...
- 主从DB与cache一致性
本文主要讨论这么几个问题: (1)数据库主从延时为何会导致缓存数据不一致 (2)优化思路与方案 一.需求缘起 上一篇<缓存架构设计细节二三事>中有一个小优化点,在只有主库时,通过" ...
- Ubuntu 下使用 ZTE ME3630 4G 模块
之前在 AM5728 开发板上使用过这个模块,用来在野外采集数据上传到服务器.最近接触另外一个项目,做一个演示用的样机,需要移动的,也是采用了这个模块来上传数据.样机环境是 Ubuntu 16.04 ...
- Django的Models
Django的数据库配置: 1 django默认支持sqlite,mysql, oracle,postgresql数据库 2. 在django的项目中会默认使用sqlite数据库,如果要使用 ...