OpenSource - 基于Netty的网络扩展库HServer

在这里插入图片描述


概述

HServer是一个基于Netty开发网络扩展库.使用插件方式来扩展我们的业务 HServer提供 web,gateway,rpc 等插件 同时用户也可以自定义插件,来完成各种各样的业务场景。

在这里插入图片描述


官网

https://gitee.com/HServer/HServer

https://doc.hserver.top/#/

https://gitee.com/HServer

在这里插入图片描述


Hserver的理念

  • 极简、高性能、扩展强

  • 极简 代码只有几百KB

  • 高性能 使用Netty网络库作为核心,比起传统的web容器性能高数十倍.

  • 扩展强 预留了丰富的接口,以及netty直接自定义协议


特点

  • 简便易用5分钟即可掌握使用
  • 快速构建高效API
  • TCP层上直接构建
  • Restful风格路由设计
  • Cron定时器
  • Filter拦截器
  • 持久Queue队列
  • HOOK/AOP组件
  • Track链路跟踪组件
  • Web Socket功能
  • Mqtt WebSocketMqtt功能
  • 自定义协议
  • Proxy 自由处理
  • ApiDoc文档组件
  • 权限组件
  • Plugin组件自由扩展
  • HUM消息
  • 高性能
  • 高度自由度控制
  • 流量整形
  • Netty 原生响应支持自己扩展

原理图

在这里插入图片描述


代码案例

在这里插入图片描述


HelloWorld

在这里插入图片描述

建立一个maven项目,导入依赖


<parent>
    <artifactId>hserver-parent</artifactId>
    <groupId>cn.hserver</groupId>
    <version>最新版本</version>
</parent>

<dependencies>
<!--    核心依赖-->
    <dependency>
        <artifactId>hserver</artifactId>
        <groupId>cn.hserver</groupId>
    </dependency>
<!--    web框架 -->
    <dependency>
        <artifactId>hserver-plugin-web</artifactId>
        <groupId>cn.hserver</groupId>
    </dependency>
</dependencies>
<!--    打包jar -->
<build>
    <plugins>
        <plugin>
            <artifactId>hserver-plugin-maven</artifactId>
            <groupId>cn.hserver</groupId>
        </plugin>
    </plugins>
</build>

建立一个主函数

建立一个java包,如 com.test , 建立一个主函数


@HServerBoot
public class WebApp {
   
    public static void main(String[] args) {
   
        HServerApplication.run(WebApp.class, 8888, args);
    }
}

建立一个控制器


@Controller
public class HelloController {
   

    @GET("/test1")
    public JsonResult test() {
   
        return JsonResult.ok();
    }

    @POST("/test2")
    public JsonResult b(HttpRequest request) {
   
        return JsonResult.ok().put("data", request.getRequestParams());
    }

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public JsonResult get() {
   
        return JsonResult.ok();
    }

    @RequestMapping(value = "/post", method = RequestMethod.POST)
    public JsonResult post(HttpRequest httpRequest) {
   
        return JsonResult.ok().put("data", httpRequest.getRequestParams());
    }

    /**
     * 模板测试
     * @param httpResponse
     */
    @GET("/template")
    public void template(HttpResponse httpResponse) {
   
        User user = new User();
        user.setAge(20);
        user.setName("xx");
        user.setSex("男");
        Map<String, Object> obj = new HashMap<>();
        obj.put("user", user);
//        httpResponse.sendTemplate("/admin/user/list.ftl", obj);
        httpResponse.sendTemplate("a.ftl", obj);
    }
}

运行主函数,访问8888端口即可

在这里插入图片描述

相关推荐

  1. 基于Nettywebsocket简单介绍

    2024-01-08 07:22:01       13 阅读
  2. Netty网络应用框架

    2024-01-08 07:22:01       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-08 07:22:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-08 07:22:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-08 07:22:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-08 07:22:01       20 阅读

热门阅读

  1. SpringBoot-Dubbo-Zookeeper

    2024-01-08 07:22:01       40 阅读
  2. Python代码篇-小白必会(猜数字游戏)

    2024-01-08 07:22:01       37 阅读
  3. php加减乘除函数

    2024-01-08 07:22:01       46 阅读
  4. php将文本内容写入一个文件(面向过程写法)

    2024-01-08 07:22:01       39 阅读
  5. 03 详细的Git命令使用大全

    2024-01-08 07:22:01       36 阅读
  6. 利用Podman构建基于Fission env/builder的镜像

    2024-01-08 07:22:01       72 阅读
  7. 【2023年度总结】蜕变与挑战

    2024-01-08 07:22:01       139 阅读
  8. vue3学习记录

    2024-01-08 07:22:01       34 阅读
  9. Django5+DRF序列化

    2024-01-08 07:22:01       36 阅读