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

2024-01-08 01:20

本文主要是介绍OpenSource - 基于Netty的网络扩展库HServer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 概述
  • 官网
  • Hserver的理念
  • 特点
  • 原理图
  • 代码案例
  • HelloWorld

在这里插入图片描述


概述

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端口即可

在这里插入图片描述

这篇关于OpenSource - 基于Netty的网络扩展库HServer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/581872

相关文章

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义