nutzboot/README.md

247 lines
11 KiB
Markdown
Raw Normal View History

2017-12-15 23:15:36 +08:00
# NutzBoot 微服务
2018-01-02 13:19:40 +08:00
NutzBoot,简称NB,是可靠的企业级微服务框架,提供自动配置,嵌入式web服务,分布式会话,hystrix, RPC等一篮子解决方案
2017-11-22 11:23:59 +08:00
* 主页: [NB的官网](https://nutz.io)
2018-02-11 00:23:51 +08:00
* 项目生成器: [NB Maker](https://get.nutz.io)
2017-11-22 11:23:59 +08:00
* 版本历史: [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)
2018-01-12 22:33:56 +08:00
* 社区: [NutzCN](https://nutz.cn) 推荐
* QQ群: 68428921
2017-11-13 11:22:41 +08:00
[![Build Status](https://travis-ci.org/nutzam/nutzboot.png?branch=dev)](https://travis-ci.org/nutzam/nutzboot)
[![CircleCI](https://circleci.com/gh/nutzam/nutzboot/tree/dev.svg?style=svg)](https://circleci.com/gh/nutzam/nutzboot/tree/dev)
[![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%以上常见需求的默认配置,无需过多的自定义
* 以开放的心态与国内开源团体合作,优先集成国产项目
* 活跃的社区及稳健的发布周期,推进项目一直前进
* 默认使用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 {
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的测试 by wendal
* [urls](https://gitee.com/howe/urls) Java版短地址服务 by howe
* [LuliChat](https://github.com/TopCoderMyDream/LuliChat/tree/nutzboot) 一个Nutz为后台支撑,T-io为通讯支持,LayIM为前台UI交互的纯国产框架开发的一个即时通讯项目 by 蛋蛋
2017-12-15 22:49:11 +08:00
## Contributors
* [蛋蛋](https://github.com/TopCoderMyDream)(提交了第一个Banner及打印逻辑)及starter-tio和starter-j2cache
2017-12-15 22:49:11 +08:00
* [胖五](https://github.com/pangwu86)(nutz.io主笔)
* [qinerg](https://github.com/qinerg)(率先提交undertow)
* [benjobs](https://github.com/wolfboys)(提交了tomcat)
* [温泉](https://github.com/ywjno)(提交thymeleaf和eureka静态status页面)
2017-12-15 22:49:11 +08:00
* [科技](https://github.com/Rekoe)(探路者,正在踩坑,正在做后台模板)
* [潇潇](https://github.com/howe)(探路者,生产环境填坑中)
* [道坤](https://github.com/albinhdk)(探路者,提交ssdb)
* [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家三剑客的坑)
* [幸福的旁边](https://github.com/happyday517)(提交caffeine方法缓存)
2018-01-13 23:16:22 +08:00
* [文涛](https://github.com/swtseaman) (新增支持加载外部配置文件)
* [zjSniper](https://gitee.com/zjSniper) (优化starter-tio的逻辑)
2018-02-08 18:08:24 +08:00
* [tasdingoo](https://github.com/tasdingoo)(issue@github 122)
2018-03-13 11:09:53 +08:00
* [csl_slchia](https://gitee.com/csl_slchia)(issue@gitee II92L)
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)
* [转换为NB项目](doc/convert2nb.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
2018-01-12 23:28:19 +08:00
期待您的加入, 下述 by `xxx` 为通常是集成该功能的首次提交者,不一定对应软件的作者
2017-12-15 22:49:11 +08:00
- 基础框架
2017-12-29 22:23:10 +08:00
- [x] 基础框架的文档
2018-01-12 23:28:19 +08:00
- [x] starter-core 核心框架的实现
- 嵌入式web容器
2018-01-12 23:28:19 +08:00
- [x] starter-[jetty](https://www.eclipse.org/jetty/)
- [x] starter-[undertow](http://undertow.io/) by [@qinerg](https://github.com/qinerg)
- [x] starter-[tomcat](http://tomcat.apache.org/) by [@benjobs](https://github.com/wolfboys)
- 分布式组件
- RPC(Remote Procedure Call)
2018-01-12 23:28:19 +08:00
- [x] starter-[dubbo](http://dubbo.io/) 阿里出品的高性能RPC平台
- [x] starter-[zbus](http://zbus.io) 国产知名RPC平台
- [x] starter-[feign](https://github.com/OpenFeign/feign) makes writing java http clients easier, by [haoqoo](https://github.com/haoqoo) and [wendal](https://github.com/wendal)
- [x] [ribbon](https://github.com/Netflix/ribbon) ,集成在feign中,配合erueka-client实现负载均衡
- [x] starter-zkclient zookeeper的封装
- [x] starter-[hystrix](https://github.com/Netflix/Hystrix) 熔断器及其dashboard
2018-01-12 23:28:19 +08:00
- [x] starter-[eureka-server](https://github.com/Netflix/eureka) 服务治理的服务器端
- [x] starter-[eureka-client](https://github.com/Netflix/eureka) 服务治理的客户端
2018-01-14 21:08:05 +08:00
- 配置中心
- [ ] NB Config Server 配置中心的服务端
- [x] starter-config-client NB Config Client 配置中心的客户端
- [x] starter-[apollo-client](https://github.com/ctripcorp/apollo) 携程框架部门研发的分布式配置中心的客户端
2018-01-14 21:08:05 +08:00
- API网关
- [ ] NB API网关
- [ ] zuul
2017-12-15 22:49:11 +08:00
- 数据库类相关
2017-12-29 22:23:10 +08:00
- 关系型数据库
2018-01-11 16:40:21 +08:00
- 数据源
2018-01-12 23:28:19 +08:00
- [x] starter-jdbc, 普通连接池,默认使用druid,带监控功能
- [x] starter-[sharding-jdbc](https://github.com/shardingjdbc/sharding-jdbc) 分库分表
2018-01-11 16:40:21 +08:00
- ORM
2018-01-12 23:28:19 +08:00
- [x] starter-[nutz-dao](https://github.com/nutzam/nutz)
- [x] starter-[beetlsql](http://ibeetl.com/guide/#beetlsql) 基于Beetl的SQL框架
2017-12-29 22:23:10 +08:00
- 非关系型数据库
2018-01-12 23:28:19 +08:00
- [x] starter-[redis](https://redis.io) 特点就是快,吃内存!
- [x] starter-mongodb NoSQL的重要一支
- [x] starter-ssdb by [道坤](https://github.com/albinhdk
2017-12-29 22:23:10 +08:00
- [ ] memcached
2017-12-15 22:49:11 +08:00
- Mvc
2018-01-12 23:28:19 +08:00
- [x] starter-nutz-mvc Nutz自带的Mvc框架
2018-02-06 12:29:11 +08:00
- [x] starter-[tio-mvc](https://gitee.com/tywo45/t-io) 基于tio的Mvc框架
2017-12-29 22:23:10 +08:00
- [ ] [jersey](https://jersey.github.io/)
- 非servlet容器
2018-02-06 12:29:11 +08:00
- [x] starter-[tio](https://gitee.com/tywo45/t-io) 国产高性能网络开发包 by [蛋蛋](https://github.com/TopCoderMyDream)
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
- 计划任务
2018-01-12 23:28:19 +08:00
- [x] starter-[quartz](http://www.quartz-scheduler.org)
- [x] starter-xxl-job [国产分布式任务调度平台](https://github.com/xuxueli/xxl-job/pull/253)
2017-12-15 22:49:11 +08:00
- 模板引擎
2018-01-12 23:28:19 +08:00
- [x] starter-[beetl](http://ibeetl.com/)
- [x] starter-jetx [jetbrick-template](https://github.com/subchen/jetbrick-template-2x)
- [x] starter-velocity by [haoqoo](https://github.com/haoqoo)
- [x] starter-thymeleaf by [温泉](https://github.com/ywjno)
- [x] starter-freemarker by [蛋蛋](https://github.com/TopCoderMyDream)
2017-12-15 22:49:11 +08:00
- 消息队列
2018-01-12 23:28:19 +08:00
- [x] starter-disque redis作者的另一作品
- [x] starter-rabbitmq
2017-12-29 22:23:10 +08:00
- [ ] rocketmq
- [ ] activemq
2017-12-15 22:49:11 +08:00
- 工作流
2018-01-12 23:28:19 +08:00
- [x] starter-[uflo](https://github.com/youseries/uflo) 中式工作流引擎
- [x] starter-[activiti](https://www.activiti.org/)
2017-12-15 22:49:11 +08:00
- 规则引擎
2018-01-12 23:28:19 +08:00
- [x] starter-[urule](https://github.com/youseries/urule) 中式规则引擎
2017-12-29 22:23:10 +08:00
- [ ] drools
2017-12-15 22:49:11 +08:00
- 报表系统
2018-01-12 23:28:19 +08:00
- [x] starter-ureport 中式报表
2017-12-29 22:23:10 +08:00
- [ ] jreport
2017-12-15 22:49:11 +08:00
- 开放平台
2017-12-29 22:23:10 +08:00
- 微信公众号开放平台
2018-01-12 23:28:19 +08:00
- [x] starter-[nutzwx](https://github.com/nutzam/nutzwx) Weixin Api By Nutz
2017-12-29 22:23:10 +08:00
- [ ] [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
- 缓存相关
2018-03-22 12:11:39 +08:00
- [x] starter-[wkcache](https://github.com/nutzam/nutzmore/tree/master/nutz-plugins-wkcache) 方法缓存 by [大鲨鱼](https://github.com/Wizzercn)
2018-01-12 23:28:19 +08:00
- [x] starter-[caffeine](https://github.com/ben-manes/caffeine) 方法缓存 by [幸福的旁边](https://github.com/happyday517)
- [x] starter-j2cache 开源中国缓存框架 by [蛋蛋的忧伤](https://github.com/TopCoderMyDream)
- API文档生成器
2018-01-12 23:28:19 +08:00
- [x] starter-[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配置
2018-01-12 23:28:19 +08:00
- [ ] docker file
2017-12-15 22:49:11 +08:00
- WebService
2018-01-12 23:28:19 +08:00
- [x] starter-cxf WebService的事实标准
2018-02-25 00:10:28 +08:00
- 区块链
- [x] starter-[web3j](https://github.com/web3j/web3j) 以太坊轻量级客户端API
- 其他
2018-01-12 23:28:19 +08:00
- [x] starter-ngrok-client 内网穿透,轻松获取外网地址
## 第三方starter或项目
期待您的到来,报个issue告知一下吧 ^_^
2018-02-03 10:59:39 +08:00
## 公共服务
* Eureka注册服务
* 供测试用,请勿进行压力测试
* 根地址 http://eureka.nutz.cn/eureka
* 状态地址 http://eureka.nutz.cn/eureka/status
* 客户端注册地址 http://eureka.nutz.cn/eureka/v2
* Ngrok内网穿透服务:
2018-02-22 11:41:53 +08:00
* 访问 https://nutz.cn 并登录, 看个人主页,获取token
* 外网ip探查服务
* 浏览器访问 http://ip.nutz.cn/ 可看网页版帮助
* 在服务器执行 `curl ip.nutz.cn` 可返回当前服务器的外网信息
2018-02-03 10:59:39 +08:00
## 授权协议
2017-12-06 17:29:21 +08:00
与Nutz一样, NutzBoot遵循[Apache协议](LICENSE),完全开源,文档齐全,永远免费(商用也是)