码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java游戏核心架构之通信架构


    通信框架选择

    Java游戏通信一般是使用目前两个比较流行的底层通信架构:Netty和Mina。

    有意思的是这两个框架都是出自同一个人之手【Trustin Lee】,这两个框架的线程模型基本是一致的都是采用了Reactors in threads模型,即Main Reactor + Sub Reactors的模式。由main reactor处理连接相关的任务:accept、connect等,当连接处理完毕并建立一个socket连接(称之为session)后,给每个session分配一个sub reactor,之后该session的所有IO、业务逻辑处理均交给了该sub reactor。每个reactor均是一个线程,sub reactor中只靠内核调度,没有任何通信且互不打扰。

    在游戏服务器开发过程中上面的两种框架都有企业在使用,但是考虑到Mina目前的社区不够活跃且Mina封装比较简单无法满足定制化的需求,因此我们在开发的过程中使用的是Netty作为底层通信框架。

    Netty的架构

    在这里插入图片描述
    Netty 功能特性如下:

    • 传输服务,支持 BIO 和 NIO。
    • 容器集成,支持 OSGI、JBossMC、Spring、Guice 容器。
    • 协议支持,HTTP、Protobuf、二进制、文本、WebSocket 等一系列常见协议都支持。还支持通过实行编码解码逻辑来实现自定义协议。
    • Core 核心,可扩展事件模型、通用通信 API、支持零拷贝
  • 相关阅读:
    Elastic Stack 8.0 安装 - 保护你的 Elastic Stack 现在比以往任何时候都简单
    分布式面试题
    什么是服务器CC攻击,被CC攻击了服务器怎么防护?
    SpringBoot整合RabbitMQ实现六种工作模式
    带你一起玩转Java流
    如何基于Next.js、Prisma、Postgres和Fastfy构建全栈APP?
    论Orchestration和Choreography
    Flutter 实现九宫格抽奖动画效果
    Gin的请求与响应
    Python-Tkinter 图形化界面设计
  • 原文地址:https://blog.csdn.net/huanghailiang_ws/article/details/126786215
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号