托管和部署(v2)

更新

集成语言选择

Reincubate工程团队主要使用Python。因此,最复杂的示例客户端实现是用Python构建的,尽管使用语言没有任何理由。运行.NET / C#,PHP,Python,Java和JavaScript / Node.js的客户端使用该API。

连通性和数据中心选择

ricloud API的基础架构由美国,欧盟和加拿大的许多提供商托管,包括Google Cloud Platform,Amazon Web Services和Microsoft Azure。

在生产中从aschannel使用数据时,监听器进程将负责监听数据,因此需要至少 100Mb / s的可靠,高带宽Internet连接。较慢的连接可能会起作用,但可能会丢弃数据,如aschannel中所述

可能消耗大量数据的客户应该在其基础架构的这一部分使用托管合作伙伴,使用第1层对等方式来确保对这些主机的可靠,高带宽访问。同样,对于使用传统ricloud 1.x的客户来说,这也是可取的。

鉴于对asapiasmaster的请求通常是低带宽和低容量的,因此对这些组件的托管客户端没有特别要求。

aschannel的高可用性策略

由于一次只有一个侦听器进程可以附加到aschannel ,因此在自己的实现中需要高可用性的客户端可能会考虑开源keepalived项目以实现高可用性。

在生产中使用示例客户端

对于某些用例, ricloud-py示例客户端可以直接投入生产,从而使客户免于构建集成。

在侦听器模式下在生产中部署时,库将需要具有存储的计算机来缓冲接收的内容,直到客户端的应用程序检索并清除它。

支持的平台

  • Ubuntu Server 16.04 LTS( 下载

只需要默认的基本安装Ubuntu Server 16.04 LTS和MySQL 5.7。安装后,可以使用以下命令添加所需的包:

$ apt-get install python-pip libmysqlclient-dev mysql-server

已知有效的不受支持的平台

  • 大多数服务器和云Linux发行版
  • macOS 10.12与Brew的MySQL发行版( 下载

准备服务器以进行生产

Ubuntu 16.04有许多默认值,可能会限制生产环境中侦听器的功能。

最大打开文件数

默认情况下,打开文件描述符的限制设置为171,614,每个会话的最大文件描述符设置为1,024:

$ cat /proc/sys/fs/file-max
171614
$ ulimit -n
1024

为了优化并发地接收多个文件,监听器为每个被分块的文件保持文件流打开。因此,如果同时对许多文件进行流式处理和分块,则可能会超出1,024的限制。

通过使用以下内容创建名为/etc/security/limits.d/ricloud-listener.conf的文件,可以解除会话限制:

* hard nofile 10240
* soft nofile 10240

一旦新会话启动,这些新限制将生效。无需重新启动会话,可以使用以下命令更改限制:

$ ulimit -n 10240

最大MySQL包大小

默认情况下,MySQL将在Ubuntu 16.04上处理的最大数据包大约为3.5MB:

mysql> show global variables like 'max_allowed%';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 33554432 |
+--------------------+----------+
1 row in set (0.11 sec)

插入时,大型进给体可能会溢出这个尺寸。许多细粒度的HealthKit数据条目可以轻松运行数百兆字节的JSON。这将在MySQL日志中的以下行中指出:

[Note] Aborted connection 277783 to db: 'ricloud' user: 'ricloud' host: 'localhost' (Got a packet bigger than 'max_allowed_packet' bytes)

ricloud.log中将出现以下错误:

2017-05-01 16:23:52,828 root CRITICAL <class '_mysql_exceptions.OperationalError'>: (2006, 'MySQL server has gone away')
OperationalError: (2006, 'MySQL server has gone away')

这可以通过重置max_allowed_packet来解决, max_allowed_packet的最大大小为1GB。这可以在运行时更改为:

SET GLOBAL max_allowed_packet=1073741824;

可以通过配置服务器的my.cnf文件永久更改它:

max_allowed_packet=1073741824

最大MySQL InnoDB日志文件大小

MySQL InnoDB存储引擎有一个限制,即插入表中的项目大小不能大于重做日志大小的10%。此限制可以触发的错误如下所示:

(1118, 'The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.')

如错误所示,修复方法是将innodb_log_file_size设置的大小增加到适当的值。可以在此处找到对此设置值的限制。

配置即服务

将侦听器配置为在Ubuntu 16.04上作为服务运行非常简单。

将以下内容添加到/etc/systemd/system/ricloud-listener.service的新文件中:

[Unit]
Description=ricloud listener
After=network-online.target

[Service]
WorkingDirectory=/var/www-hosts
ExecStart=/usr/bin/python -m ricloud --listen
Restart=always
KillSignal=SIGQUIT
Type=simple
StandardError=syslog
NotifyAccess=all
User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target

确保/var/www-hosts/logs文件夹存在,并且www-data用户可以写入该文件夹。当然,可以为此配置任何给定的文件夹或用户。然后,重新启动system.d服务并启动新的ricloud-listener服务。

$ sudo mkdir -p /var/www-hosts/logs
$ sudo chown -R www-data:www-data /var/www-hosts
$ sudo systemctl daemon-reload
$ sudo systemctl start ricloud-listener

防火墙样本客户端

入站

  • 正常操作不需要入站Internet流量访问。
  • 当在侦听器模式下使用时,客户端的设置可能需要TCP/3306上的本地MySQL实例的入站LAN流量,以及任何文件系统共享的其他端口。

出站

  • ricloud库在TCP/443上向三个主机名asmaster.reincubate.com asapi.reincubate.com数据的出站请求: asmaster.reincubate.comasapi.reincubate.comaschannel.reincubate.com
  • 如果需要,可以安全地代理asmasterasapi的流量,但重要的是要注意连接要求 。不建议使用代理通道

在生产中使用桌面组件

支持的平台

白色标记的asrelay组件在Windows 7及更高版本( 7,8,8.1,10等)和macOS 10.11及更高版本上运行。

代码签名

为了创建桌面组件的受信任的白标构建,需要代码签名证书。 Microsoft 发布有关这些的信息 ,Apple提供证书作为其开发人员计划的一部分。

建立浏览器信任

浏览器使用不同的技术在下载周围应用基本级别的保护。默认情况下,现代浏览器不信任未知文件。 Chrome会在下载时显示一条消息,指出“此类文件可能会损害您的计算机。您还想保留binary.exe吗?”。微软的Edge浏览器引发了一个“Windows Smartscreen”窗格。在理解是否要警告时,浏览器会使用许多不同的标准:他们会查看域名,文件的性质,最重要的是他们是否已经看过它足够多次以了解它是否安全。

如果要下载Reincubate的消费者应用程序,则不会显示任何警告,因为它是浏览器所熟知的。

对于asrelay客户端,它不是按原样公开分发的:它被白色标记并使用客户端的代码签名密钥进行签名。浏览器信任Reincubate的代码签名密钥和域名,但他们往往不会识别asrelay,因为它不会被推向公众。

asrelay使用客户端的名称和代码签名进行自定义时,它将被视为一个新的应用程序(它将没有Reincubate的证书)并且将从没有声誉开始,因此它将被下载的浏览器标记。为了获得信任,新程序需要尽快了解许多计算机。通常,当对信任因素进行重大更改时,可以通过几天的下载和安装来快速浏览这些屏幕。

我们能帮你什么吗?

我们的支持团队在这里提供帮助!

我们的办公时间是格林威治标准时间周一至周五上午9点至下午5点。 时间目前是 5:50 PM的 GMT。

我们力争在一个工作日内答复所有垂询。

转到支持部分 › 联系企业团队 ›
我们的支持团队非常棒

© 2008 - 2019 Reincubate Ltd. 保留所有权利。 在英格兰和威尔士注册 #5189175, VAT GB151788978. Reincubate®是注册商标。 隐私权和条款. 我们推荐多因素认证。 在伦敦建立了爱情。