Git Product home page Git Product logo

sevtin / lark Goto Github PK

View Code? Open in Web Editor NEW
517.0 17.0 116.0 2.27 MB

Lark是一个开源的Golang IM服务端项目,具有高性能和可扩展等特性。采用微服务架构设计,支持集群和水平扩展,能够满足高并发业务需求,并实现了万人群消息的秒达。

License: MIT License

Dockerfile 0.27% Go 89.91% Shell 4.43% Lua 5.24% JavaScript 0.14%
go chat chatserver gochat goim im imserver lark talk websocket

lark's Introduction

lark

Lark是一个开源的Golang IM服务端项目,具有高性能和可扩展等特性。采用微服务架构设计,支持集群和水平扩展,能够满足高并发业务需求,并实现了万人群消息的秒达。

技术选型及开发环境

序号 技术 版本 说明 官网
1 Go 1.21 开发语言 https://go.dev/
2 Lua 5.3 Redis Lua 脚本 http://www.lua.org/
3 Mysql 8.0.29 关系型数据库 https://www.mysql.com/
4 MongoDB 5.0.9 NoSql数据库 https://www.mongodb.com
5 Elasticsearch 7.17.6 搜索和分析引擎 https://www.elastic.co/cn/elasticsearch/
6 Redis 6.2.7 KV 数据库 https://redis.io/
7 Kafka 3.2.1 消息中间件 https://kafka.apache.org/
8 RabbitMQ 3.10.0 消息中间件 https://www.rabbitmq.com/
9 ZooKeeper 3.7.1 分布式协调服务 https://zookeeper.apache.org/
10 Docker 20.10.17 应用容器引擎 https://www.docker.com
11 MinIO 2022.12.12 对象存储 https://min.io/
12 Nginx 1.23.1 Web/反向代理 https://www.nginx.com/
13 JWT v4.4.2 JWT登录支持 https://github.com/golang-jwt/jwt
14 Validator v10.11.0 验证框架 https://github.com/go-playground/validator
15 Jaeger all-in-one:1.37 链路追踪 https://www.jaegertracing.io
16 Prometheus 2.36.2 系统监控和报警系统 https://prometheus.io/
17 Grafana 8.2.6 指标数据的可视化展现 https://grafana.com/
18 ETCD 3.5 服务发现 https://etcd.io/
19 Kibana 7.17.6 数据分析和可视化平台 https://www.elastic.co/cn/kibana/
20 Logstash 7.17.6 数据收集引擎 https://www.elastic.co/cn/logstash/
21 Filebeat 7.17.6 日志采集器 https://www.elastic.co/cn/beats/filebeat
22 Flink 1.14.6 通用数据处理平台 https://flink.apache.org/
23 ShardingSphere-Proxy 5.2.1 数据库中间件 https://shardingsphere.apache.org/
24 Mycat 2.1.21 数据库中间件【已弃用】 http://mycatone.top/
25 Gin v1.8.1 Web 框架 https://github.com/gin-gonic/gin
26 gRpc v1.49.0 远程过程调用系统 https://pkg.go.dev/google.golang.org/grpc
27 GORM v1.23.8 ORM https://gorm.io/

单机版运行步骤

Step 1
下载单机版分支代码(注:该分支代码已停止维护)
git clone -b standalone [email protected]:sevtin/lark.git

Step 2
创建日志文件目录
/var/log/lark

Step 3
创建docker容器数据卷目录
/Volumes/data/lark

Step 4
修改host文件
lark/configs/docker/host.txt

Step 5
执行容器启动脚本
./lark/build/run/docker-up.sh

Step 6
http://127.0.0.1:9001/identity/account/new-account
Minio Create Service Account
Access Key: SEv0QKlwqQ36M1eV
Secret Key: sZVZR1RD8Pcy73NANvk6vbMmoDsGSSOk

Create Buckets And Change Access Policy
["documents","photos","videos"]
Access Policy: Public

mkdir -p /private/tmp/lark/photos

upload files to photos
./lark/assets/images/avatar/06b73ea9-0c61-4ea6-b3e5-f89d89d53add.jpeg
./lark/assets/images/avatar/6b546cc7-5e4a-4d31-8017-1e5853f88a1c.jpeg
./lark/assets/images/avatar/b11883ba-f3d7-4164-a593-700c177c37c8.jpeg

update CONST_AVATAR_SMALL/CONST_AVATAR_MEDIUM/CONST_AVATAR_LARGE/SYSTEM_ACCOUNT_AVATAR_CONTACT_INVITE

Step 7
通过Apache Flink同步数据到Elasticsearch

Step 8
执行build脚本
./lark/scripts/build.sh

Step 9
执行项目启动脚本
./lark/build/run/run_all.sh

视频教程地址

https://space.bilibili.com/178350755

支持作者

维护这个项目需要花费大量的时间和精力来保持其更新和改进。如果你愿意支持我们,你的捐款将帮助我们继续保持项目的活跃性。

WeChatPay

Alipay

Stargazers over time

lark's People

Contributors

saeipi avatar sevtin avatar topgamesinc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lark's Issues

feature: 建议

底层如果要起mysql/ redis这些集群的话 是不是直接上k8s编排容器比较好?直接docker的话管理起来不方便 还有就是日志采集的话需要用到elk这个这么重的组件吗 用loki+promethus是不是已经足够?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.