Cloudopt Next 更新至 2.0.8.0-BETA

2020年08月03日

Cloudopt Next 是一个非常轻量级且现代的、基于 Kotlin 编写的全栈开发框架,同时支持 Java 和 Kotlin,您可以处理Url的解析,数据的封装,Json的输出等等,从根本上减少开发时间、提升开发体验。

官网: https://next.cloudopt.net

Cloudopt Next 主要拥有以下特点:

简单 极简设计,几乎不要任何配置,不依赖 Tomcat、Jetty 等 Web 容器。

异步 基于 vertx 轻松实现高性能的异步服务。

扩展 支持 vertx 体系的各种组件,同时支持通过插件扩展功能,官方也提供了大量好用的插件。

中文 全中文文档、中文社区,帮助中文开发者快速上手。

 

性能

测试电脑的 CPU 是 2.2 GHz 六核 Intel Core i7,内存为 16 GB 2400 MHz DDR4。

 

吞吐量参数为用户数 10,循环 10000 次。

框架名称 吞吐量
Cloudopt Next 20267.5/sec
Spring Boot 10698.2/sec
Flask 440.8/sec

根据性能测试结果:Cloudopt Next 的性能是 Flask 的 50 倍,是 Spring Boot 的两倍。

 

示例

您可以通过访问Cloudopt Next的官网来查看文档,也可以前往Example查看简单的示例。

 

路由

让我们来看看一个简单的基于Cloudopt Next的路由:

@API("/")
class IndexController : Resource() {
    @GET
    fun get(){
        renderHtml(view = "index")
    }
}
@API(value = "/")
public class IndexController extends Resource {

    @GET
    public void get(){
        View v = new View();
        v.setView("index");
        renderHtml(v);
    }
}

 

启动

fun main(args: Array<String>) {
    NextServer.run()
}
public static void main(String args[]) { 
    NextServer.run();
}

 

WebSocket

@WebSocket("/websocket")
class WebSocketController : WebSocketResource {
    override fun handler(userWebSocketConnection: ServerWebSocket) {
        println("Connected!")
        userWebSocketConnection.writeTextMessage("Hello World")
        userWebSocketConnection.frameHandler { frame ->
            println(frame.textData())
        }
    }
}

SockJS

@SocketJS("/socket/api/*")
class SocketController : SocketJSResource {
    override fun handler(userSocketConnection: SockJSSocket) {
        println(userSocketConnection)
        userSocketConnection.handler {message->
            println(message)
            userSocketConnection.write("Hello world!")
        }
    }
}

 

插件

fun main(args: Array<String>) {
    NextServer.addPlugin(TestPlugin())
    NextServer.addPlugin(EventPlugin())
    NextServer.run()
}

 

2.0.8.0-BETA

  • EventBus 支持 map 类型和 fastjson 的常用对象。
  • 修复在读取配置文件 json 对象时,如果取空值会引发报错的问题。
  • 获取配置时会去读取配置文件的 json 对象,现在在获取类似 "net.cloudopt.next" 这种多级别的值的之前会将配置文件的 json 对象新生成一份再读取。
  • 重命名 NextServer 的 controllers 对象为 resourceTables。
  • 优化 Handler 的生命周期,现在执行 afterCompletion 会一定在请求结束后执行,之前在请求时间较长时可能会出现事件丢失的问题。
  • 优化了 Handler 的生命周期后,现在错误拦截器也已经支持全局的 Handler。
  • 重构了 Handler 类,将其从抽象类改为接口,同时支持 afterRender(),支持在渲染后运行、支持通过返回的布尔值控制是否进行下一步还是直接返回数据。
  • 自带的 Handler 都已经对新的 Handler 接口进行了适配。
  • 现在如果 Handler 类中没有声明结束请求的话,Next 在执行相关方法时会自动关闭请求。
  • 升级 fastjson 的相关依赖。
  • 关闭 fastjson 的安全模式,使用白名单模式(目前已内置 Next 相关包名)。
  • 增加 cloudopt-next-cache 插件。
展开阅读全文
4 收藏
分享
加载中
最新评论 (6)
Vertx性能的确是超出springboot web 或者webflux 一大截。
2020-08-04 13:29
0
回复
举报
是的,但是 vertx 在使用起来不是特别方便,学习曲线比较高。利用 Next 可以极快速度进行开发,甚至不需要关心 vertx 的底层。
2020-08-04 14:47
0
回复
举报
看上去挺牛逼, 花了十几分钟看了下文档 像springboot, 区别在于 web client 是 vertx
2020-08-04 01:44
0
回复
举报
谢谢夸奖,跟 springboot 差别很大,虽然也是吸收了 springboot 的一些设计思想,但本质上又很大不同。
2020-08-04 10:26
0
回复
举报
这性能测试打了个hello world?
2020-08-03 20:30
0
回复
举报
我们测试过 json、text 等等。你也可以看下其它榜单,vertx 一直性能都很好。
2020-08-04 10:26
0
回复
举报
更多评论
6 评论
4 收藏
分享
在线直播报名
返回顶部
顶部