初次接触 Confluence 是因为上家公司里用的是 Confluence + Jira 的组合,但是版本较老。我在团队的空间里写的笔记不多,偶尔能看到之前同事留下的一些技术文章和片段,但更多的还是用来记录项目的需求、会议记录、开发环境和版本迭代信息等。

作为一款知识管理工具,Confluence 还算是比较出色的,而且用久了渐渐离不开了。今年早些时候 Confluence 宣布不再售卖 Datacenter 也就是独立部署的版本,将用户引向 SaaS 服务版。确实,对于大多数用户而言,使用 SaaS 服务要便捷不少,不用去花费时间去部署和维护服务器。对于软件的提供方来说,SaaS 化的服务也更方便进行推广和迭代。

我个人的情况是,如果某个软件提供了可独立部署的选项,那我肯定是偏向于独立部署的,如果开放源代码,那就更好不过。而且 SaaS 版的由于各种原因,网络加载很慢。于是,在今年的 2 月份,也就是 Confluence 停止销售独立部署 License 的前一天,我购买了 Datacenter 版的授权,使用 Docker 部署了一份 Confluence 网站,然后将笔记陆续迁移到上面。

可是 Confluence 的性能优化得并不是很好。在使用的过程中,我发现在有些时候登录进去要好一会儿才能看到页面,特别是很久没使用第一次登录的时候,经常要加载十几秒之久。因为这个,我曾一度想要放弃 Confluence,终于在今天,我决定将 Confluence 迁移出来,放到一台闲置的 NUC 7 上,然后看看性能问题是否能够得到改善。

这也不是 Confluence 第一次迁移,所以对我来说也不是一件什么大事,我的 Confluence 使用的是 PostgreSQL 数据库,数据都是保存在数据库中的,所以将数据库完整迁移即可,程序本身和配置文件都是放在 Tomcat 容器中的,迁移起来也比较方便。不一样的是之前是从容器迁移到容器,这次是从容器迁移到物理服务器。

首先是服务器的准备。这台服务器只用来安装 Confluence 和 postgreSQL 两个软件,所以基本所有的发行版都无所谓,最终选取的是 Centos 8。

安装完操作系统后我发现使用 yum update 时连不上网络, 需要使用 nmcli c up eno1 启用 eno1, 在安装完 vim 和 openssh 等常用软件和 postgreSQL 数据库后,我从 Confluence 官网下载好 atlassian-confluence-7.15.0-x64.bin 二进制安装文件, 执行这个文件后即可成功安装 Confluence 服务,然后使用 service confluence start 启动即可。

第一次启动后我使用 service confluence stop 将其停止,目的是让程序自动生成配置文件 /var/confluence/confluence.cfg.xml,然后将证书信息导入进去。这是一个 xml 文件, 在 properties 新增一个 property 填入从旧的 Confluence 获取到的 license 信息即可,结构如下

1
<property name="atlassian.license.message">xxx</property>

配置文件中还包含数据库连接信息等,这个可以先不填,后面在网页端配置。填完 license 信息后即可再次启动,填入数据库信息即可完成 Confluence 的安装。

这次还顺便修改了 Confluence 的最大可用内存。 /opt/confluence/bin/setenv.sh 文件中将 Xmx 的值修改为 8193 M

1
2
# Set the Java heap size
CATALINA_OPTS="-Xms1024m -Xmx8192m ${CATALINA_OPTS}"

运行在独立服务器上的 Confluence 总体速度感觉比之前稍快,体验有所提升。但是在首次登录时的速度仍然不理想,我想这可能是其底层优化问题。好在登录进去之后速度便很快了。这个问题先搁在这,看以后有没有解决的可能吧。