基于beego的高并发开源论坛框架Casnode

GoCN

共 2960字,需浏览 6分钟

 ·

2021-06-24 00:19

Casnode是什么?


Casnode是一款开源轻论坛程序。前端采用 javascript 和 React,后端主要为 beego 和 xorm。所以 xorm 支持的数据库,我们都支持哦。Casnode 目前作为 Casbin 官方论坛使用,希望能得到大家的一些使用建议和 Star。


为什么要用go开发Casnode呢,其他语言不好吗?


悄咪咪(因为主程喜欢)。哈哈,开玩笑的。我们选择go来开发Casnode的原因主要在于go优良的高并发性能。论坛程序对于并发的要求很高,需要同时容纳许多用户访问。在不考虑无限制添加服务器的情况下,go语言有着很大的优势。Golang 并发模型能够确保更高的性能。大多数现代编程语言都支持并发,但是 Golang 采用了更节省资源的方法、Golang 提供更高性能的goroutine模型来支持多线程。Go语言内部实现了goroutine之间的内存共享。执行goroutine只需极少的栈内存。


Casnode有哪些优势呢?

听我细细说来

  • 论坛目前已经升级使用 beego 2。

  • 论坛支持多种方式的第三方登录/注册,现有手机,邮箱,QQ,微信,github,Google 多达六种注册登录方式,同时支持图形验证码进行人机验证,防止盗刷短信。

  • 论坛采用 casbin 社区 casdoor 进行身份验证登录。

  • UI 适配 pc 端和移动端。

  • 支持 xorm 所支持的所有数据库,如 MySQL,Oracle,MsSql,SQLite,Postgres。你可以选择你最适合和最熟悉的数据库,便于迁移和管理。

  • 支持多种置顶模式,全局置顶,类别置顶,节点置顶。

  • 具有后端 swagger api 文档,使开发更加容易。

  • 编辑器支持 markdown,富文本等。

  • 支持管理员后台,更加方便和专一的管理论坛,无需再维护。

  • 支持与 Google Groups 双向同步。

  • 贴子支持自定义标签或自动生成标签,不同的主题标签聚合在一起,探索更丰富的世界。

  • 支持设置站内广告,通过后台自主投放。

  • 支持站内搜索,当然也支持通过 Google 等各种引擎搜索。

  • 支持服务端渲染,对搜索引擎 SEO 友好。

  • 支持拖拽上传图片和附件,同时每个账户都拥有自己的文件库及配额,文件库中的文件也可以当作分享链接分享出去,贴子配图更加方便。支持阿里云,腾讯云等多种 oss 存储。

  • 更多的用户角色——用户,版主,管理员。

  • 论坛开源,代码可读性高,符合规范,所有第三方服务都为可插拔形式,易于自定义,选择合适的服务。


是不是感觉优势特别多啊,不仅如此,我们还同时支持中文和英文,每个帖子都还可以使用翻译按钮选择是否翻译哦!



看完上面的介绍,是不是对Casnode很期待呢?


接下来,让我们介绍下Casnode的技术架构。

1. 总体架构

Casnode 由前端和后端两个部分组成。前端使用的是 JavaScript + React 技术,后端使用 Go 语言的 Beego 框架和 Xorm 搭建。部署时,前端会被编译成静态文件,并由后端统一提供这些静态文件。
特别地,Casnode 虽然有用户系统,但 Casnode 并不在数据库中维护一张用户表,而是依赖 Casdoor 建立了一个用户系统。如果你的组织正在使用 Casdoor,那么组织的成员可以使用现有账户直接登录 Casnode。

2. 服务器端渲染功能

Casnode 会分析每一条请求的用户特征,来判断这条请求是否来自搜索引擎的机器人。针对各大搜索引擎的机器人,Casnode 使用 Chromedp 实现服务端渲染,返回正常的结果。这样,访客就能从各大搜索引擎查到 Casnode 的帖子及回复。

3. 帖子标签自动生成原理

用户在发表新帖子的时候可以自定义帖子的标签。如果用户没有自己添加标签,Casnode 后端就会根据帖子的内容,自动生成标签。
Casnode 后端使用 sego 中文分词库,将帖子内容分成单独的词语。随后 Casnode 会统计出现频率最高的 4 个词语,作为这个帖子的标签。

4. Google Groups同步功能

基于邮件服务,Casnode 可以将新的帖子、回复同步至任何邮件列表。
同时,Casnode 还支持对 Google Groups 的双向同步。只要在配置文件中启用同步,并且在后台管理中正确设置节点的 Google Groups 信息,Casnode 就能保证这个节点内的对话与 Google Groups 实时保持一致。

看了这么多Casnode的介绍,是不是对Casnode背后的社区也很感兴趣呢?
下面,来介绍下Casnode所属的社区,Casbin。
Casbin是一个强大的、高效的开源访问控制框架。涉及到Go, Java, Node.js, Javascript (React), Python, PHP, .NET, Delphi, Rust等多种语言。Casbin由北京大学罗杨博士创立于2017年,核心维护团队有数十人。Casbin在业界具有广泛影响力。目前已经被Intel、VMware、Orange、RedHat、T-Mobile等公司开源使用,被腾讯云、Cisco、Verizon等公司闭源使用。具体详见Casbin主页。Casbin Go主项目目前GitHub 9600+ stars,加上所有语言的实现、插件等可达到15000+ stars。Casbin曾经在国内和国际上多次获得关注和宣讲:
1.国家广播电视总局:
http://www.nrta.gov.cn/module/download/downfile.jsp?classid=0&filename=e2ed95c223c34e38aa163b01030655aa.pdf
2.新加坡政府技术部门Open Government Products:
https://www.youtube.com/watch?v=OTT84oplR9o
3. 俄罗斯最大在线旅游平台tutu.ru:https://www.youtube.com/watch?v=Z5dUxH4PqYM
具体请了解Casbin官网:https://casbin.org/
最后,这是我们的demo和github地址。
Demo: https://forum.casbin.com
Github: https://github.com/casbin/casnode
欢迎各位帅气,可爱的伙伴来亲自体验一下本项目,作为一个开源项目,您的建议对我们的发展有着极大的作用。
如果您有更多的问题,可以发送邮件到 Casbin 官方邮箱:admin@casbin.org
以及我们在 Github 上的社区:https://github.com/casbin/casnode
还有我们的 QQ 群:555019739

 Gopher China2021大会日程详情来了!



点击下方「阅读原文」即可报名参加大会


浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报