月星墙的博客

Better Code, Better Life


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 站点地图

  • 搜索

CAT

发表于 2019-06-28 | 分类于 devops
简介 CAT是一个实时和接近全量的监控系统(调用链监控,不适用于全链路监控),它侧重于对Java应用的监控。提供系统的性能指标、健康状况、监控告警等功能 github、深入详解美团点评CAT跨语言服务监控 CAT服务端不可用时,不会影响客户端执行;待服务端重启成功后客户端会将不可用期间的日志重新发给服务端 客户端将监控日志上传到服务端,服务端先存储在内存中,定期会将上一个小时的数据落到数据库中(hourlyreport、hourly_report_content),天/周/月数据则在凌晨进行计算落库 报表类型 Transaction报表:一段代码运行时间、次数、失败率、QPS,比如URL、Cache、SQL执行次数和响应时间 Event报表:一行代码运行次数、失败次数,如Exception出现次数。Event报表的整体结构与Transaction报表几乎一样,只缺少响应时间的统计 Problem报表:根据Transaction/Event数据分析出来系统可能出现的异常,包括访问较慢的程序等 Heartbeat报表:JVM内部一些状态信息,比如Memory,Thread等 Business报表:使用Metric实现业务监控报表,比如订单指标,支付等业务指标。与Transaction、Event、Problem不同,Business更偏向于宏观上的指标,另外三者偏向于微观代码的执行情况 ...
阅读全文 »

Helm | K8s包管理器

发表于 2019-06-22 | 分类于 devops
简介 Helm 、Helm Docs、Helm 指南(中文) 是 Kubernetes 上的包管理器 Helm组成:Helm客户端、Tiller服务器、Charts仓库 原理:Helm客户端从远程Charts仓库(Repository)拉取Chart(应用程序配置模板),并添加Chart安装运行时所需要的Config(配置信息),然后将此Chart和Config提交到Tiller服务器,Tiller服务器则在k8s生成Release,并完成部署 官方Charts仓库、官方Charts仓库展示、Kubeapps Charts仓库(速度较快) 国内docker镜像 安装Helm客户端及服务 安装Helm客户端 1234567# 下载helm命令行工具到master节点curl -O https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gztar -zxvf helm-v2.14.2-linux-amd64.tar.gzmv linux-amd64/helm /usr/local/bin/# 查看帮助helmrm -rf linux-amd64 # 删除下载文件 安装Tiller服务器(安装在k8s集群中) ^1 12345678910111213141516171819# 为了安装服务端tiller,还需要在这台机器上配置好 ...
阅读全文 »

网络

发表于 2019-06-20 | 分类于 linux
Linux网络brctl网桥操作 集线器、网桥、交换机、路由器、网关等术语参考 ^12 brctl 网桥操作 123yum install -y bridge-utils# 显示所有网桥brctl show ip信息/路由信息 ip a ip信息 ip a/ip addr 可以查看网卡的ip、mac等,即使网卡处于down状态,也能显示出网卡状态,但是ifconfig查看就看不到 ip addr show eth0 查看指定网卡eth0的信息 显示结果中作用域说明:scope {global|link|host}] global: 全局可用,即两个接口进来的数据都可以响应,是默认状态 link: 仅链接可用,进来的数据只有直接相连的那个接口能够响应 host: 本机可用,即只能自己访问 ip r 路由信息 查看路由信息 ip r/ip route; route也可显示路由信息 12345678ip r # 显示如下# 表示去任何地方,都发送给网卡eth0,并经过网关192.168.17.103发出;metric 100表示路由距离,到达指定网络所需的中转数default via 192.168.17.103 dev eth0 proto static metric 100# 表示发往 172.16.0.0/16 这个网段的包,都由网卡docker0发出,src 172. ...
阅读全文 »

Kubernetes

发表于 2019-06-01 | 分类于 devops
简介 官网、github、Doc 相关文章:https://github.com/rootsongjc/kubernetes-handbook/ 、 https://www.cnblogs.com/linuxk/category/1248289.html (视频相关) 、 https://feisky.gitbooks.io/kubernetes/content/ 知识图谱 国内镜像参考http://blog.aezo.cn/2017/06/25/devops/docker/ 本文若无特殊说明,kubernetes版本均为 v1.15.0 对所有环境进行集成的rancher、适用于物联网/树莓派的轻量级Kubernetes版本k3s 背景 Kubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF(Cloud Native Computing Foundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,Kubernetes可以帮你将系统自动地达到和维持在这个状态。Kubernetes作为云原生应用的基石 自动化运维演进 Ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,它是 ...
阅读全文 »

虚拟化服务器搭建 | 私有云

发表于 2019-05-30 | 分类于 linux
简介Hypervisor、KVM Hypervisor 是一种将操作系统与硬件抽象分离的一种技术实现方法,一种运行在物理服务器和操作系统之间的中间软件层(可以是软件程序,也可以是固件程序)。Hypervisor是所有虚拟化技术的核心,也叫虚拟机监视器VMM(Virtual Machine Monitor)^1 KVM(Kernel-base-virtual machine)实际上是类Linux发行版内核中提供的虚拟化技术(内核级虚拟化),可将内核直接充当Hypervisor来使用,在内核中独立存在可动态加载。注意其处理器(CPU)自身必须支持虚拟化扩展 QEMU 是一个主机上的VMM,通过动态二进制转换来模拟CPU,并提供一系列的硬件模型,使guest os认为自己和硬件直接打交道,其实是同QEMU模拟出来的硬件打交道,QEMU再将这些指令翻译给真正硬件进行操作。通过这种模式,guest os可以和主机上的硬盘,网卡,CPU,CD-ROM,音频设备和USB设备进行交互。但由于所有指令都需要经过QEMU来翻译,因而性能会比较差 QEMU-KVM:KVM负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm并不能模拟其他设备,还必须有个运行在用户空间的工具才行。KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,QEMU模拟IO设备(网卡,磁盘等),组成了Q ...
阅读全文 »

webpack

发表于 2019-05-29 | 分类于 web
简介 webpack中文网 webpack Chunk:webpack打包的过程种,生成的JS文件,每一个JS文件我们都把它叫做Chunk。如main.js的chunk Name是main chunks默认值是async,异步代码才进行分割;如果我们想同步和异步的都进行代码分割,需要改为all 配置webpack.config.js123456789101112131415161718192021222324const path = require('path');module.exports = { mode: 'development', // JavaScript 执行入口文件 entry: './src/main.js', // webpack打包后的输出配置 output: { // 把所有依赖的模块合并输出到一个 bundle.js 文件 filename: 'bundle.js', // 输出文件都放到 dist 目录下 path: path.resolve(__dirname, './dist'), // 默认webpack打包出来的js无法被其他模块引用。设置此参数后,入口模块返回的 module.exports 设置到环境中 ...
阅读全文 »

微服务组件

发表于 2019-05-28 | 分类于 arch
微服务基本介绍 架构演进 单体架构:复杂度逐渐变高、部署速度慢、阻碍技术创新、无法按需伸缩 SOA(Service Oriented Architecture) ^1 面向服务的架构,他是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能,各个服务之间通过网络调用 SOA中的ESB(企业服务总线),简单 来说 ESB 就是一根管道,用来连接各个服务节点。为了集成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通 微服务(架构选型说明见下文) 其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是”业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成 微服务特点 微服务可独立运行在自己的进程里 一系列独立运行的微服务构成整个系统 每个服务独立开发维护 微服务之间通过REST API或RPC等方式通信 去中心化:每个微服务有自己私有的数据库持久化业务数据;每个微服务只能访问自己的数据库,而不能访问其它服务的数据库;某些业务场景下,需要在一个事务中更新多个数据库。这种情况也不能直接访问其它微服务的数据库,而是通过对于微服务进行操作 优点:易于开发和维护,启动快,技术栈不受限制,按需伸缩,DevOps 挑战: 最终 ...
阅读全文 »

ELK

发表于 2019-05-26 | 分类于 bigdata
ELK简介 官网、官方中文文档、docs ELK平台主要有由ElasticSearch、Logstash和Kiabana三个开源免费工具组成 Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 Logstash 可以对日志进行收集、过滤,并将其存储供以后使用 Kibana Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志 elasticsearch-curator,主要用于管理elasticsearch索引和快照 Curator是有python开发的,之后被elasticsearch合并 Elasticsearch Elasticsearch文档 基础概念 Lucence:一个Jar包,主要用做分词。其集群实现较难维护 ES的正排索引和倒排索引 正排索引是从文档到关键字的映射(已知文档求关键字:doc_id, terms),倒排索引是从关键字到文档的映射(已知关键字求文档:term, doc_ids) 二者都是在索引创建的时候生成的,会保存在磁盘,如果内存足够大也会保存在内存中 倒排索引以字词为关键字进行索引,可查询到这个字词的所有文档,它记录该文档的ID和字符在 ...
阅读全文 »

FTP

发表于 2019-03-19 | 分类于 devops
FTP简介 ftp/sftp是协议 vsftpd/pure-ftpd是ftp服务器(只支持ftp协议) xftp/ftp(yum install ftp)是ftp客户端 sftp localhost 输入密码后登录ftp exit退出(无需安装vsftp,一般服务器都默认支持,相当于windows用xftp以sftp形式登录ftp服务器) FTP客户端 xftp(仅支持Window) WinSCP(仅支持Window) 官网 支持脚本化操作. 有时候Windows的ftp命令不行可考虑使用此脚本123456789101112131415161718192021@echo offset FTP_HOST=192.168.1.100set FTP_PORT=211set FTP_USER=administratorset FTP_PASSWORD=111111set FTP_REMOTE_PATH=/set LOCAL_PATH=D:\test\*set UPLOAD_PATH=D:\test\demo.txtset REMOTE_UPLOAD_PATH=/testREM 使用WinSCP软件连接FTP服务器,先"put" 命令上传指定路径文件后,再 "get" 命令,下载 FTP 服务器根目录的所有文件,同时将日志记录到指定文件中 (echo option batch abo ...
阅读全文 »

并发编程

发表于 2018-12-05 | 分类于 java
简介 Java 的并行 API 演变历程 1.0-1.4 中的 java.lang.Thread 5.0 中的 java.util.concurrent(JUC) 6.0 中的 Phasers 等 7.0 中的 Fork/Join 框架 8.0 中的 Lambda(如Stream) https://www.cnblogs.com/dolphin0520/category/1426288.html 源码阅读技巧 跑不起来不读 解决问题即可 理解别人的思路 一条线索到底 无关细节略过 一般不读静态 数据结构基础,设计模式基础 串行、并发、并行 串行是完成了A任务之后才能开始B任务 并发的关键是你有处理多个任务的能力,不一定要同时 并行的关键是你有同时处理多个任务的能力 多线程与高并发 https://github.com/bjmashibing/JUC 线程基础线程基础 创建线程 new (T1 extends Thread).start() new Thread(new MyRunnable()).start(),或者JDK8:new Thread(()->{…}).start(); 线程的相关方法(sleep/yield/join) Thread.sleep() ^4 sleep是Thread类的本地final方法,无法被重写 sleep和wait都会暂 ...
阅读全文 »
1…678…17
smalle

smalle

167 日志
14 分类
153 标签
RSS
欢迎关注公众号:阿壹族 欢迎关注公众号:阿壹族
© 2016 - 2025 smalle    
由 Hexo 强力驱动
主题 - NexT.Mist
站长统计
AD    
阿里云大礼包
©AEZO.CN    
圣骑科技
【One能抽屉】小程序
杂货铺(省钱小助手)