Magician 2.0.3 发布,支持监听多端口

Magician 大家可能比较陌生,在介绍本次更新前 先简单介绍一下吧:

Magician是一套web开发的工具集,开发者可以自由选择自己想用的工具,可以选择只用一个小型的http服务包开发一个微型服务,也可以搭配MVC 来实现一个常规的web服务,也可以只选择JDBC框架 对数据库进行操作,也可以全部一起用,实现一个完整的web服务,同时我们也会提供各种小型组件库,来方便开发者。

目前已经发布了三个包,分别是Magician,Magician-Web,Magician-JDBC,他们分别对应,小型http服务器,MVC框架,数据库操作框架。

本次更新的部分在于第一个包 - Magician (Magician既是这一套项目的名称,也是核心组件的名称):

Magician是一个基于Netty的小型HTTP服务包,可以很方便的启动一个HTTP服务,支持WebSocket,采用注解来配置Handler。

如果你想用netty开发一个http服务,但发现它很麻烦,那么Magician可能会帮到你。

本次更新的点

  1. 支持自定义配置
  2. 支持监听多端口
  3. 同一个项目中,可以多地使用

自定义配置

以前,我们启动一个Magician服务,只能用默认的配置,现在有这么几个配置项支持自定义了

MagicianConfig magicianConfig = new MagicianConfig();
magicianConfig.setNumberOfPorts(3); // 允许同时监听的端口数量,默认1个
magicianConfig.setBossThreads(1); // netty的boss线程数量 默认1个
magicianConfig.setWorkThreads(3); // netty的work线程数量 默认3个
magicianConfig.setNettyLogLevel(LogLevel.DEBUG); // netty的日志打印级别
magicianConfig.setMaxInitialLineLength(4096); // http解码器的构造参数1,默认4096 跟netty一样
magicianConfig.setMaxHeaderSize(8192); // http解码器的构造参数2,默认8192 跟netty一样
magicianConfig.setMaxChunkSize(8192); // http解码器的构造参数3,默认8192 跟netty一样

所有配置项都有默认值,所以在使用的时候 可以只选择自己需要更改的配置项进行设置,设置好了以后需要添加到HttpServer实例中

Magician.createHttp()
        .scan("com.test")// 扫描范围(包名)
        .setConfig(magicianConfig) // 添加配置
        .bind(8080);

监听多端口

很简单,只需要调用bind方法多次即可

HttpServer httpServer = Magician.createHttp()
        .scan("com.test")// 扫描范围(包名)
        .setConfig(magicianConfig); // 添加配置

httpServer.bind(8080);
httpServer.bind(8081); 
httpServer.bind(8082); 

同项目中,多地使用

有时候可能会遇到这种需求,我们需要一个主服务对外提供接口,但是还需要一个次服务,实现内部通信,这个时候可能就需要启动两个服务了。 在本次升级的时候,为了实现监听多端口,bind已经变成异步的方法了,在调用bind以后,不会阻塞,而是可以继续往下执行,所以这个需求得到了完美的解决, 有两个实现方案。

1. 监听两个端口,把对外和对内分开

2. 直接启动两个服务,把端口,配置,线程全都分开

第一种方法,不用多说,相信大家都知道怎么做了,咱们重点说说第二种方法,跟监听多端口差不多的思路,只不过变成了启动两个服务,比如:

启动一个对外服务

// 将8080端口做为对外的端口,并且scan只扫描对外的资源(接口,handler等)

HttpServer httpServer = Magician.createHttp()
        .scan("com.test")// 只扫描对外的资源
        .setConfig(magicianConfig); // 添加配置

httpServer.bind(8080);

启动一个对内服务

// 将8081端口做为对内的端口,并且scan只扫描对内的资源(接口,handler等)

HttpServer httpServer = Magician.createHttp()
        .scan("com.test")// 只扫描对内的资源
        .setConfig(magicianConfig); // 添加配置

httpServer.bind(8081);

想了解更多,可以访问官网

https://magician-io.com

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/201350/magician-2-0-3-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。