协同编辑能够让项目小组中的协同合作达到下一个高度。这个页面对相关协同编辑中的问题进行了讨论,能够提供给你所有希望了解的内容。
进入 Collaborative editing 页面来获得项目小组是如何进行实时的协同工作的,这些协同工作包括在软件需求,会议记录,历史查看和任何你任务需要进行协同工作的地方。
关于 Synchrony
协同编辑是通过 Synchrony 进行的,这个能够实时的同步数据。Synchrony 是一个可执行的进程,这个进程是在 Confluence 之外运行的,但是又是由 Confluence 自动进行管理的。在一般的情况下,这个进程是不需要 Confluence 的管理员进行手动管理的。
希望检查 Synchrony 是否在运行,进入 > 基本配置(General Configuration) > 协同编辑(Collaborative editing)。
这里,你可以检查 Synchrony 的运行状态和当前的配置情况,包括当前的端口,数据库驱动和 Synchrony 使用的最大的 heap 大小。这些信息在你对 Synchrony 进行问题排除的时候非常有用。
Synchrony 在默认的情况下是运行在 8091 端口的,在一个内部的 Synchrony 代理意思是你不需要打开其他的端口。
修改编辑模式
编辑模式确定了你站点所有用户使用协同编辑的体验,这个是你对协同编辑进行启用和关闭的地方。
希望修改编辑模式:
- 进入 > 基本配置(General Configuration) > 协同编辑(Collaborative editing)。
- 选择 编辑模式(Change mode)。
- 选择一个模式,然后选择 修改(Change)。
修改编辑模式其实是不重要的,一些修改可能会导致你的用户丢失他们的草稿,因此针对某个模式,你最好需要知道修改将会导致那些问题。
有下面的模式可用:
启用(On) | 这个模式允许你的小组可用同时进行编辑和分享操作,同时实时的能够看到其他用户的修改。 这是推荐的编辑模式。 |
限制(Limited) | 如果你需要对 Synchrony 进行问题排除的话,这个模式将会包含你用户分享草稿。建议仅仅在当你觉得你的系统在编辑和发布的时候遇到问题了,选择这个模式。 你用户的编辑体验将会受限:
当 Synchrony 再次运行后,我们推荐你将协同编辑设置回启用模式。 |
关闭(Off) | 这个模式意味着你的小组仅仅可以编辑自己的页面草稿。Confluence 将会尝试在保存的时候合并有冲突的编辑。这个模式与 Confluence 5 编辑使用的模式相同。 这个模式在你不能在你的系统中成功运行 Synchrony 的时候有用,或者你决定协同编辑模式并不适用你的环境(例如,你现在正在审计需求,你不希望页面被编辑,在这个情况下,协同编辑对你并不合适)。 在你将协同编辑模式修改为关闭的时候,你应该确保你的用户保存的所有草稿都已经被发布了。 |
最大编辑者的限制
我们限制为最多 12 个用户可以同时对一个页面进行编辑。这个意味着当一个页面已经有 12 个用户正在编辑了,13 个用户是不能进入编辑界面的,直到 12 个用户中有一个用户已经离开了。
系统管理员可以使用 Configuring System Properties 页面中描述的配置来增加或者减少这个限制。当你觉得在多个用户进行协同编辑的时候遇到了性能问题,你应该考虑降低允许协同编辑的用户数量。
审计的考虑
我们知道一些客户对审计是主要考虑的方面。我们不能保证在协同编辑的时候具有审计,审查功能。所有页面的修改当前附加到用户发布页面的属性中而不是用户的特定修改。
如果这个对你来说是一个问题的话,我们建议你在你的站点中关闭协同编辑。
在未发布的草稿中没有版本历史
我们现在保存了在系统编辑中的所有时间的编辑,但是我们不会保存没有发布修改的的版本。当你恢复到早期页面的版本的时候,你仅仅可以恢复到一个已经存在的发布版本中。当你恢复到前一个版本的时候,所有未发布的的修改都会丢失。
匿名用修改的内容是否可见
当你为匿名用户赋予 添加(Add )页面权限的时候有其他的一些事情你需要注意(和全局权限的 可以使用(Can use))。
当一个为发布页面是由匿名用户创建的时候,关闭一个编辑或者发布一个页面的时候你不会收到警告。这个可能会导致登录的用户的编辑会被中断和打扰。
他们自己的修改是可以在页面中可见,但是通常警告对话框将不会出现,如果是没有登录用户做的修改的话。
针对登录的用户和匿名用户都有未发布的修改,这个对话框将会显示,但是仅仅是登录的用户才能看到对话框。所有用户的修改(包括匿名用户)将会被包括进来,当你从对话框中查看修改的内容进行查看的话。
修改你的 Synchrony 配置
你不能通过 Confluence UI 修改 Synchrony 的配置。配置的修改是通过系统属性进行修改的。在绝大部分情况下,你不需要对默认的配置进行修改。
修改 Synchrony 运行的端口...
在默认情况下 Synchrony 运行在 8091 端口。如果这个端口在你的系统中已经被其他应用占用了,你可使用 synchrony.port
系统属性来将端口修改到其他可用的端口上。
如果你使用的是 Confluence 6.0.3 及其早期的版本,你需要使用 reza.port
来替代 synchrony.port。
请可参考 Configuring System Properties 页面中的内容来获得如何进行修改的帮助。
针对 Confluence 数据库中,运行 Synchrony 的方式有些不同。请参考 Configuring Synchrony for Data Center 页面中的内容来获得更多信息。
修改 Synchrony 的最大 heap 值
在默认情况下 Synchrony 的最大 heap 大小被设置为 1 GB。
如果你遇到了与 Synchrony 有关的内存溢出的错误,你可以通过修改 synchrony.memory.max
属性来确定 Synchrony 使用的内存大小。
如果你使用的是 Confluence 6.0.3 及其早期的版本,你需要使用 reza.memory.max
来替代 synchrony.memory.max。
请可参考 Configuring System Properties 页面中的内容来获得如何进行修改的帮助。
针对 Confluence 数据库中,运行 Synchrony 的方式有些不同。请参考 Configuring Synchrony for Data Center 页面中的内容来获得更多信息。
请参考 Recognized System Properties 页面中的内容来获得所有有关 Synchrony 的系统属性。
如果你需要针对 Synchrony 虚拟机传递其他的参数,创建一个名为 synchrony-args.properties
的属性文件。这个文件位于 Confluence 的 home 目录中,然后在这个文件中输入你希望传递进去的参数,每行一个参数。
|
这个将会添加 -Dproperty1=value1 -Dproperty2=value2
到 Synchrony 命令行中。这个功能只能在 Confluence 6.0.2 及其后续版本中有效。
你不能使用这个方法传递在系统数据中已经有的值,例如端口, Xmx 或 Xss 等。请参考 Configuring System Properties 页面中的内容来获得所有的属性列表。
代理和 SSL 的考虑
对于你如何连接 Synchrony 是与你的环境有关的。我们知道绝大部分的 Confluence 站点是运行在反向代理后面的,同时还使用了 SSL。这里是帮助你在你环境中识别正确的配置的一些信息和一些针对你环境需要做的一些协同合作方面的修改。
SSL
Synchrony 运行在一个独立的 JVM,这个并不需要支持直接的 HTTPS 连接。如果你没有使用反向代理,SSL 应该在 Tomcat 中定义,如果你使用了方向代理或者负载均衡。那么 SSL 应该在你的反向代理和负载均衡中进行配置和定义。
Proxies
在下面的图表中,我们使用 Confluence 运行的环境下通常的代理和反向代理配置,同时 Confluence 也运行在 /confluence 上下文路径,(例如, www.mysite.com/confluence)。如果你的 Confluence 没有使用上下文,那么这个概念和配置也是一样的(例如,www.myconfluence.com)。
下面的配置只是特定于 Confluence 服务器,如果你使用的是数据中心,请参考 Configuring Synchrony for Data Center 页面中的内容来获得更多信息。
没有反向代理
如果你没有在 Confluence 中使用反向代理,那么你的会通过 Confluence 的内部 Synchrony 代理连接到 Synchrony。如果使用了 SSL 的话,那么这个是通过 Tomcat 决定的。这个是默认的配置,针对这个情况你在启用协同编辑的时候不需要进行任何进一步的修改。
使用一个反向代理
如果你的 Confluence 是运行在一个反向代理后面的话,你需要通过 Confluence 内部 Synchrony 代理来连接 Synchrony 。这个是反向代理的默认设置,如果你不希望开发 8091 端口的话,这个也是一个很好的选择。SSL 应该通过你的额反向代理服务器来配置和确定。
针对 Synchrony 配置你不需要做任何进一步的反向代理配置,但是在最好的情况下,你的反向代理应该支持 WebSocket 连接(你需要在你的代理中手动启动这个)。
为了告诉 Confluence 你希望使用内部代理,设置 synchrony.proxy.enabled
system property 中的配置设置为 true
。(这个是可选的,但是这个可以避免 Confluence 在通过内部代理之前来通过 /synchrony 来找到 synchrony)。
如果 Synchrony 不能访通过 /synchrony-proxy 进行访问,我们将会自动的尝试 /confluence/synchrony-proxy (/confluence 是你 Confluence 的上下文)。
Synchrony 使用一个反向代理目录
如果你的 Confluence 是运行在一个反向代理的后面,但是你在通过 Confluence 的内部 Synchrony 代理进行连接的时候遇到了问题或者无法连接的情况,你可以选择连接目录到 Synchrony。这个是最佳的设置,但是不需要你环境做一些改变。你需要打开 8091 端口,同时添加 /synchrony 到你的反向代理配置中。SSL 还是通过你反向代理服务器决定和定义的,Synchrony 还不能接受 HTTPS 的连接。
如果 Synchrony 不能访通过 /synchrony-proxy 进行访问,我们将会自动的长沙 /confluence/synchrony-proxy (/confluence 是你 Confluence 的上下文)。
下面的一些指南是有关反向代理的配置相关的一些文章。目录的顺序是很重要的,请查看我们的一些示例。
-
- Using Apache with mod_proxy
- Running Confluence behind NGINX with SSL
- Proxying Atlassian server applications with Apache HTTP Server (mod_proxy_http)
- Proxying Atlassian server applications with Microsoft Internet Information Services (IIS)
- How to configure Amazon Web Service Elastic Load Balancer with Confluence 6.0
XHR fallback
当一个通过通过 WebSocket 连接到 Confluence 的时候,我们将会返回一个 XML HTTP Request (XHR),这个能够允许用户成功的对页面进行编辑。为了让用户获得最佳的编辑体验,我们强烈建议你在你的环境中配置允许 WebSocket 连接。
XHR fallback 在默认的情况下是启用的,但是必要的话,可以通过 system property 进行禁用。你应该不需要对这些进行修改。
https://www.cwiki.us/display/CONF6ZH/Administering+Collaborative+Editing