1 | GET /report_synchronizer_*/_search |
字符串根据时区转时间戳
语录
- 任何软件工具都应该遵循一个原则:做对的操作应该很容易,做错的操作应该很难。
– 《论平台工程》
- 人生是一个长板问题:人生不必在乎那些不重要的事情,没必要为了挫折和拒绝而沮丧,都会过去的。你要做的是向前看,拼命争取一次大的成功,让它足够大、更大,只要一次就够了。
https://github.com/ruanyf/weekly/blob/master/docs/issue-254.md
- 变化才是世界永远的主题,能够在新变化中找出共性与关键,是优秀工程师的必备能力。
ggr服务搭建
创建一个 GGR 容器实例
1 | docker run -d --name ggr -p 8088:4444 -e TZ=America/Los_Angeles -v /etc/grid-router/:/etc/grid-router/akamai/:ro aerokube/ggr:1.5.4 |
如何更新 GGR 配置文件?
如上面命令文件目录的影射,配置文件的根目录:/etc/grid-router/
配置文件所在目录地址
hubLink: http://test:123456@10.1.49.12:8083/wd/hub
/etc/grid-router/quota/test.xml
文件名 test,便是用户名 。
/etc/grid-router/users.htpasswd
用于指定用户名-密码。
配置文件各个节点说明
具体文件内容:
1 | <qa:browsers xmlns:qa="urn:config.gridrouter.qatools.ru"> <browser name="chrome" defaultVersion="latest"> <version number="latest"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> <version number="98.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> <version number="90.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> <version number="83.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> <version number="80.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> <version number="70.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> <version number="65.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> </browser> <browser name="MicrosoftEdge" defaultVersion="108.0"> <version number="108.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> </browser> <browser name="firefox" defaultVersion="107.0"> <version number="107.0"> <region name="1"> <host name="172.16.139.28" port="8081" count="1"/> <host name="172.16.139.29" port="8081" count="1"/> <host name="172.16.139.26" port="8081" count="1"/> <host name="172.16.139.27" port="8081" count="1"/> <host name="172.16.139.25" port="8081" count="1"/> <host name="172.16.139.37" port="8081" count="1"/> </region> </version> </browser> </qa:browsers> |
GGR 配置如何不停机更新?
在平常新增浏览器,或者在某个 selenoid 新增浏览器版本,则需要更新配置文件新增
1 | // 修改配置文件 vim /etc/grid-router/quota/test.xml // 发送更新配置指令(官方提供的方法) docker kill -s HUP ggr |
架构图
K8S中的HPA.md
架构师具备的能力.md
查看运行时对象大小
1 | // JDK 原生 API |
docker_tips
ES原理
ES 原理
ES全称ElasticSearch,是一个分布式搜索引擎,同时也是一个Nosql数据库,存放的数据格式类似JSON,跟MongoDB有些类似,
MongoDB事务型应用层面适用于OLTP,ElasticSearch更偏向于OLAP,本身不支持事务。
实现特点
- 存储数据有序存储
- 将数据与索引分离
- 压缩数据
主要解决问题
- 检索相关数据
- 分布式存储
- 返回统计结果
- 速度快
读写底层原理
协调节点
负责读写请求的路由,例如查询的文档不在当前机器上,则需要路由到其他 ES 机器上。
四个核心操作
- flush
- refresh
- translog
- merge
海量数据下 ES 的性能优化
系统文件缓存(File System Cache),保证写入的数据量等于或者略大于系统内存(剩余)
避免在 ES 联表查询,写入 ES 时,应该就聚合数据。
只存储与搜索相关的字段,减少文档大小
冷热数据
深分页,改为使用 Scroll
存储数据有序存储
将数据与索引分离
压缩数据
主要解决问题
检索相关数据
分布式存储
返回统计结果
速度快