记录gitbook部署github pages
安装node(目前测试高于10的版本会有问题,安装10即可)这里使用nvm安装及配置安装路径不能有空格和中文 安装gitbook-cli1npm --registry https://registry.npm.taobao.org install gitbook-cli -g gitbook初始化,SUMMARY(可选,可以将现有文件copy至此)1gitbook init 编写SUMMARY文档,book.json,执行构建编译1gitbook install 在gitbook 的项目里点击 settings ,找到 GitHub Pages 在本地环境中先将编译文档到 docs 目录(这里我新增了一个 Blog.md 文件) ,在 SUMMARY.md 中添加访问链接后可直接在左侧的目录树显示命令行中键入gitbook build . docs,将文件都编译到 docs 目录下 然后将编译好的文件 PUSH 到远端仓库123$ git add *$ git commit -m"Inital commit"$ git push orgin mas...
hexo博客展示git提交记录
hexo-githubcalendar方式(推荐)博客参考链接: https://zfe.space/post/hexo-githubcalendar.html github地址: https://github.com/Zfour/hexo-github-calendar hexo-filter-gitcalendar方式(此方式已被弃用)安装1npm install hexo-filter-gitcalendar --save 自建API部署新建项目,fork项目打开dashboard点击新建项目的New Project按钮。点击导入第三方库。 填入Zfour提供的自建 API 项目地址:1https://github.com/Zfour/python_github_calendar_api.git 进入下一步后,点击create, 之后会自动进行deploy, 如整合waline中介绍, 会生成DOMAIN 修改主题配置文件配置文件可参考: https://akilar.top/posts/1f9c68c9/
镜像清理脚本
12345678910111213141516171819202122232425262728293031323334#!/usr/bin/env bash#删除过期镜像,保留最新${retain}个版本(需要确保版本号确实是越新的越大)retain=1cdate=$(date '+%Y-%m-%d_%H:%M:%S')# 镜像中的关键字keyword="docker.io"# 先删除异常停止的docker容器docker rm -f $(docker ps -a | grep Exited | awk '{print $1}')# 先删除名称或标签为none的镜像docker rmi -f $(docker images | grep '<none>' | awk '{print $3}')for service in $(docker images | grep "${keyword&...
探究Dubbo服务注册发现的原理
先来看看看看springboot整合dubbo的常规用法 下面是三个服务的调用链路 项目结构 服务提供者(例如pay-service)需要提供接口服务(@Service) 服务消费者(例如user-service)需要指定服务接口(@Reference),接口多实现可能需要配合version属性 这样就完成了基本的上游对下游服务的调用 探究下底层实现知道dubbo是基于netty实现的,所以它实现这种rpc调用的特点较其他(如feign-http)更适用高并发以及短链接的项目,接下来用netty的代码简单复现下基本的dubbo应用 1这里改一下,dubbo不仅仅只有netty的实现,还支持rmi协议,http协议等等 配合dubbo的服务注册发现链路图 简单捋顺下思路,看看我们需要哪几样东西 一个共享容器,用来存储服务地址(ip,port等),当服务存在多个,还需要负载均衡,以及服务信息修改后的通知功能 为了确定唯一的服务接口信息,需要包含接口名(像dubbo一样,多实现可能需要再加一个version),方法名,方法参数类型列表,方法值列表 ...
ELK常用架构及使用场景
ELK 常用架构及使用场景(摘自创始人) 最简单架构在这种架构中,只有一个 Logstash、Elasticsearch 和 Kibana 实例。Logstash 通过输入插件从多种数据源(比如日志文件、标准输入 Stdin 等)获取数据,再经过滤插件加工数据,然后经 Elasticsearch 输出插件输出到 Elasticsearch,通过 Kibana 展示 Logstash 作为日志搜集器这种架构是对上面架构的扩展,把一个 Logstash 数据搜集节点扩展到多个,分布于多台机器,将解析好的数据发送到 Elasticsearch server 进行存储,最后在 Kibana 查询、生成日志报表等。详见图 2。这种结构因为需要在各个服务器上部署 Logstash,而它比较消耗 CPU 和内存资源,所以比较适合计算资源丰富的服务器,否则容易造成服务器性能下降,甚至可能导致无法正常工作。 Beats 作为日志搜集器这种架构引入 Beats 作为日志搜集器。目前 Beats 包括四种: Packetbeat(搜集网络流量数据); Topbeat(搜集系统、进程和文...
探究Dubbo服务注册发现的原理(二)
在上一篇我提到了dubbo的rpc是基于netty实现的,而且也按照它的原理简单的写了些代码,大致的梳理了一个整体的链路.而这一篇,我打算在上一篇的基础上,把整体的代码运用到正式项目中,看看该怎样实现1这里改一下,dubbo不仅仅只有netty的实现,还支持rmi协议,http协议等等 整体的项目结构如下 服务层链路就是简单的调用消费端接口,然后消费端再去服务端发送远端请求 然后接口层还是按照dubbo的服务最佳实践提到的,分离维护 先来看下消费者的代码(pom就是一个web和我手写的rpc) 12345678910@RestControllerpublic class ConsumerController { @Autowired ApplicationContext applicationContext; @GetMapping("/{name}") public String test(@PathVariable String name){ PayServic...
Elastic APM
Elastic Application Performance Management(APM) 是基于 Elastic Stack 构建的应用性能监控系统 背景目前我们日志系统已经投入生产使用, 对于日常开发有了一个方便排查问题的途径但是, 有些难题不是浮于表面的, 下一步需要做的, 便是找出这些埋于底层的性能及效率的问题.这便是Application Performance Management(APM)出现的目的 目标 收集有关请求的响应时间,数据库查询 外部 HTTP 请求等的详细性能信息 对应用程序的请求期间发生的其他缓慢操作的跟踪 自动收集未处理的错误和异常,错误主要基于堆栈跟踪进行分组,因此可以识别出现的新错误,并密切关注特定错误发生的次数。 价值 依靠apm, 过滤出不合格的接口, 根据具体情况加以改进, 最终实现一个可以满足三高的理想状态我们可以对接口的所有信息进行追溯, 现在我们已经有了trace-id, 可以反向拿"不合格的接口"的trace-id去找日志里找原因 APM serverAPM Server 是用 Go 编写的...
Filebeat多实例部署(守护进程方式[systemd])
安装好filebeat1站内搜索: 记录日志系统的安装-部署-配置-使用文档(1) 复制两个子文件夹下来12cp -r /etc/filebeat{,1}cp -r /etc/filebeat{,2} 修改各自的filebeat.yml1234...(省略inputs之类的)logging.files: # 这里修改文件夹路径 path: /var/log/filebeat1/2 这里主要是查看下机器systemd的path 我这里是/usr/lib/systemd/system 添加两份配置文件 vi /usr/lib/systemd/system/filebeat1.service 1234567891011121314151617[Unit]Description=Filebeat sends log files to Logstash or directly to Elasticsearch.Documentation=https://www.elastic.co/b...
Kibana-dashboard结合Filebeat的使用
利用Filebeat-Moudule监听/传输数据到es并通过Kibana的面板显示 要记得将modules功能打开 filebeat安装完默认会在/etc/filebeat/modules.d下放着许多模块的yml,需要哪个,就执行filebeat modules enable xxx filebeat.yml 1234567891011121314151617181920212223filebeat.config: modules: enabled: true path: modules.d/*.yml reload.enabled: true reload.period: 10s# ------------------------------ kibana Output -------------------------------output.elasticsearch: hosts: ["10.0.2.15:9200"] username: "elastic&quo...
MAT的使用
MAT是什么? MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。 软件地址使用说明1、环境安装好jdk,配置好环境变量JAVA_HOME 运行内存分析器的最低Java版本是 1.8.0 最新版本MAT已经要求17以上 注: 确保你的hprof文件没放在c盘或是桌面,因为mat软件默认会在解析的同时生成一堆文件再hprof文件的相对路径下 2、使用 Memory Analyzer Tools 获取堆存储1、启动进程仅需单击两次。在菜单中,选择“file --> Acquire Heap Dump...” 或者有直接生成好的dump文件,则直接Open Heap Dump ,打开即可; 2、选择Acquire Heap Dump后。您可以看到正在运行的Java进程;选择你所需...
