cms检索服务配置文档

cms检索服务开发测试环境做了迁移:

10.12.68.97,10.12.68.98,10.12.68.99 zk,kafka测试,开发共用

10.12.68.100 ,10.12.68.101 canal,canal-adapter测试

10.12.68.102,10.12.68.103,10.12.68.104 es测试

开发环境:

10.12.68.105 canal,canal-adapter开发
10.12.68.106 es开发

开发环境ip: 10.12.68.106
1.kafka创建 topic
以开发环境为例 (测试环境叫cms)
./kafka-topics.sh --create --zookeeper 10.12.68.97:2181 --topic cms-dev --replication-factor 1 --partitions 1
扩展分区:

./kafka-topics.sh --alter --zookeeper 10.12.68.97:2181 --topic se-do-data-test --partitions 1

标红部分根据实际需求做相应改动。
线上环境1副分,32分区,
测试环境1副本,2分区,
预发环境1副本,8分区
开发环境1副本,1分区
--topic topic名称
--partitions 线上可分16个分区
查看topic描述:
 ./kafka-topics.sh --describe --zookeeper 10.12.68.97:2181 --topic cms-dev
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group g1 --describe
./kafka-console-producer.sh --broker-list localhost:9092 --topic  cms-dev
消费:
./kafka-console-consumer.sh -bootstrap-server localhost:9092 --topic  cms-dev --from-beginning
2.canal配置
/apps/canal/conf/canal.properties
canal注册zk地址(测试环境连接相应的zk)
canal.zkServers = 10.12.68.97:2181,10.12.68.98:2181,10.12.68.99:2181
kafka地址:(测试环境连接相应的kafka)
canal.mq.servers = 10.12.68.97:9092,0.12.68.98:9092,0.12.68.99:9092
创建mysql实例目录:
以开发环境为例:/apps/canal/conf/CMS_DEV10.12.52.159
在目录 下的 instance.properties
#数据库ip
canal.instance.master.address=10.12.52.159:3306
canal.instance.dbUsername=testuser
canal.instance.dbPassword=testuser
#环境使用的topic
canal.mq.topic=cms-dev
#和创建的topic分区数有关

canal.mq.partitionsNum=1

3.adapter:
application.yml
mq信息:
mqServers: 10.12.68.97:9092,0.12.68.98:9092,0.12.68.99:9092#or ro
定义一个srcDataSource
cms:
url: jdbc:mysql://10.12.52.159:3306/cms?useUnicode=true
username: testuser
password: testuser
topic信息:
- instance: cms-dev # canal instance Name or mq topic name
es信息:
- name: es
hosts: 10.12.68.106:9200 # 127.0.0.1:9200 for rest mode
properties:
mode: rest # transport # or rest
# security.auth: test:123456 # only used for rest mode
cluster.name: ooo-cluster
es目录创建 一个yml文件,名字起的有意义 (测试环境叫cms.yml)
以测试环境为例cms_content_text_123456.yml)
dataSource信息
dataSourceKey: cms
topic名字:
destination: cms-dev
索引名:测试环境叫cms
_index: cms_site_123456
5.初始化es mapping
curl -XPUT 10.12.68.106:9200/cms_site_123456 -H 'Content-Type:application/json' -d @mapping.json
创建mapping.json 文件

{
"mappings": {
"CMS_CONTENT": {
"dynamic_templates": [{
"str_symbol": {
"match": "*es_symbol_*",
"match_mapping_type": "string",
"mapping": {
"type": "text",
"analyzer": "ik_max_word",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
},
{
"str_text": {
"match": "*es_text_*",
"match_mapping_type": "string",
"mapping": {
"type": "text",
"analyzer": "ik_max_word"
}
}
},
{
"str_integer": {
"match": "*es_integer_*",
"match_mapping_type": "string",
"mapping": {
"type": "long"
}
}
},
{
"str_float": {
"match": "*es_float_*",
"match_mapping_type": "string",
"mapping": {
"type": "doule"
}
}
},
{
"str_date": {
"match": "*es_date_*",
"match_mapping_type": "string",
"mapping": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss.SSS"
}
}
},
{
"str_multi": {
"match": "*es_multi_*",
"match_mapping_type": "string",
"mapping": {
"type": "keyword"
}
}
},
{
"str_json": {
"match": "*es_json_*",
"match_mapping_type": "string",
"mapping": {
"type": "text"
}
}
}
],
"properties": {
"TID": {
"type": "long"
},
"CID": {
"type": "long"
},
"TENANT_ID": {
"type": "keyword"
},
"VERSION": {
"type": "long"
},
"SORT": {
"type": "long"
},
"STATUS": {
"type": "long"
},
"RCID": {
"type": "long"
},
"TOP": {
"type": "long"
},
"TYPE": {
"type": "long"
},
"CREATE_DATE": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ||epoch_millis"
},
"UPDATE_DATE": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ||epoch_millis"
},
"CONTENT": {
"type": "text",
"analyzer": "ik_max_word"
},
"DETAIL": {
"type": "text",
"analyzer": "ik_max_word"
},
"TEXT_CONTENT": {
"type": "text",
"analyzer": "ik_max_word"
},
"TEXT_DETAIL": {
"type": "text",
"analyzer": "ik_max_word"
},
"SYSTAG": {
"type": "long"
},
"SYSTAG_DATE": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ||epoch_millis"
}

}
}
}

}

(如果删除索引结构需要,重新优化设置)优化refresh时间,优化total_fields等:

curl -XPUT 'http://10.12.68.106:9200/cms_site_123456/_settings' -H 'Content-Type:application/json' -d'{ "refresh_interval": "100ms" ,
"index.mapping.total_fields.limit": 10000000 }'

初始化数据:

curl -XPOST 'http://10.12.68.105:8081/etl/es/cms_content_text_123456.yml'

按照时间同步(-1代表不匹配任务租户):

curl -XPOST 'http://10.12.68.105:8081/etl/es/cms_content_text_123456.yml' -d 'params=-1;2020-02-25 10:00:53'

按照租户同步,如1600035223(日期要取一个较大的时间):

curl -XPOST 'http://10.12.68.105:8081/etl/es/cms_content_text_123456.yml' -d 'params=1600035223;2025-02-25 10:00:53'

同步修复数据方式:

1.直接删除索引重建mapping,全量同步数据
2.只删除全部数据,保留结构。(数据量大时可能需要很长时间,此时可采用方式1)(标红部分替换成对应环境变量)
curl -XPOST  'http://10.12.68.106:9200/cms_site_123456/_delete_by_query?pretty' -H 'Content-Type:application/json' -d '
{ "query": { "match_all": {} }
}'
3.只删除指定租户的数据(标红部分替换成对应环境变量)
curl -XPOST'http://10.12.68.106:9200/cms_site_123456/_delete_by_query?pretty' -H 'Content-Type:application/json' -d '
{
"query": {
"match_phrase": {
"TENANT_ID": "1600035223"
}
}
}'
举例:
 cms 测试环境:
curl -XPOST 'http://10.12.68.100:8081/etl/es/cms_content_test.yml'
(cms预发环境):
curl -XPOST 'http://10.20.21.249:8081/etl/es/cms_content_pre.yml' -d 'params=-1;2020-07-01 10:00:53'
cms线上环境 :
curl -XPOST 'http://10.20.34.88:8081/etl/es/cms_content_prod.yml' -d 'params=-1;2020-05-17 10:00:53'
(0)

相关推荐

  • 分享settings和mapping的意义

    关于大数据settings和mapping的意义有哪些有不少的小伙伴不是很清楚,本篇文章就将大数据settings和mapping的意义分享给大家.下面我们一块来看一下. 一般不需要指定mapping ...

  • C++11S/MIME:具有安全功能的简单MIME解析器和生成器

    这是我的简单MIME解析器和生成器的版本2,该版本使用C++11元素和Win32API进行快速处理. 对于S/MIME,库现在使用我的AdES. 从此处包括QP解码器. 单个消息生成器 // Sing ...

  • C#拆分中文和数字字符串

    比如要拆分"呵呵呵90909086676喝喝999",下面当type=0返回的是中文字符串"呵呵呵,喝喝",type=1返回的是数字字符串"90909 ...

  • 搜索引擎springboot集成(elasticSearch)

    各位小伙伴们,今天是今年的最后一天,这是我今年的最后一篇博客,在这里祝大家新年快乐!本次讲的是近几年比较流行的search搜索引擎,本文写的比较粗略,希望大家看了会有所收获,如若写错,请在评论区指出, ...

  • 【windows】【消息中间件】【安装】Elasticsearch

    准备工作 elasticsearch的下载地址:https://www.elastic.co/cn/downloads/elasticsearch ik分词器的下载地址:https://github. ...

  • pytest文档40-pytest.ini配置用例查找规则(面试题)

    前言 面试题:pytest如何执行不是test开头的用例?如执行 xxx_*.py这种文件的用例. pytest.ini 配置文件可以修改用例的匹配规则. pytest命令行参数 cmd打开输入pyt ...

  • pytest文档45-allure添加环境配置(environment)

    前言 在 allure 报告首页 ENVIRONMENT 显示 'There are no environment variables' 没有环境变量的配置信息. 环境变量配置可以添加报告相关的配置参 ...

  • pytest文档64-内置 pytestconfig 动态添加和获取 pytest.ini 配置参数

    前言 前面讲 pytestconfig 的时候,可以获取到 pytest.ini 里面的配置参数. 我们在写项目自动化用例的时候,有一些配置参数希望能加到配置里面,如configid, product ...

  • 关于Tesla内部技术文档Model3电量和配置的困惑

    最近TMC有网友发了两张Tesla内部技术文档,主要是关于Model3长续航版和标准版电量和配置,让人非常困惑,具体见下. 从图中可以看出,M3共有两种可选电池包,分别为长续航版M3的电量为74kWh ...

  • 课件:剂量及置换液配置.pptx 文档全文预览

    CRRT剂量及置换液配置空心纤维膜血液入口横截面透析液和滤出液出口肾小球透析液入口血液出口血液滤过器 VS 肾单元 CVVH原理 肾小球滤过率(GFR)单位时间内肾小球滤过的血浆量正常成人约120ml ...

  • 石墨文档基于 Kubernetes 的微服务实践

    在 2014 年 6 月 Google 开源了 Kubernetes 后,经过这几年的发展,已逐渐成为容器编排领域的事实标准, 可以称之为云原生时代的操作系统,它使得基础设施维护变得异常简单.在云原生 ...

  • Word文档合并

    7/1分钟汇总100个Word文档,还能实现自动更新,再也不用复制粘贴了 - word办公小技巧 - 西瓜视频  https://www.ixigua.com/6929700285161931275 ...

  • 电脑上怎么合并PDF文档?

    电脑文件夹内如果有相同类型的PDF文档,那么为了便于整理和查看,我们就可以将这些文档合并到一起,下面就是合并方法! 合并之前我们需要在电脑上安装adobe acrobat DC这款PDF阅读器,并且在 ...

  • 让微信群图片、文档永不过期

    让微信群图片、文档永不过期