Organizations

13 results for Fortress
  • 序列化处理 现在已经可以通过配置来生成 ActorSystem, 但是现在需要引入 Protobuf 来做序列化传输. 默认 pekko 传输都是依赖 java-serialization 默认序列化做传输, 如果你成功启动服务传输的时候会出现以下提示: [ERROR] [08/28/2025 11:29:54.811] [fortress-cluster-pekko.remote.default-remote-dispatcher-5] [Encoder(pekko://fortress-cluster)] Failed to serialize message [ActorSelectionMessage(io.fortress.common.event.ConnectedEvent)]. java.io.NotSerializableException: No configured serialization-bindings for class [io.fortress.common.event.ConnectedEvent] 看起来传输的消息结构只需要实现 java.io.Serializable 并且追加以下配置即可: # Actor 序列化允许采用 Java 默认处理 fortress.actor.settings.pekko.actor.allow-java-serialization=on 这里虽然传输成功, 但是默认是会提示警告: [WARN] [SECURITY][08/28/2025 12:01:31.345] [fortress-cluster-pekko.remote.default-remote-dispatcher-14] [org.apache.pekko.serialization.Serialization(pekko://fortress-cluster)] Using the Java serializer for class [io.fortress.common.event.ConnectedEvent] which is not recommended because of performance implications. Use another serializer or disable this warning using the setting 'pekko.
    fortress Java Created Thu, 28 Aug 2025 19:34:47 +0800
  • 功能初始化 这里首先需要配置 common 子项目的功能, 一切基于 protobuf 生成的代码也是由 common 项目构建生成. pom.xml 的配置如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- 父依赖 --> <parent> <groupId>io.fortress</groupId> <artifactId>boot</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> <!-- 子属性 --> <modelVersion>4.0.0</modelVersion> <artifactId>fortress-common</artifactId> <name>Fortress Common Module</name> <description>Fortress utilities and models</description> <packaging>jar</packaging> <!-- 第三方依赖 --> <dependencies> <!-- 通用字符串、集合等工具类 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <!-- 通用编码哈希工具 --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency> <!-- Quarkus 核心依赖 --> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-core</artifactId> </dependency> <!-- Quarkus 容器依赖 --> <dependency> <groupId>io.
    fortress Java Created Wed, 27 Aug 2025 20:06:01 +0800
  • 项目初始化 这里主要面向的游戏服务端相关业务, 但是本质上也可以看作设计 RPC 系统, 具体的依赖如下: maven-wrapper: 包管理系统, 不要用 gradle 做项目管理, 坑太多了不好填 java21: 采用 21 版本主要是准备承接后续大更新 24 版本 pekko: 需要搭建 actor 节点集群开发, akka 已经转商业授权, 所以采用 pekko 开源版本 protobuf: 客户端交换消息的方式采用 protobufV3, pekko 内部集群序列化传输消息也支持 quarkus: redhat 出的开发框架, 需要用到 容器管理/WebSocket服务/Web服务 功能并且支持打包生成原生可执行文件 mariadb-jpa: mariadb数据库和 ORM 框架, 用于挂载和落地玩家数据实体到数据库之中 这部分相关的官方文档可以先自行前往官网查阅: pekko protobuf quarkus hibernate-orm quarkus-native 之所以采用 quarkus 作为主要开发框架是基于以下几点: 支持原生应用生成 容器和云原生支持 启动快和内存占用小 轻量化依赖扩展 官方提供高并发WebSocket实现 业务开发需要比较轻量化的容器管理 之后就是设计项目目录结构: # io.fortress 是项目包名, 这里采用 quarkus 工具链初始化 --- /.mvn( maven-wrapper 目录 ) --- /wrapper/maven-wrapper.
    fortress Java Created Tue, 26 Aug 2025 20:08:58 +0800
Previous