You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
4 years ago | |
|---|---|---|
| bin/protoc-3.19.4 | 4 years ago | |
| doc/db | 4 years ago | |
| im-client | 4 years ago | |
| im-common | 4 years ago | |
| im-core | 4 years ago | |
| im-das | 4 years ago | |
| im-das-api | 4 years ago | |
| im-data | 4 years ago | |
| im-entry | 4 years ago | |
| im-entry-http | 4 years ago | |
| im-service | 4 years ago | |
| im-service-api | 4 years ago | |
| .gitignore | 4 years ago | |
| README.md | 4 years ago | |
| pom.xml | 4 years ago | |
README.md
TODO
- router -> entry 负载均衡
- router 新增节点顺时针相邻节点数据一致性哈希迁移
- router 冗余节点存储数据不提供服务
- dubbo 服务异步处理吞吐量
- das 消息队列异步写
- 功能开发:
- 消息群发
- 好友列表(在线状态:批量uid一致性hash, router查询)
- 聊天记录查询
- 集群部署, docker swarm, k8s, jenkens
- 服务监控
模块列表
- 接入层 entry
- 逻辑层 logic
- 内存存储层 router
- 固化存储层 das
功能组件: 1.0
-
IOC: guice
-
通信层: netty
-
序列化: protobuf
-
内存存储:
- Caffeine
- Memcache
-
分布式缓存:redis
-
注册中心:etcd、直连
-
处理队列:disruptor
-
持久化:
- mysql 存储全量历史消息
- mongodb 存储直接拉取的未读消息
-
日志:log4j2
-
监控:prometheus、grafana
-
ID生成器
2.0
- quarkus
集群负载均衡: 子网1,子网2,公网 子网1和2不相通
dubbo native image https://dubbo.apache.org/zh/docs/references/graalvm/support-graalvm/
entry <--> client 通信
- serviceId --> paramClass --> serviceHandler
entry <--> logic dubbo service client jconsle cmd
router <--> cache das <--> db router <--> das
das shardingjdbc table struct, sharding roles logic biz
请求响应消息队列异步处理,减少线程 cpu 占用, dubbo async