- 博客(43)
- 收藏
- 关注
转载 Systemd
Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍如何用于实战。一、由来历史上,Linux 的启动一直采用init进程。下面的命令用来启动服务。$ sudo /etc/init.d/apache2 start# 或者$ service apa...
2019-09-20 16:25:00
284
转载 Thanos 开源的大规模Prometheus集群解决方案
开发Thanos的目的在一定的集群规模下,一些问题将在负载超出一个普通的Prometheus集群承载能力后不断被暴露出来。我们如何能够以一个经济可靠的方式来存储PB级别的历史数据?我们能够不牺牲查询响应时间便做到这一点吗?我们能够通过一个单一的查询接口访问到不同Prometheus服务器上的所有指标数据吗?再者,我们能否以某种方式合并通过Prometheus高可用集群采集到的复制数据...
2019-09-20 15:19:00
1189
转载 alertmanager 报警规则详解
这篇文章介绍prometheus和alertmanager的报警和通知规则,prometheus的配置文件名为prometheus.yml,alertmanager的配置文件名为alertmanager.yml报警:指prometheus将监测到的异常事件发送给alertmanager,而不是指发送邮件通知通知:指alertmanager发送异常事件的通知(邮件、webhook等)...
2019-09-20 10:39:00
15352
转载 linux du 命令详解
du常见命令参数12345678910111213141516171819202122232425262728293031323334353637383940414243444546...
2019-09-19 17:36:00
828
转载 linux df 命令
df命令用于查看磁盘的分区,磁盘已使用的空间,剩余的空间1、用法df [选项] [文件..]2、命令选项-a,--all 全部文件系统-h,--human-readable 以以合适的单位来显示信息-H,--si 与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes-i,--inodes ...
2019-09-19 17:35:00
113
转载 linux free 命令详解
free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。如果加上 -h 选项,输出的结果会友好很多:有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数:$ free -h -s 3上面的命令每隔 3 秒输出一次内存的使用情况,直到你按下 ctrl + c。由于 free 命令本身比较简单,所...
2019-09-19 17:20:00
4474
转载 linux top 命令查看内存及多核CPU的使用讲述
查看多核CPU命令mpstat-PALL和sar-PALL说明:sar-PALL>aaa.txt重定向输出内容到文件aaa.txttop命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的WE...
2019-09-19 17:16:00
181
转载 linux top 命令各参数详解
简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列...
2019-09-19 17:14:00
190
转载 Consul 集群部署
Consul架构说明上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Server端。Server之间通过局域网或广域网通信实现数据一致性。每个Server或Client都是一个consul agent。Consul集群间使用了GOSSIP协议通...
2019-09-19 15:51:00
754
转载 Consul-Template
Consul-Template简介Consul-Template是基于Consul的自动替换配置文件的应用。在Consul-Template没出现之前,大家构建服务发现系统大多采用的是Zookeeper、Etcd+Confd这样类似的系统。Consul官方推出了自己的模板系统Consul-Template后,动态的配置系统可以分化为Etcd+Confd和Consul+Cons...
2019-09-19 15:39:00
821
转载 golang template 详细说明
概述text/template实现基于数据的文本化输出。功能和jsp、blade.php(laravel)一样,用于动态生成文件,只不过golang用于生产HTML的模块为html/template1运行过程将template模板应用于结构化的数据,使用注解语法引用数据结构中的元素(struct中的feild或map中的key)并显示它们的值。template在执行过程中遍历数据结构并且...
2019-09-19 14:22:00
543
转载 Prometheus 安装和配置
Prometheus的安装和配置Linux环境下下载二进制分发包,解压后就安装完了。1. 启动解压后,在解压后的路径内执行命令./premetheus 即可以使用默认配置启动Prometheus应用。默认使用的是同目录下的prometheus.yml文件可以通过浏览器访问http://宿主机ip:9090 测试启动情况。2. 配置执行 promet...
2019-08-02 23:21:00
405
转载 Prometheus (普罗米修斯)
DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯。Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统。Prometheus完全开源的,被很多云厂商(架构)内置,在这些厂商(架构)中,可以简单部署Prometheus,用来监控整个云基础架构设施。比如DigitalOcean或Docker都是普罗米修斯作为基础监控。...
2019-08-02 23:17:00
1360
转载 BTrace 动态追踪技术
直接操作字节码Java是软件开发人员能读懂的语言,class字节码是JVM能读懂的语言,class字节码最终会被JVM解释成机器能读懂的语言。无论哪种语言,都是人创造的。所以,理论上(实际上也确实如此)人能读懂上述任何一种语言,既然能读懂,自然能修改。只要我们愿意,我们完全可以跳过Java编译器,直接写字节码文件,只不过这并不符合时代的发展罢了,毕竟高级语言设计之始就是为我们人类所服...
2019-08-02 23:07:00
174
转载 Java探针
使用java代理来实现java字节码注入使用JavaSsist可以对字节码进行修改使用ASM可以修改字节码使用Java代理和ASM字节码技术开发java探针工具可以修改字节码备注:javassist是一个库,实现ClassFileTransformer接口中的transform()方法。ClassFileTransformer 这个接口的目的就是在class被装载到JVM之前将c...
2019-08-02 22:59:00
238
转载 分布式全局唯一ID生成策略
为什么分布式系统需要用到ID生成系统在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据库的分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。概括下来...
2019-08-01 22:46:00
812
转载 分布式主键 Leaf-snowflake
Leaf-snowflake方案完全沿用snowflake方案的bit位设计,即是“1+41+10+12”的方式组装ID号。对于workerID的分配,当服务集群数量较小的情况下,完全可以手动配置。Leaf服务规模较大,动手配置成本太高。所以使用Zookeeper持久顺序节点的特性自动对snowflake节点配置wokerID。Leaf-snowflake是按照下面几个步骤启动...
2019-08-01 21:59:00
1299
转载 分布式主键 Leaf-segment
数据库生成以MySQL举例,利用给字段设置auto_increment_increment和auto_increment_offset来保证ID自增,每次业务使用下列SQL读写MySQL得到ID号。begin;REPLACE INTO Tickets64 (stub) VALUES ('a');SELECT LAST_INSERT_ID();commit;...
2019-08-01 21:56:00
1127
转载 分布式主键 SNOWFLAKE (雪花算法)
SNOWFLAKE雪花算法是由Twitter公布的分布式主键生成算法,它能够保证不同进程主键的不重复性,以及相同进程主键的有序性。在同一个进程中,它首先是通过时间位保证不重复,如果时间相同则是通过序列位保证。 同时由于时间位是单调递增的,且各个服务器如果大体做了时间同步,那么生成的主键在分布式环境可以认为是总体有序的,这就保证了对索引字段的插入的高效性。例如MySQL的Innod...
2019-08-01 20:29:00
364
转载 Prometheus监控 rate与irate的区别
对官网文档的解读irate和rate都会用于计算某个指标在一定时间间隔内的变化速率。但是它们的计算方法有所不同:irate取的是在指定时间范围内的最近两个数据点来算速率,而rate会取指定时间范围内所有数据点,算出一组速率,然后取平均值作为结果。所以官网文档说:irate适合快速变化的计数器(counter),而rate适合缓慢变化的计数器(counter)。根据以上算法我们也可以理解,...
2019-07-30 15:09:00
949
转载 Prometheus 查询语言
Prometheus 查询语言PromQL(Prometheus Query Language)是 Prometheus 自己开发的表达式语言,语言表现力很丰富,内置函数也很多。使用它可以对时序数据进行筛选和聚合。1. PromQL 语法1.1 数据类型PromQL 表达式计算出来的值有以下几种类型:瞬时向量 (Instant vector): 一组时序,每个时序...
2019-07-30 14:59:00
647
转载 mysql 安装过程及注意事项
1.1.下载:我下载的是64位系统的zip包:下载地址:https://dev.mysql.com/downloads/mysql/下载zip的包:下载后解压:D:\软件安装包\mysql-5.7.20-winx641.2.配置环境变量:变量名:MYSQL_HOME变量值:E:\mysql-5.7.20-winx64path里添加:%MYSQL...
2019-07-28 10:48:00
158
转载 MySQL 用户管理:添加用户、授权、删除用户
添加用户 以root用户登录数据库,运行以下命令: create user xixi identified by '123456'; 上面的命令创建了用户xixi,密码是123456。在mysql.user表里可以查看到新增用户的信息: select user,host,authentication_string from mysql.user whe...
2019-07-28 10:39:00
278
转载 mysqladmin 常用用法
mysqladmin 工具的使用格式:mysqladmin [option] command [command option] command ......参数选项:-c number 自动运行次数统计,必须和 -i 一起使用-i number 间隔多长时间重复执行0)每个两秒查看一次服务器的状态,总共重复5次。[root@test-huanqiu ~]# mysqlad...
2019-07-28 10:09:00
175
转载 mysql 重置密码
1、停止数据库 net stop mysql2、打开cmd窗口,运行如下命令: mysqld --skip-grant-tables3、打开第二个cmd,连接mysql,运行如下命令: mysql -uroot -p 遇到需要输入密码时,直接回车,就可以进去4、连接好mysql之后,运行命令 show databases;5、继续使...
2019-07-28 10:03:00
92
转载 Linux 查看端口状态netstat
Linux 查看端口状态netstatnetstat命令参数: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。 -n : 不进行DNS轮询,显示IP(可以加速...
2019-07-27 17:11:00
226
转载 CAT 管理平台MVC框架
Cat服务器在初始化CatServlet 之后, 会初始化 MVC,MVC也是继承自AbstractContainerServlet, 同样也是一个 Servlet 容器,这是一个非常古老的MVC框架,当时Spring MVC 还并不成熟,但是所有MVC框架的核心思想都是一致的。在初始化完CatServlet之后,我们就会调用 MVC 的父类 AbstractContaine...
2019-07-27 13:53:00
301
转载 Cat 配置与数据库操作
CAT配置在CAT中,有非常多的配置去指导监控的行为,每个配置都有相应的配置管理类来管理,都有一个配置名,配置在数据库或者配置文件中都是以xml格式存储,在运行时会被解析到具体实体类存储。我们选取一个配置的初始化代码来分析:public class ServerFilterConfigManager implements Initializable { @In...
2019-07-27 13:35:00
1493
转载 CAT服务端初始化
Cat模块Cat-client : cat客户端,编译后生成 cat-client-2.0.0.jar ,用户可以通过它来向cat-home上报统一格式的日志信息,可以集成到 mybatis、spring、微服务 dubbo 的监控等等流行框架。Cat-consumer: 用于实时分析从客户端提供的数据。在实际开发和部署中,Cat-consumer和Cat-ho...
2019-07-20 23:58:00
961
转载 CAT简介与部署
前言: CAT是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,除了与点评RPC组件融合的很好之外,他将会能与Spring、MyBatis、Dubbo 等框架以及Log4j 等结合,支持PHP、C++、Go等多语言应用,基本接入了美团点评上海侧所有核心应用。目前在中间件(MVC、RPC、数据库、缓存等)框架中得到广泛应用,为美团点评各业务线提供系统的性能指标、健康状况、监控告...
2019-07-20 23:44:00
2532
转载 CAT客户端原理
cat客户端部分核心类message目录下面有消息相关的部分接口internal目录包含主要的CAT客户端内部实现类;io目录包含建立服务端连接、重连、消息队列监听、上报等io实现类;spi目录为上报消息工具包,包含消息二进制编解码、转义等实现类。消息的组织 - 消息树大众点评Cat使用消息树(MessageTree)组织日志,下面为消息树的类定义我们...
2019-07-20 13:05:00
491
转载 maven mybatis generator的使用
一、 背景 在使用mybatis时我们需要重复的去创建pojo类、mapper文件以及dao类并且需要配置它们之间的依赖关系,比较麻烦且做了大量的重复工作,mybatis官方也发现了这个问题,因此给我们提供了mybatis generator工具来帮我们自动创建pojo类、mapper文件以及dao类并且会帮我们配置好它们的依赖关系。二、 配置 1、引入mybati...
2019-07-12 17:07:00
204
转载 Maven archetype 脚手架
一、背景 maven是一个很好的代码构建工具,采用“约定优先于配置”的原则进行项目管理,相信很多的java开发者应该都了解maven并可能在工作当中都是通过maven来管理项目的,在创建的项目的时候,我们往往会使用maven内置的项目骨架也就是archetype来快速生成项目结构。但是在一个团队做开发的过程中,可能仅仅依靠maven预先提供的archetyp可能是不够的,团队之间协...
2019-07-12 11:49:00
280
转载 RocketMQ事务消息实现原理上篇
1发送事务消息的入口为:TransactionMQProducer#sendMessageInTransaction: public TransactionSendResult sendMessageInTransaction(Message msg, Object arg) throws MQClientException { if (null ...
2019-07-07 21:32:00
214
转载 Spring boot 2.x 集成Rocketmq实现事物消息
1.引入相关Maven依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x...
2019-07-07 15:51:00
337
转载 Windows环境下安装RocketMQ
一.预备环境 1.系统 Windows 2. 环境 JDK1.8、Maven、Git二. RocketMQ部署 1.下载 1.1地址:http://rocketmq.apache.org/release_notes/release-notes-4.5.1/ 1.2选择‘Binary’进行下载 2. 配置 2.1 系统环境变量配置...
2019-07-07 15:14:00
670
转载 spring-kafka生产者消费者配置详解
一、生产者1、重要配置 # 高优先级配置 # 以逗号分隔的主机:端口对列表,用于建立与Kafka群集的初始连接 spring.kafka.producer.bootstrap-servers=TopKafka1:9092,TopKafka2:9092,TopKafka3:9092 # 设置大于0的值将使客户端重新发送任何数据,一旦这些数据发送失败。注意,...
2019-06-12 22:58:00
1667
转载 MQ削峰限流
MQ的作用1)解耦:在项目启动之初是很难预测未来会遇到什么困难的,消息中间件在处理过程中插入了一个隐含的,基于数据的接口层,两边都实现这个接口,这样就允许独立的修改或者扩展两边的处理过程,只要两边遵守相同的接口约束即可。2)冗余(存储):在某些情况下处理数据的过程中会失败,消息中间件允许把数据持久化知道他们完全被处理扩展性:消息中间件解耦了应用的过程,所以提供消息入队...
2019-06-11 17:49:00
1075
转载 计数器
概要 限流可以认为服务降级的一种,限流就是限制系统的输入和输出流量已达到保护系统的目的。一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。计数器算法 计数器是最简单粗暴的算法。比如某个服务最多只能每秒钟处理100个请求。我们可以设置一...
2019-06-11 16:47:00
162
转载 令牌桶(Token Bucket)
概要 限流可以认为服务降级的一种,限流就是限制系统的输入和输出流量已达到保护系统的目的。一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。令牌桶算法 令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要...
2019-06-10 21:39:00
1235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人