Priam的运行有点棘手
之前已经解释过如何所描述的设置可以工作,但在某些情况下可能不够。例如,它不能为您提供一种进行和恢复备份的简单方法,添加新节点依赖于一个随意选择种子的自定义python脚本。
设置它的主要原因是它提供的备份/还原功能。所有其他备份方法都非常繁琐,Priam碰巧实现了重要的部分--快照
然而,Priam的运行有点棘手。这个太详细,也不容易找到(这是wiki中最后的、不可立即看到的项)。首先,它每个Cassandra版本都有一个分支,所以您必须签出正确的分支并构建它。我立即遇到了一个问题,因为他们的命名不允许Eclipse导入Gradle项目。在24小时内,我报告了3个问题,这是不理想的。Priam不支持动态SimpleDB名称,也不允许通过命令行覆盖捆绑的属性。我希望没有更大的问题。我遇到的那些,我修好
- 将javaagent附加到JVM选项
- 运行Priam网站
- 它自动替换了大部分的curandra.yaml,包括种子提供者(即节点如何找到集群中的其他节点)
- 运行卡桑德拉
- 它获取种子信息(存储在AWS SimpleDB中)并连接到集群。
我决定用一个独立的码头运行器运行WAR文件,而不是安装tomcat。在shell脚本方面,核心位看起来是这样的(除了在节点初始化时运行):
https://m.imdb.cn/title/tt100127196/review_119
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# Get the Priam war file and jar fileaws s3 cp s3://$BUCKET_NAME/priam-web-3.12.0-SNAPSHOT.war ~/aws s3 cp s3://$BUCKET_NAME/priam-cass-extensions-3.12.0-SNAPSHOT.jar /usr/share/cassandra/lib/priam-cass-extensions.jar# Set the Priam agentecho "-javaagent:/usr/share/cassandra/lib/priam-cass-extensions.jar" >> /etc/cassandra/conf/jvm.options# Download jetty-runner to be able to run the Priam war file from the command linewgetnohup java -Dpriam.clustername=LogSentinelCluster -Dpriam.sdb.instanceIdentity.region=$EC2_REGION -Dpriam.s3.bucket=$BACKUP_BUCKET \-Dpriam.sdb.instanceidentity.domain=$INSTANCE_IDENTITY_DOMAIN -Dpriam.sdb.properties.domain=$PROPERTIES_DOMAIN \-Dpriam.client.sslEnabled=true -Dpriam.internodeEncryption=all -Dpriam.rpc.server.type=sync \-Dpriam.partitioner=org.apache.cassandra.dht.Murmur3Partitioner -Dpriam.backup.retention.days=7 \-Dpriam.backup.hour=$BACKUP_HOUR -Dpriam.vnodes.numTokens=256 -Dpriam.thrift.enabled=false \-jar jetty-runner-9.4.8.v20171121.jar --path /Priam ~/priam-web-3.12.0-SNAPSHOT.war &while ! echo exit | nc $BIND_IP 8080; do sleep 10; doneecho "Started Priam web package"service cassandra startchkconfig cassandra onwhile ! echo exit | nc $BIND_IP 9042; do sleep 10; done |
BACKUP_BOCK、properties_Domain和INSTANCE_Domain是通过CloudFormatation脚本提供的(因为我们无法预先知道确切的名称--特别是对于SimpleDB)。请注意,这些属性不会在主回购中工作-我在我的拉请求中添加了它们。
为了使其工作,您需要创建两个SimpleDB域(例如,由CloudFormatation创建)。您可以使用其他数据存储(而不依赖于AWS)替换SimpleDB,但目前这是超出范围的。
运行Priam的结果是,您可以在SimpleDB中拥有Cassandra节点(您可以使S不提供任何UI),当然,备份将在备份S3桶中自动创建。
然后,可以通过对每个节点进行日志记录并执行以下操作来还原备份:
https://www.douban.com/doulist/144578376/
指定还原的时间范围。仍然不理想,因为你会希望有一个一键恢复,但比推出自己的备份和恢复基础设施好得多。
这里有一个非常重要的注意事项--vode不受支持。我原来的集群默认每台机器有256个vode,现在只有一个,因为Priam不支持1以外的任何东西。这很遗憾,因为vode是安装Cassandra的推荐方法。不过,Netflix显然不使用这些。有一个正在进行中的分支机构在5年前就放弃了。幸运的
Priam将一些Cassandra默认值替换为其他值,因此您可能需要比较当前的设置和新生成的curandra.yaml。总的来说,它并没有让人觉得超级制作已经做好了准备,但显然是这样的,因为Netflix正在生产中使用它。
https://book.douban.com/doulist/144578376/
DPR是新的数据保护条例,你可能已经知道了。我给了对于开发人员(和产品所有者)意味着什么。不过,还有一件事没做--饼干。房间里的大象。
在此之前,我曾说过,cookie受到另一项立法的约束--ePrivacy指令,该指令正在更新,其新版本将在几年后生效。虽然这在技术上是正确的,但Cookie似乎也受到了GDPR的影响。在某种程度上我低估了这种影响。
当你在Google上搜索“GDPR cookie”时,你会很快意识到:(A)没有太多的信息;(B)对这个问题没有太多的技术理解。
人们似乎一致认为,GDPR确实改变了cookie的处理方式。更具体地说-追踪饼干。这是30场独奏会:
(30)自然人可与其设备、应用程序、工具和协议提供的在线标识符相关联,例如因特网协议地址、cookie标识符或射频识别标签等其他标识符。这可能留下痕迹,特别是与服务器接收的唯一标识符和其他信息相结合时,这些痕迹可用于创建自然人的概况并加以识别。
跟踪cookie是如何工作的-第三方(通常是一个广告网络)给您一个代码片段,您放置在您的网站上,例如,显示广告。然而,该代码段调用“home”(向第三方域发出请求)。如果第三方以前在您的计算机上使用过,它已经创建了一个cookie。在Facebook的例子中,因为您已经登录到了Facebook,所以他们有带有Facebook标识符的cookie。因此,这个cookie(带标识符)是与请求一起发送的。请求还包含页面中的所有详细信息。实际上,您是由一个标识符(在facebook和google中是完全识别的,而不是像其他广告网络那样的一些随机匿名标识符)唯一标识的。

浙公网安备 33010602011771号