2017-12-15 23:15:36 +08:00
# NutzBoot 微服务
2017-11-22 00:18:12 +08:00
2018-01-02 13:19:40 +08:00
NutzBoot,简称NB,是可靠的企业级微服务框架,提供自动配置,嵌入式web服务,分布式会话,hystrix, RPC等一篮子解决方案
2017-11-21 23:39:51 +08:00
2017-11-22 11:23:59 +08:00
* 主页: [NB的官网 ](https://nutz.io )
* 项目生成器: [NB Makder ](https://get.nutz.io )
* 版本历史: [NB进化史 ](ChangeLog.md )
2017-12-29 22:23:10 +08:00
* 文档: [NB的文档 ](https://gitee.com/nutz/nutzboot/tree/dev/doc )
* 文档2: [NB的文档2 ](http://nutzam.com/core/boot/overview.html )
* 社区: [NutzCN ](https://nutz.cn )
2017-11-13 11:22:41 +08:00
2017-12-20 22:43:27 +08:00
[![Build Status ](https://travis-ci.org/nutzam/nutzboot.png?branch=dev )](https://travis-ci.org/nutzam/nutzboot)
2018-01-05 22:23:02 +08:00
[![Maven Central ](https://maven-badges.herokuapp.com/maven-central/org.nutz/nutzboot-parent/badge.svg )](https://maven-badges.herokuapp.com/maven-central/org.nutz/nutzboot-parent/)
2017-12-15 23:15:36 +08:00
[![GitHub release ](https://img.shields.io/github/release/nutzam/nutzboot.svg )](https://github.com/nutzam/nutzboot/releases)
[![License ](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg )](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Skywalking Tracing ](https://img.shields.io/badge/Skywalking%20Tracing-enable-brightgreen.svg )](https://github.com/OpenSkywalking/skywalking)
2017-12-15 22:43:35 +08:00
## 功能介绍
* 快速创建Nutz应用,提供[初始化工具Maker](https://get.nutz.io)
* 嵌入式web服务(jetty/tomcat/undertow),直接打包为runnable jar
* 基于starter的自动配置体系,只需要添加maven依赖,即可自动发现并加载
* 能满足80%以上常见需求的默认配置,无需过多的自定义
* 以开放的心态与国内开源团体合作,优先集成国产项目
* 活跃的社区及稳健的发布周期,推进项目一直前进
2018-01-09 20:51:33 +08:00
* 默认使用eureka作为服务治理, ribbon提供负载均衡,feign封装http请求, hystrix提供熔断
* 提供swagger api文件自动生成
2017-12-15 22:43:35 +08:00
## 快速预览一下NB的项目吧
2017-12-15 22:51:58 +08:00
pom.xml
```xml
2017-12-29 22:23:10 +08:00
< dependencyManagement >
< dependencies >
< dependency >
< groupId > org.nutz< / groupId >
< artifactId > nutzboot-parent< / artifactId >
< version > ${nutzboot.version}< / version >
< type > pom< / type >
< scope > import< / scope >
< / dependency >
< / dependencies >
< / dependencyManagement >
2017-12-15 22:43:35 +08:00
< dependencies >
< dependency >
< groupId > org.nutz< / groupId >
< artifactId > nutzboot-starter-nutz-web< / artifactId >
< / dependency >
< dependency >
< groupId > org.nutz< / groupId >
< artifactId > nutzboot-starter-jetty< / artifactId >
< / dependency >
< / dependencies >
```
2017-11-13 20:50:56 +08:00
2017-12-15 22:51:58 +08:00
src/main/java/io/nutz/demo/simple/MainLauncher.java
2017-11-13 20:50:56 +08:00
```java
package io.nutz.demo.simple;
import org.nutz.boot.NbApp;
import org.nutz.ioc.loader.annotation.*;
import org.nutz.mvc.annotation.*;
@IocBean
public class MainLauncher {
2017-12-06 17:29:21 +08:00
2017-11-13 20:50:56 +08:00
@Ok ("raw")
@At ("/time/now")
public long now() {
return System.currentTimeMillis();
}
public static void main(String[] args) throws Exception {
2017-12-12 22:18:38 +08:00
new NbApp().run();
2017-11-13 20:50:56 +08:00
}
}
```
2017-12-25 00:13:47 +08:00
[![asciicast ](https://asciinema.org/a/40Brr8ZNsHx1ILfjhJ7zppJ3v.png )](https://asciinema.org/a/40Brr8ZNsHx1ILfjhJ7zppJ3v)
2017-12-15 22:43:35 +08:00
请访问 [https://get.nutz.io ](https://get.nutz.io ) 获取属于您的基础代码
2017-12-25 00:13:47 +08:00
2017-12-15 22:51:58 +08:00
### Demo
2017-12-15 22:49:11 +08:00
2017-12-15 22:51:58 +08:00
* [内置demo ](https://github.com/nutzam/nutzboot/tree/dev/nutzboot-demo ),每个starter均配套一个demo
* [Todo-backend ](https://github.com/nutzam/todo-backend-nutzboot ),一个类就能通过TodoBackend的测试
2017-12-15 22:49:11 +08:00
## Contributors
* [蛋蛋 ](https://github.com/TopCoderMyDream )(提交了第一个Banner及打印逻辑)
* [胖五 ](https://github.com/pangwu86 )(nutz.io主笔)
* [qinerg ](https://github.com/qinerg )(率先提交undertow)
* [benjobs ](https://github.com/wolfboys )(提交了tomcat)
* [温泉 ](https://github.com/ywjno )(提交thymeleaf)
* [科技 ](https://github.com/Rekoe )(探路者,正在踩坑,正在做后台模板)
* [潇潇 ](https://github.com/howe )(探路者,生产环境填坑中)
2017-12-21 17:21:25 +08:00
* [道坤 ](https://github.com/albinhdk )(探路者,正在踩坑)
* [HeTaro ](https://gitee.com/HeTaro )(探路者,正在踩坑)
2017-12-15 22:49:11 +08:00
* [zozoh ](https://github.com/zozoh )(路过...)
* [wendal ](https://github.com )(到处挖坑)
2017-12-26 15:23:30 +08:00
* [瞎折腾 ](https://gitee.com/lx19990999 )(完善demo-maker)
2017-12-16 19:16:16 +08:00
* [天空 ](https://github.com/tiankongkm )(提交zkclient)
2017-12-19 14:21:24 +08:00
* [haoqoo ](https://github.com/haoqoo )(提交velocity)
2017-12-26 15:23:30 +08:00
* [鱼夫 ](https://gitee.com/yustory )(正在踩NB+U家三剑客的坑)
2017-12-30 19:45:18 +08:00
* [幸福的旁边 ](https://github.com/happyday517 )(提交caffeine方法缓存)
2017-12-15 22:49:11 +08:00
* 还有您的名字哦,告知我们吧
## 采用NutzBoot的公司
请访问链接 [采用公司 ](https://github.com/nutzam/nutzboot/issues/62 )
## 文档
* [NutzBoot简介 ](doc/overview.md )
* [NutzBoot目录约定 ](doc/struct.md )
* [NB与Nutz.Mvc对比 ](doc/diff_nb_mvc.md )
2017-12-15 22:51:58 +08:00
2017-12-15 22:49:11 +08:00
## 开发进度
2017-11-13 11:22:41 +08:00
2017-11-22 00:18:12 +08:00
期待您的加入
2017-12-15 22:49:11 +08:00
- 基础框架
2017-12-29 22:23:10 +08:00
- [x] 基础框架的文档
- [x] 基本框架的实现
2018-01-05 22:23:02 +08:00
- 嵌入式web容器
- [x] [Jetty ](https://www.eclipse.org/jetty/ )
- [x] [Undertow ](http://undertow.io/ ) by [@qinerg ](https://github.com/qinerg )
- [x] [Tomcat ](http://tomcat.apache.org/ ) by [@benjobs ](https://github.com/wolfboys )
- 分布式组件
- RPC(Remote Procedure Call)
- [x] [Dubbo ](http://dubbo.io/ ) 阿里出品的高性能RPC平台
- [x] [zbus ](http://zbus.io ) 国产知名RPC平台
2018-01-07 20:54:41 +08:00
- [x] [feign ](https://github.com/OpenFeign/feign ) makes writing java http clients easier, by [haoqoo ](https://github.com/haoqoo ) and [wendal ](https://github.com/wendal )
2018-01-09 20:51:33 +08:00
- [x] [ribbon ](https://github.com/Netflix/ribbon ) 配合feign实现负载均衡
2018-01-05 22:23:02 +08:00
- [x] zkclient zookeeper的封装
- [x] [hystrix ](https://github.com/Netflix/Hystrix ) 熔断器
- [x] [eureka-server ](https://github.com/Netflix/eureka ) 服务治理的服务器端
- [x] [eureka-client ](https://github.com/Netflix/eureka ) 服务治理的客户端
2017-12-15 22:49:11 +08:00
- 数据库类相关
2017-12-29 22:23:10 +08:00
- 关系型数据库
- [x] Jdbc连接池,默认使用druid,带监控功能
- [x] [sharding-jdbc ](https://github.com/shardingjdbc/sharding-jdbc ) 分库分表
- [x] [Nutz.Dao ](https://github.com/nutzam/nutz )
- [x] [BeetlSql ](http://ibeetl.com/guide/#beetlsql ) 基于Beetl的SQL框架
- 非关系型数据库
- [x] [Redis ](https://redis.io )
- [x] MongoDB
- [ ] memcached
- [ ] ssdb
2017-12-15 22:49:11 +08:00
- Mvc
2017-12-29 22:23:10 +08:00
- [x] Nutz.Mvc
- [ ] [jersey ](https://jersey.github.io/ )
2017-12-15 22:49:11 +08:00
- 安全鉴权
2017-12-29 22:23:10 +08:00
- [x] [Shiro ](http://shiro.apache.org )
2017-12-15 22:49:11 +08:00
- 分布式Session
2017-12-29 22:23:10 +08:00
- [x] [Shiro+LCache ](https://github.com/nutzam/nutzmore/tree/master/nutz-plugins-cache )基于shiro/jedis/插件的分布式可持久化的session缓存
2017-12-15 22:49:11 +08:00
- 计划任务
2017-12-29 22:23:10 +08:00
- [x] [Quartz ](http://www.quartz-scheduler.org )
2018-01-03 15:16:16 +08:00
- [x] xxl-job [国产分布式任务调度平台 ](https://github.com/xuxueli/xxl-job/pull/253 )
2017-12-15 22:49:11 +08:00
- 模板引擎
2017-12-29 22:23:10 +08:00
- [x] [Beetl ](http://ibeetl.com/ )
- [x] [jetbrick-template ](https://github.com/subchen/jetbrick-template-2x )
- [x] Velocity by [haoqoo ](https://github.com/haoqoo )
- [x] Thymeleaf by [温泉 ](https://github.com/ywjno )
2018-01-01 22:42:45 +08:00
- [ ] FreeMarker
2017-12-15 22:49:11 +08:00
- 消息队列
2017-12-29 22:23:10 +08:00
- [x] disque redis作者的另一作品
2018-01-09 11:31:13 +08:00
- [x] rabbitmq
2017-12-29 22:23:10 +08:00
- [ ] rocketmq
- [ ] activemq
2017-12-15 22:49:11 +08:00
- 工作流
2017-12-29 22:23:10 +08:00
- [x] [uflo2 ](https://github.com/youseries/uflo ) 中式工作流引擎
2018-01-09 15:41:12 +08:00
- [x] [activiti ](https://www.activiti.org/ )
2017-12-15 22:49:11 +08:00
- 规则引擎
2017-12-29 22:23:10 +08:00
- [x] [urule ](https://github.com/youseries/urule ) 中式规则引擎
- [ ] drools
2017-12-15 22:49:11 +08:00
- 报表系统
2017-12-29 22:23:10 +08:00
- [x] ureport 中式报表
- [ ] jreport
2017-12-15 22:49:11 +08:00
- 开放平台
2017-12-29 22:23:10 +08:00
- 微信公众号开放平台
- [x] [NutzWX ](https://github.com/nutzam/nutzwx ) Weixin Api By Nutz
- [ ] [weixin-java-tools ](https://gitee.com/binary/weixin-java-tools )
2017-12-15 22:49:11 +08:00
- 云平台
2017-12-29 22:23:10 +08:00
- [ ] [阿里云 ](https://aliyun.com )
- [ ] [腾讯云 ](https://qcloud.com )
2017-12-15 22:49:11 +08:00
- 缓存相关
2017-12-30 19:45:18 +08:00
- [x] wkcache 方法缓存 by [大鲨鱼 ](https://github.com/Wizzercn )
- [x] [caffeine ](https://github.com/ben-manes/caffeine ) 方法缓存 by [幸福的旁边 ](https://github.com/happyday517 )
2018-01-09 20:51:33 +08:00
- API文档生成器
- [x] [swagger ](https://swagger.io ) Most Popular API Framework
2017-12-15 22:49:11 +08:00
- docker相关
2017-12-29 22:23:10 +08:00
- [ ] docker compose配置
2017-12-15 22:49:11 +08:00
- WebService
2017-12-29 22:23:10 +08:00
- [x] CXF
2018-01-05 22:23:02 +08:00
- 其他
- [x] Ngrok 内网穿透,轻松获取外网地址
2017-11-22 00:18:12 +08:00
## 第三方starter或项目
期待您的到来,报个issue告知一下吧 ^_^
## 授权协议
2017-12-06 17:29:21 +08:00
与Nutz一样, NutzBoot遵循[Apache协议](LICENSE),完全开源,文档齐全,永远免费(商用也是)