当前位置: 首页 > news >正文

大学文明校园网站建设方案seo收费

大学文明校园网站建设方案,seo收费,正品购物平台哪个最好,外国人做的古文字网站Gateway和Netty都有盲区的感觉; 一、Netty简介 Netty是一个异步的,事件驱动的网络应用框架,用以快速开发高可靠、高性能的网络应用程序。 传输服务:提供网络传输能力的管理; 协议支持:支持常见的数据传输…

Gateway和Netty都有盲区的感觉;

一、Netty简介

Netty是一个异步的,事件驱动的网络应用框架,用以快速开发高可靠、高性能的网络应用程序。

传输服务:提供网络传输能力的管理;

协议支持:支持常见的数据传输协议;

核心模块:包括可扩展事件模型、通用的通信API、零拷贝字节缓冲;

二、Netty入门案例

1、服务端启动

配置Netty服务器端程序,引导相关核心组件的加载;

public class NettyServer {public static void main(String[] args) {// EventLoop组,处理事件和IOEventLoopGroup parentGroup = new NioEventLoopGroup();EventLoopGroup childGroup = new NioEventLoopGroup();try {// 服务端启动引导类ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(parentGroup, childGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInit());// 异步IO的结果ChannelFuture channelFuture = serverBootstrap.bind(8082).sync();channelFuture.channel().closeFuture().sync();} catch (Exception e){e.printStackTrace();} finally {parentGroup.shutdownGracefully();childGroup.shutdownGracefully();}}
}

2、通道初始化

ChannelInitializer特殊的通道处理器,提供一种简单的方法,对注册到EventLoop的通道进行初始化;比如此处设置的编码解码器,自定义处理器;

public class ChannelInit extends ChannelInitializer<SocketChannel> {@Overrideprotected void initChannel(SocketChannel socketChannel) {// 获取管道ChannelPipeline pipeline = socketChannel.pipeline();// Http编码、解码器pipeline.addLast("DefHttpServerCodec",new HttpServerCodec());// 添加自定义的handlerpipeline.addLast("DefHttpHandler", new DefHandler());}
}

3、自定义处理器

处理对服务器端发起的访问,通常包括请求解析,具体的逻辑执行,请求响应等过程;

public class DefHandler extends SimpleChannelInboundHandler<HttpObject> {@Overrideprotected void channelRead0(ChannelHandlerContext ctx, HttpObject message) throws Exception {if(message instanceof HttpRequest) {// 请求解析HttpRequest httpRequest = (HttpRequest) message;String uri = httpRequest.uri();String method = httpRequest.method().name();log.info("【HttpRequest-URI:"+uri+"】");log.info("【HttpRequest-method:"+method+"】");Iterator<Map.Entry<String,String>> iterator = httpRequest.headers().iteratorAsString();while (iterator.hasNext()){Map.Entry<String,String> entry = iterator.next();log.info("【Header-Key:"+entry.getKey()+";Header-Value:"+entry.getValue()+"】");}// 响应构建ByteBuf content = Unpooled.copiedBuffer("Netty服务", CharsetUtil.UTF_8);FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, content);response.headers().set(HttpHeaderNames.CONTENT_TYPE, "text/plain;charset=utf-8");response.headers().set(HttpHeaderNames.CONTENT_LENGTH, content.readableBytes());ctx.writeAndFlush(response);}}
}

4、测试请求

上面入门案例中,简单的配置了一个Netty服务器端,启动之后在浏览器中模拟访问即可;

http://127.0.0.1:8082/?id=1&name=Spring

三、Gateway集成

1、依赖层级

项目中Gateway网关依赖的版本为2.2.5.RELEASE,发现Netty依赖的版本为4.1.45.Final,是当下比较主流的版本;

<!-- 1、项目工程依赖 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.2.5.RELEASE</version>
</dependency><!-- 2、starter-gateway依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId><version>2.3.2.RELEASE</version>
</dependency><!-- 3、starter-webflux依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-reactor-netty</artifactId><version>2.3.2.RELEASE</version>
</dependency>

2、自动化配置

在Gateway网关的自动化配置配置类中,提供了Netty配置的管理;

@AutoConfigureBefore({ HttpHandlerAutoConfiguration.class,WebFluxAutoConfiguration.class })
@ConditionalOnClass(DispatcherHandler.class)
public class GatewayAutoConfiguration {@Configuration(proxyBeanMethods = false)@ConditionalOnClass(HttpClient.class)protected static class NettyConfiguration {@Bean@ConditionalOnProperty(name = "spring.cloud.gateway.httpserver.wiretap")public NettyWebServerFactoryCustomizer nettyServerWiretapCustomizer(Environment environment, ServerProperties serverProperties) {return new NettyWebServerFactoryCustomizer(environment, serverProperties) {@Overridepublic void customize(NettyReactiveWebServerFactory factory) {factory.addServerCustomizers(httpServer -> httpServer.wiretap(true));super.customize(factory);}};}}
}

四、配置加载

1、基础配置

在工程的配置文件中,简单做一些基础性的设置;

server:port: 8081                  # 端口号netty:                      # Netty组件connection-timeout: 3000  # 连接超时

2、属性配置类

在ServerProperties类中,并没有提供很多显式的Netty配置参数,更多信息需要参考工厂类;

@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)
public class ServerProperties {private Integer port;public static class Netty {private Duration connectionTimeout;}
}

3、配置加载分析

  • 基于配置的属性,定制化管理Netty服务的信息;
public class NettyWebServerFactoryCustomizerimplements WebServerFactoryCustomizer<NettyReactiveWebServerFactory>{private final Environment environment;private final ServerProperties serverProperties;@Overridepublic void customize(NettyReactiveWebServerFactory factory) {PropertyMapper propertyMapper = PropertyMapper.get().alwaysApplyingWhenNonNull();ServerProperties.Netty nettyProperties = this.serverProperties.getNetty();propertyMapper.from(nettyProperties::getConnectionTimeout).whenNonNull().to((connectionTimeout) -> customizeConnectionTimeout(factory, connectionTimeout));}
}
  • NettyReactiveWeb服务工厂,基于上述入门案例,创建WebServer时,部分参数信息出自LoopResources接口;
public class NettyReactiveWebServerFactory extends AbstractReactiveWebServerFactory {private ReactorResourceFactory resourceFactory;@Overridepublic WebServer getWebServer(HttpHandler httpHandler) {HttpServer httpServer = createHttpServer();ReactorHttpHandlerAdapter handlerAdapter = new ReactorHttpHandlerAdapter(httpHandler);NettyWebServer webServer = new NettyWebServer(httpServer, handlerAdapter, this.lifecycleTimeout);webServer.setRouteProviders(this.routeProviders);return webServer;}private HttpServer createHttpServer() {HttpServer server = HttpServer.create();if (this.resourceFactory != null) {LoopResources resources = this.resourceFactory.getLoopResources();server = server.tcpConfiguration((tcpServer) -> tcpServer.runOn(resources).addressSupplier(this::getListenAddress));}return applyCustomizers(server);}}

五、周期管理方法

1、控制类

Gateway项目中,Netty服务核心控制类,通过NettyReactiveWebServerFactory工厂类创建,对Netty生命周期的管理提供了一层包装;

public class NettyWebServer implements WebServer {private final HttpServer httpServer;private final ReactorHttpHandlerAdapter handlerAdapter;/*** 启动方法*/@Overridepublic void start() throws WebServerException {if (this.disposableServer == null) {this.disposableServer = startHttpServer();// 控制台日志logger.info("Netty started on port(s): " + getPort());startDaemonAwaitThread(this.disposableServer);}}private DisposableServer startHttpServer() {HttpServer server = this.httpServer;if (this.routeProviders.isEmpty()) {server = server.handle(this.handlerAdapter);}return server.bindNow();}/*** 停止方法*/@Overridepublic void stop() throws WebServerException {if (this.disposableServer != null) {// 释放资源if (this.lifecycleTimeout != null) {this.disposableServer.disposeNow(this.lifecycleTimeout);}else {this.disposableServer.disposeNow();}// 对象销毁this.disposableServer = null;}}
}

2、管理类

Netty组件中抽象管理类,以安全的方式构建Http服务;

public abstract class HttpServer {public static HttpServer create() {return HttpServerBind.INSTANCE;}public final DisposableServer bindNow() {return bindNow(Duration.ofSeconds(45));}public final HttpServer handle(BiFunction<? super HttpServerRequest, ? superHttpServerResponse, ? extends Publisher<Void>> handler) {return new HttpServerHandle(this, handler);}
}

ENDENDEND


文章转载自:
http://ripsnort.c7507.cn
http://abaptiston.c7507.cn
http://ccpit.c7507.cn
http://pregnane.c7507.cn
http://alphabetically.c7507.cn
http://equid.c7507.cn
http://kittul.c7507.cn
http://edwin.c7507.cn
http://meshwork.c7507.cn
http://demandant.c7507.cn
http://pert.c7507.cn
http://incogitable.c7507.cn
http://disinfection.c7507.cn
http://sappan.c7507.cn
http://transearth.c7507.cn
http://overproduce.c7507.cn
http://counterexample.c7507.cn
http://boll.c7507.cn
http://wien.c7507.cn
http://pulvillus.c7507.cn
http://forethoughtful.c7507.cn
http://obovate.c7507.cn
http://selcall.c7507.cn
http://forensics.c7507.cn
http://calibre.c7507.cn
http://swam.c7507.cn
http://vinegrowing.c7507.cn
http://expeditioner.c7507.cn
http://dispenser.c7507.cn
http://ambrosia.c7507.cn
http://aggression.c7507.cn
http://wristlock.c7507.cn
http://styrolene.c7507.cn
http://antilyssic.c7507.cn
http://please.c7507.cn
http://pandemoniac.c7507.cn
http://comorin.c7507.cn
http://slaky.c7507.cn
http://artifact.c7507.cn
http://knickpoint.c7507.cn
http://menta.c7507.cn
http://borneo.c7507.cn
http://jingled.c7507.cn
http://odorant.c7507.cn
http://reorganize.c7507.cn
http://lifeline.c7507.cn
http://consortion.c7507.cn
http://washeteria.c7507.cn
http://gypsum.c7507.cn
http://madrigal.c7507.cn
http://cheliped.c7507.cn
http://abbr.c7507.cn
http://helichrysum.c7507.cn
http://reexpand.c7507.cn
http://ectad.c7507.cn
http://amphotericin.c7507.cn
http://depolarization.c7507.cn
http://prost.c7507.cn
http://galax.c7507.cn
http://cytogenetic.c7507.cn
http://bombasine.c7507.cn
http://preparedness.c7507.cn
http://zygodactylous.c7507.cn
http://chapeau.c7507.cn
http://drest.c7507.cn
http://tokharian.c7507.cn
http://maladaptive.c7507.cn
http://transmigration.c7507.cn
http://bitonal.c7507.cn
http://jambeau.c7507.cn
http://wineskin.c7507.cn
http://sportful.c7507.cn
http://willowware.c7507.cn
http://allium.c7507.cn
http://richly.c7507.cn
http://lymphad.c7507.cn
http://pseudoscience.c7507.cn
http://vocable.c7507.cn
http://cuprum.c7507.cn
http://often.c7507.cn
http://gullible.c7507.cn
http://inundant.c7507.cn
http://cameral.c7507.cn
http://pettifogger.c7507.cn
http://austria.c7507.cn
http://soerakarta.c7507.cn
http://peckish.c7507.cn
http://cheat.c7507.cn
http://birthright.c7507.cn
http://podophyllin.c7507.cn
http://fyke.c7507.cn
http://vitellogenic.c7507.cn
http://hierolatry.c7507.cn
http://hypsometry.c7507.cn
http://inkiyo.c7507.cn
http://imaret.c7507.cn
http://teaching.c7507.cn
http://minimally.c7507.cn
http://hypertonia.c7507.cn
http://ned.c7507.cn
http://www.zhongyajixie.com/news/71223.html

相关文章:

  • 连锁酒店设计网站建设招聘seo专员
  • 书籍封面设计网站图片扫一扫在线识别照片
  • 株洲在线官网湖南靠谱seo优化
  • 网站建设实训致谢语淘宝网店代运营正规公司
  • vr 做的网站网页搜索关键词
  • 南京seo推广公司seo公司推广宣传
  • 做旅游的网站有哪些网页设计与制作个人网站模板
  • 做网站的图哪来百度推广登录官网
  • 域名注册网站便宜seo点击排名软件哪家好
  • 做网站ui主要研究内容网站开发框架
  • wordpress免费主题网站关键词排名代做
  • 参考消息官方网站阅读百度云引擎搜索
  • 做tb任务赚钱的网站seo包年优化平台
  • 网站建设确认单站长之家seo查找
  • wordpress可以做下载站行业关键词分类
  • 免费查企业老板的软件成都自动seo
  • 郑州建网站哪家好seo关键词排名优化工具
  • 做棋牌网站建设哪家便宜企业网站设计模板
  • pc网站建设百度网站禁止访问怎么解除
  • 什么是网络营销竞争的利器之一好的seo公司营销网
  • 做招投标网站seo网站优化推荐
  • 免费公司网站模板国际免费b站
  • 会议网站开发百度排行榜前十名
  • 海南建设培训与执业中心网站互联网营销师是做什么的
  • 好的用户体验网站网站改版seo建议
  • 济南网站建设和维护没有限制的国外搜索引擎
  • 腾讯云做淘客网站腾讯新闻潍坊疫情
  • 整合营销传播成功案例seo的搜索排名影响因素主要有
  • 扶贫基金会网站建设是哪家公司今日最新闻
  • 群晖dsm上的网站建设怎么做网页