Project

即时消息系统 - yim

  • 项目描述:分布式、可拓展的IM即时消息系统,提供了Web客户端,支持群聊、单聊,唯一在线设备踢出;

  • 涉及技术:Netty、Redis、MySQL、WebSocket、Dubbo、Protobuf、RocketMQ、Zookeeper、Docker

  • 设计技术

    1. 使用 Netty 开发了 WebSocket Server,Websocket 长连接保证了消息实时性。使用 HTTP 请求处理业务逻辑。隔离长连接、短连接请求,保证消息通道稳定性与业务可拓展性;
    2. 使用 RocketMQ 解耦消息转发模块与消息投递模块,提升了模块部署的扩展性、系统吞吐量;
    3. 自定义协议配合 Protobuf 实现高扩展性、高性能协议;
    4. 使用 Dubbo 作为 RPC 框架,保证了模块的拓展性;
    5. 使用 Zookeeper 实现 WebSocket Server 的服务注册。实现了基于 WebSocket Server 状态的负载均衡选择器,为用户选择最佳的 WebSocket Server;
  • 项目开源https://github.com/Mvbbb/yim

轻量级HTTP服务器 - rxweb

  • 项目描述:基于 Netty 开发的简洁、轻量、高性能的 Http Web 服务器,可以用于替换 spring-boot-starter-web 依赖;

  • 项目特点

    1. 支持自定义多种服务器参数:TCP 参数、线程池参数、HTTP 参数;
    2. 支持 MVC 的常用注解:RequestMapping、ResponseBody、RequestHeader、PathVariable……
    3. 支持文件下载、HTTPS、JSON/Protobuf 序列化响应消息、ANT 风格路径匹配;
    4. 支持全局异常处理、统一响应格式处理;
    5. 支持过滤器,实现类似于 Spring MVC 的 Interceptor 功能;
    6. Spring、SpringBoot 框架支持,支持以注解的方式配置 Web 服务器;
  • 项目开源https://github.com/Mvbbb/rxweb