解决方案:seo诊断分析工具,不要在用免费的外贸SEO工具了
优采云 发布时间: 2022-11-02 07:31解决方案:seo诊断分析工具,不要在用免费的外贸SEO工具了
外贸SEO工具很多,很多人到处找免费工具,但我不推荐。当你用过付费工具的时候,你会发现比起SEO的结果,付费工具的钱是值得的!我不做工具也不卖工具,我只是分享我在外贸SEO中使用的有用的关键词工具。
外贸SEO工具
之前,我们用了大约6篇文章来介绍外贸SEO前的准备工作。从今天开始,正式的SEO工作已经开始。作为第一步,我们从 关键词 的选择开始。
尤其重要的是要知道 关键词 是一个有价值的区别。
一些 SEO 公司可能会告诉您,我们可以为您提供尽可能多的单词和尽可能多的单词。当你听到几十万字的排名时,你觉得它很强大。
但这是不对的。
因为文字是有价值的区分。如果您选择的词没有被搜索到,或者根本没有价值,那么在第一页上排名更多的词是没有意义的。
如何确定我们的关键词?
首先对我们的行业、产品、服务、原材料和功能进行粗略筛选。整理好这些之后,就需要工具了。外贸人员必备工具,Google SEO必备工具,Ahrefs。这个关键词工具的功能非常全面,比如关键词分析、热门内容分析、竞争对手分析、网站排名监控、网站seo现场诊断等.,使用这个工具,基本上可以解决我们在SEO方面的绝大多数需求的工具。通过你自己的初步分析,一些分类的关键词,再加上Ahrefs的竞争对手分析、行业分析等,最终确定你的关键词。
那么 Ahrefs 是如何使用的呢?
首先,这是一款付费软件,Semrush也有同样的功能,都是SEO中非常有用的工具。价格也不便宜,Semrush 每月几百美元不等,Ahrefs 也不便宜。这笔费用对于企业来说可能不算什么,但对于个人站长来说也是一笔不小的投入。悄悄告诉大家,在万能宝藏中可以找到,说不定会有惊喜。
Ahrefs 的使用类似于添加统计工具。您必须具有服务器权限。上传一个验证权限的工具到服务器后,设置监控周期(监控周期一般是一周,也就是谷歌的更新时间),就可以得到网站的评分。根据分数,有具体项目加分,哪些项目扣分,最终得到网站的SEO修改方向。
解决方案:实时数据采集必备工具debezium
一、简介
随着业务的发展,之前的离线批量计算方式已经不能满足需求,因为延迟太长了。随着flink等实时计算工具的出现,实时采集也成为大数据工作中非常重要的一环。.
如今,企业的数据源大致分为两类:存储在各种关系数据库中的业务数据、网站或APP生成的用户行为日志数据
日志数据可以通过flume、kafka采集等工具实现实时,但是关系型数据库的同步还是以批处理为主。
当关系型数据库的表数据达到一定程度时,批量同步耗时过长,增量同步无法满足实时性要求。
MySQL可以通过binlog进行实时同步,技术比较成熟,但是不能解决SQLserver、Oracle、postgresql等数据库的问题。
就算有Kafka这样的流式数据分发订阅平台,有flink这样的实时计算平台,有redis这样的高效读写数据库,如果实时采集问题解决不了,则无法实现整体实时链接。
好在国外有一个开源工具,实现了市面上各种常用数据库数据更新日志的获取,就是debezium
插件模式
2. 简介
Debezium 是一组分布式服务,可捕获数据库中的更改,以便您的应用程序可以查看这些更改并做出响应。Debezium 将每个数据库表中的所有行级更改记录在一个更改事件流中,应用程序可以简单地读取这些更改事件,以按照它们发生的顺序查看更改事件。
Debezium有两种运行模式,一种是在kafka connect中作为插件继承,另一种是作为独立服务运行(incubating)
服务器模式
今天我们要介绍的是插件模式。
3. 部署
插件模式首先要求集群上已经安装了zookeeper和kafka,kafka可以连接上游数据库。我使用flink消费kafka中的日志,并实时写入mysql。
所以还需要部署flink集群和mysql数据库
具备以上所有条件后,就可以开始部署 debezium
1.下载安装包
#以mysql为例,下载debezium-connector-mysql-1.4.2.Final-plugin.tar.gz
wget https://repo1.maven.org/maven2/io/debezium/debezium-connector-mysql/1.4.2.Final/debezium-connector-mysql-1.4.2.Final-plugin.tar.gz
在kafka安装文件夹中创建connectors文件夹,将下载的debezium插件解压到connectors
2.创建话题
创建 kafka 连接需要三个主题:connect-offsets、connect-configs、connect-status
kafka-topics --zookeeper ip1:2181,ip2:2181,ip3:2181 --create --topic connect-status --replication-factor 2 --partitions 3
3.编写kafka connect配置文件
创建 connect-distributed.properties 并分发到所有节点
#kafka-connect配置文件
# kafka集群地址
bootstrap.servers=ip1:9092,ip2:9092,ip3:9092
# Connector集群的名称,同一集群内的Connector需要保持此group.id一致
group.id=connect-cluster
# 存储到kafka的数据格式
<p>
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
# 内部转换器的格式,针对offsets、config和status,一般不需要修改
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
# 用于保存offsets的topic,应该有多个partitions,并且拥有副本(replication)
# Kafka Connect会自动创建这个topic,但是你可以根据需要自行创建
offset.storage.topic=connect-offsets
offset.storage.replication.factor=2
offset.storage.partitions=3
# 保存connector和task的配置,应该只有1个partition,并且有多个副本
config.storage.topic=connect-configs
config.storage.replication.factor=2
# 用于保存状态,可以拥有多个partition和replication
status.storage.topic=connect-status
status.storage.replication.factor=2
status.storage.partitions=3
# Flush much faster than normal, which is useful for testing/debugging
offset.flush.interval.ms=10000
# RESET主机名,默认为本机
#rest.host.name=
# REST端口号
rest.port=18083
# The Hostname & Port that will be given out to other workers to connect to i.e. URLs that are routable from other servers.
#rest.advertised.host.name=
#rest.advertised.port=
# 保存connectors的路径
#plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors,
plugin.path=/opt/cloudera/parcels/CDH/lib/kafka/connectors</p>
4.启动kafka-connect
注意:所有节点都必须执行
cd /opt/cloudera/parcels/CDH/lib/kafka
bin/connect-distributed.sh -daemon config/connect-distributed.properties
###jps 可看到 ConnectDistributed 进程
5.通过POST URL提交连接请求
多个表名用逗号分隔,格式为db.table,参数中指定的topic为元数据topic,真正的topic名由server_name.db_name.table_name组成
POST:http://ip:18083/connectors
Headers:Content-Type: application/json
Body:{
"name" : "debezium-mysql",
"config":{
"connector.class": "io.debezium.connector.mysql.MySqlConnector",
"database.hostname": "host",
"database.port": "3306",
"database.user": "username",
"database.password": "password",
"database.server.id" :"1739",
"database.server.name": "mysql",
"database.history.kafka.bootstrap.servers": "ip1:9092,ip2:9092,ip3:9092",
"database.history.kafka.topic": "mysql.test",
"database.whitelist": "test",
"table.whitelist":"test.test_table2",
"include.schema.changes" : "true" ,
"mode" : "incrementing",
"incrementing.column.name" : "id",
"database.history.skip.unparseable.ddl" : "true"
}
}
提交完成后,通过 GET :18083/connectors 获取连接器信息
由于debezium没有构建topic的逻辑,kafka需要开启自动生成topic的配置
查看kafka是否生成了对应的topic,上级源表的内容,如果topic中有对应的变更日志记录,则任务配置成功
有很多方法可以使用来自 kafka 的数据。