电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java游戲服務(wù)器系列之Netty相關(guān)知識總結(jié)

瀏覽:8日期:2022-08-11 18:55:21
目錄一、簡介二、Netty的應(yīng)用場景三、異步和事件驅(qū)動性四、Netty核心組件五、總結(jié)一、簡介

Java的底層API逐漸復(fù)雜,而開發(fā)者面對的開發(fā)場景需求也在逐漸增大。如果直接針對底層API進(jìn)行編程,無疑是耗時耗力的。這時就催生了極多的編程框架,這些框架隱藏了API實(shí)現(xiàn)的復(fù)雜細(xì)節(jié),以最簡潔的方式給開發(fā)人員提供功能的實(shí)現(xiàn)接口。Netty就是一款針對于網(wǎng)絡(luò)鏈接的框架,他的出現(xiàn)讓服務(wù)器開發(fā)人員更加的集中關(guān)注于更多邏輯的實(shí)現(xiàn),而不為了實(shí)現(xiàn)更好更多更穩(wěn)定的鏈接而頭疼。Netty的核心功能基于NIO 實(shí)現(xiàn)。

二、Netty的應(yīng)用場景

幾乎適用于所有的長短鏈接場景,由于Java應(yīng)用的廣泛性,幾乎所有的互聯(lián)網(wǎng)公司或多或少的都會使用到。博主從事游戲開發(fā),可以說幾乎所有短鏈接游戲服務(wù)器都是使用Netty開發(fā),實(shí)效性要求比較高也有熱修復(fù)需求的服務(wù)器一般不會使用Java,目前采用更多的是C+Lua的組合方式。Java不可以熱修復(fù)是很多長鏈服務(wù)器不考慮java 的一個重要原因。

三、異步和事件驅(qū)動性

NIO 文章中強(qiáng)調(diào)了,這種模型的主要特地拿就是異步和事件驅(qū)動性,異步是服務(wù)器不需要一直等待鏈接輸入直到鏈接關(guān)閉。而是可以在某個特定的時候去相應(yīng)鏈接的輸入,而特定的時候就是另一個事件驅(qū)動性,鏈接發(fā)生變化時,會產(chǎn)生一個事件,而NIO模型檢測到這個事件之后,會去相應(yīng)這個事件的處理事件。

四、Netty核心組件

1.Channel:

Channel時Java-NIO的一個基本構(gòu)造,它代表到一個實(shí)體的開放鏈接,如讀操作和寫操作,在NIO模型中也可以被理解成一個入站或者出站的數(shù)據(jù)載體,可以被關(guān)閉或者關(guān)閉。

2.回調(diào) ChannelHandler:

一個回調(diào)就是一個方法,Netty提供了兩個子類,ChannelInboundHandlerAdapter 以及 ChannelOutboundHandlerAdapter ,這兩個子類分別可以應(yīng)用于數(shù)據(jù)進(jìn)站和出站時期,各種階段的回調(diào),比如入站時Active方法,表明鏈接剛剛被建立起,代碼如下:

public class ConnectHandler extend ChannelInboundHandlerAdapter{@overridepublic void ChannelActive(ChannelHandlerContext ctx){//數(shù)據(jù)入站回調(diào)子類被建立時調(diào)用,也就是鏈接建立時調(diào)用System.out.println('遠(yuǎn)程客戶端 : '+ ctx.channel().remoteAddress() + ’建立鏈接’);}}

不了解Netty的讀者看到這里可能會有點(diǎn)疑惑,這個類應(yīng)該怎么用。這里簡單的解釋一下:這種類會在Netty創(chuàng)建的時候注冊進(jìn)服務(wù)中,然后在數(shù)據(jù)進(jìn)站、出站的不同階段,調(diào)用這個類中不同的回調(diào)函數(shù),以處理不同的開發(fā)需求??梢躁P(guān)注一下讀者其他的文章

3.Future:

jdk-Future:Java中提供了Future的實(shí)現(xiàn),這種Futrue可以看作是一個異步操作結(jié)果的占位符。我們可以通過這個Future查詢到這個異步操作的結(jié)果,并進(jìn)行一些處理。比如在操作失敗的時候拋出異常。但是jdk內(nèi)置的Future的查詢只能在某個時刻手動去查詢結(jié)果,或者直接阻塞這個異步操作,直到異步完成操作之后可以查詢Future的成功或者失敗。ChannelFuture:Netty內(nèi)部提供的Future實(shí)現(xiàn)類,很多異步操作在執(zhí)行的時候都會返回一個ChannelFuture對象,我們可以針對這個ChannelFuture對象設(shè)置一些回調(diào)函數(shù),比如重寫operationComplete()方法,這樣這個異步事件在完成的時候會自動調(diào)用這個方法,并且執(zhí)行我們自己的處理邏輯。接下來可以看一下ChannelFuture的應(yīng)用實(shí)例,檢測Netty服務(wù)器鏈接遠(yuǎn)程地址是否成功:

Channel channel = '';//鏈接地址192.168.100.113 的7000端口InetSocketAddress socketAddress = new InetSocketAddress('192.168.100.113',7000);//管道綁定地址并返回一個ChannelFutureChannelFuture channelFuture = channel.connect(socketAddress);//給ChannelFuture設(shè)置完成回調(diào),判斷這個操作是否完成channelFuture.addListener(new ChannelFutureListener(){@overridepublic void operationComplete(ChannelFuture future){if(future.isSucess()){//創(chuàng)建一個字符串,并指定所使用的字符集,下面這種寫法是Netty中經(jīng)常遇到的ByteBuf buffer = Unpooled.copiedBuffer('Hello',Charset.defaultCharset());//發(fā)送信息并且返回一個新的writeFuture,依舊可以根據(jù)這個writeFuture處理一些邏輯ChannelFuture writeFuture = future.channel().writeAndFlush(buffer);}else{//鏈接失敗則答應(yīng)出失敗的消息Throwable cause = future.cause();cause.printStackTrace();}}})五、總結(jié)

Netty以一種異步事件驅(qū)動以及回調(diào)的方式,能幫我們快速完善服務(wù)器處理數(shù)據(jù)的進(jìn)出,以及各個流程細(xì)節(jié)中的處理邏輯。極大的精簡了服務(wù)器開發(fā)人員在,鏈接處理,數(shù)據(jù)出入方面的開發(fā)工作。是一個及其易用且穩(wěn)定的網(wǎng)絡(luò)開發(fā)框架。

到此這篇關(guān)于Java游戲服務(wù)器系列之Netty相關(guān)知識總結(jié)的文章就介紹到這了,更多相關(guān)Java Netty內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 谷歌关键词优化-外贸网站优化-Google SEO小语种推广-思亿欧外贸快车 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 抓斗式清污机|螺杆式|卷扬式启闭机|底轴驱动钢坝|污水处理闸门-方源水利机械 | 广东成考网-广东成人高考网| POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 深圳品牌设计公司-LOGO设计公司-VI设计公司-未壳创意 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 西安中国国际旅行社(西安国旅)| 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 | 石家庄小程序开发_小程序开发公司_APP开发_网站制作-石家庄乘航网络科技有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 |