Summer 项目常见问题解决方案

Summer 项目常见问题解决方案

Summer 这是一个轻量级的、一站式的java游戏服务器框架,也可用于开发简单的web服务。基于netty实现了高性能通讯,支持tcp、http、websocket等协议,支持protobuf、json两种数据格式,支持以配置的形式轻松开启多端口网络服务。支持RPC远程调用,支持以优雅的方式实现远程调用,支持调用超时重试、幂等调用。封装了持久化层,提供数据访问和数据落地接口,支持异步新增、保存、删除数据,支持主键或指定其他字段进行数据缓存。支持简单的ioc,业务层使用依赖注入实现逻辑。封装了伪协程实现方案Promise,可用于解决地狱式回调等问题。支持MVC、领域、ECS架构。 Summer 项目地址: https://gitcode.com/gh_mirrors/sum/Summer

1. 项目基础介绍和主要编程语言

Summer 是一个轻量级的、一站式的 Java 游戏服务器框架,同时也可用于开发简单的 Web 服务。该项目基于 Netty 实现了高性能通讯,支持 TCP、HTTP、WebSocket 等协议,并支持 protobuf、JSON 两种数据格式。Summer 框架提供了 RPC 远程调用、持久化层、数据访问和数据落地接口等功能,支持异步新增、保存、删除数据,以及简单的 IOC 和业务层依赖注入。此外,它还封装了伪协程实现方案 Promise,可用于解决地狱式回调问题,并支持 MVC、领域、ECS 架构。

主要编程语言:Java

2. 新手使用项目时需特别注意的3个问题及解决步骤

问题一:如何配置和启动多端口网络服务?

问题描述:新手在使用 Summer 框架时,可能不清楚如何配置和启动多端口网络服务。

解决步骤

  1. SummerConfig 类中,使用 addPort 方法添加需要监听的端口。例如,添加一个 HTTP 服务器端口:

    SummerConfig config = new SummerConfig();
    config.addPort(8080, Protocol.HTTP);
    
  2. 如果需要配置多个端口,可以多次调用 addPort 方法。例如,同时启动 HTTP 和 WebSocket 服务:

    config.addPort(8080, Protocol.HTTP);
    config.addPort(8081, Protocol.WEBSOCKET);
    
  3. main 方法中,通过 SummerApplication.run 方法启动应用:

    public static void main(String[] args) {
        SummerApplication.run(config);
    }
    

问题二:如何实现 RPC 远程调用?

问题描述:新手可能不清楚如何在 Summer 框架中实现 RPC 远程调用。

解决步骤

  1. 定义一个远程服务接口,并使用 @ServiceRemote 注解标记该接口。

    @ServiceRemote
    public interface RemoteService {
        String sayHello(String name);
    }
    
  2. 实现该接口,并使用 @Service 注解标记实现类。

    @Service
    public class RemoteServiceImpl implements RemoteService {
        public String sayHello(String name) {
            return "Hello, " + name;
        }
    }
    
  3. 在调用端,通过 RemoteServiceProxy 获取远程服务代理,并调用方法。

    RemoteService remoteService = RemoteServiceProxy.get(RemoteService.class);
    String result = remoteService.sayHello("Alice");
    System.out.println(result);
    

问题三:如何进行数据持久化操作?

问题描述:新手在使用 Summer 框架时,可能不清楚如何进行数据持久化操作。

解决步骤

  1. 定义一个实体类,并使用 @Entity 注解标记该类。

    @Entity
    public class User {
        private Long id;
        private String name;
        // 省略构造方法和 getter/setter 方法
    }
    
  2. 创建一个仓库接口,并使用 @Repository 注解标记该接口。

    @Repository
    public interface UserRepository extends JpaRepository<User, Long> {
    }
    
  3. 在业务层,注入仓库接口,并使用 savefindById 等方法进行数据操作。

    @Service
    public class UserService {
        @Autowired
        private UserRepository userRepository;
    
        public User saveUser(User user) {
            return userRepository.save(user);
        }
    
        public Optional<User> getUserById(Long id) {
            return userRepository.findById(id);
        }
    }
    

Summer 这是一个轻量级的、一站式的java游戏服务器框架,也可用于开发简单的web服务。基于netty实现了高性能通讯,支持tcp、http、websocket等协议,支持protobuf、json两种数据格式,支持以配置的形式轻松开启多端口网络服务。支持RPC远程调用,支持以优雅的方式实现远程调用,支持调用超时重试、幂等调用。封装了持久化层,提供数据访问和数据落地接口,支持异步新增、保存、删除数据,支持主键或指定其他字段进行数据缓存。支持简单的ioc,业务层使用依赖注入实现逻辑。封装了伪协程实现方案Promise,可用于解决地狱式回调等问题。支持MVC、领域、ECS架构。 Summer 项目地址: https://gitcode.com/gh_mirrors/sum/Summer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农爱宜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值