36

GitHub - Lxido/micro-service-im: 基于swoft-cloud的微服务架构,最小化拆分粒度,PH...

 5 years ago
source link: https://github.com/Lxido/micro-service-im
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

基于Swoft-cloud微服务架构-Im通讯平台

概述

  • 对swoole-im进行服务拆分,进行微服务架构(https://wwww.github.com/Lxido/swoole-im.git)
  • 基于Swoft-cloud 进行服务化治理服务治理、熔断器、服务降级、Rpc调用、服务网关、 Cosul服务注册与发现、Mysql连接池、Redis连接池、异步任务、websocket推送
  • 底层采用Swoole通讯引擎,多进程、异步任务,开发模式:Aop,依赖注入,Bean容器,全注解
  • 服务间配置独立,使用composer进行依赖管理,进行composer组件化开发,公用的Rpc接口封 装为独立composer包。
    • 拆分有群组Rpc服务,聊天日志Rpc服务,用户基础Rpc服务,消息处理服务
    • Httpserver网关api服务,websocket服务
  • 请使用swoole扩展2.1.3 以及php 7.1
  • 快速开始
    • 针对每个服务使用composer更新依赖make install
    • 开启所有服务 make start
    • 关闭所有服务 make stop
  • docker启动
    • docker-compose up
  • 演示地址 http://chat.huido.site (可以注册)

架构图

服务依赖

前端服务

服务处理

服务开发

Rpc 接口依赖

"repositories": {
    "0":{
        "type":"vcs",//git源
        "url":"http://www.github.com/Lxido/service-components" //公用composer包
    },
    "packagist": {
        "type": "composer",
        "url": "https://packagist.laravel-china.org"
    }
}

Gateway-Api && Websocket 中心网关服务

接受web端webocket长连接通讯、api请求.
处理基础数据,对外中心api网关.
服务调用方(Rpc 调用),调用群组服务、用户基础服务等`
  • 依赖: user-servicegroup-serviceservices-componentsredis-servicegroup-servicemsg-service

  • 配置: worker:2,task_worker:2,port:8090,熔断器服务降级,Rpc连接池useProvider:false,

  • 服务启动:

    cd gateway-api/

    composer install更新依赖

    php bin/swoft ws:start --d可选守护进程模式

Redis 缓存处理服务

处理用用户的业务缓存,使用swoft redis连接池
独立服务处理用户群组缓存、好友聊天缓存
  • 依赖:services-compoentsswoft-cloud*

  • 服务启动:

    cd/redis-service

    composer install更新依赖

    php bin/swoft rpc:start --d可选守护进程模式 配置: worker:2,task_worker:2,port:8091,SyncRedis连接池useProvider:false,

Group 群组数据处理服务

处理用群组基础信息,群组聊天等业务处理
  • 依赖:services-compoentsswoft-cloud*redis-service

  • 服务启动:

    cd/group-service

    composer install更新依赖

    php bin/swoft rpc:start --d可选守护进程模式 配置: worker:2,task_worker:2,port:8092,SyncRedis连接池useProvider:false,mysql连接池

Msg 消息处理服务

处理系统消息,收发请求消息存储
  • 依赖:services-compoentsswoft-cloud*

  • 服务启动:

    cd ./msg-service

    composer install更新依赖

    php bin/swoft rpc:start --d可选守护进程模式 配置: worker:2,task_worker:2,port:8093,useProvider:false,mysql连接池

User 用户中心服务

用户基础信息处理
用户好友聊天处理
用户业务功能封装
  • 依赖:services-compoentsswoft-cloud*redis-service,msg-service,group-service

  • 服务启动:

    cd ./user-service

    composer install更新依赖

    php bin/swoft rpc:start --d可选守护进程模式 配置: worker:2,task_worker:2,port:8094,useProvider:false,mysql连接池

启动和服务进程预览

开发进度 && 实现功能

  • 好友单聊
  • 添加好友
  • websocket token 机制
  • 好友右键菜单操作功能
    • 发送好友信息
    • 查看好友资料
    • 查看好友聊天记录
    • 好友备注功能
    • 移动好友分组
    • 删除好友功能
  • 发现中心
    • 搜索好友
    • 推荐好友 添加好友
    • 创建群
  • 消息中心
    • 好友离线上线通知,好友上线离线消息推送
    • 系统消息推送,好友申请处理操作

7.预览

  • 消息处理中心,消息盒子
  • 发现中心,推荐好友群,搜索好友群,创建群
  • 单聊,群聊 聊天界面,聊天记录
  • 主面板
  • 右键功能(好友管理,分组管理,群管理)
  • 整体预览图

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK