自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (7)
  • 收藏
  • 关注

原创 golang控制台输入

主要使用fmt、bufio包情况一 输入为确定的一个数字/字符串等,例如:输入2var a1 intfmt.Scan(&a1)情况二 输入俩数字为一组,通过空格隔开,例如:输入2 31)var a, b intfmt.Scan(&a, &b)2)var num1, num2 intfmt.Scanf("%d %d", &num1, &num2)情况三 输入一行内容,可能包含空格或其他特殊符号等,需要获取整行内容,例如:输入hello,welco

2021-03-06 15:38:07 2279

原创 阿里云服务器磁盘使用率告警

最近经常收到阿里云告警短信:云服务器实例发生告警,磁盘使用率(98%>85%),持续时间XX天XX时XX分钟。显然是由于磁盘使用率超过了设置所以进行告警,具体解决如下:(在root账户登录下)1.直接使用df -h的命令,可以查看到磁盘的大小、使用量、剩余量、使用率及是否挂载。应该是/data使用率过高导致告警。2.使用du -sh /data,可以查看data文件夹的大小。查看data文件夹的大小是19G,但是显示已用却是46G。3.存在已删除空间却没有释放的进程,使

2021-02-24 10:45:40 4101

原创 Kafka 命令总结

//列出所有的topickafka-topics --zookeeper localhost:2181 --list//查看指定topic的分区、副本情况kafka-topics --zookeeper localhost:2181 --topic test_topic --describe//消费某个topic,可以从头消费,也可以指定分区或带过滤条件消费kafka-console-consumer --bootstrap-server localhost:9092 --topic test_

2021-02-06 08:42:09 428

原创 redis报错:(error) ERR Protocol error: invalid bulk length

在使用golang实现OAuth2授权码方式时,报错:(error) ERR Protocol error: invalid bulk length。经逐步排查,并借助Redis Monitor命令,发现是redis使用出现了问题,报错指令格式为hmset a a1 "" a2 "hello",因value为空导致报错。代码在本地测试时,连接的是本地的redis,localhost:6379,当执行hmset a a1 "" a2 "hello",不会报错,可正常写入redis;代码部署后,连接的是r

2021-01-26 10:31:26 7763

原创 基于go-oauth2/oauth2实现OAuth 2.0 授权码方式

前言本文基于go-oauth2/oauth2,参考go-oauth2/oauth2/example、go-oauth2/gin-server、llaoj/oauth2,结合beego框架实现OAuth 2.0授权码方式。介绍OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某网站上存储的资源(如邮箱、手机、头像等),而无需将用户名和密码提供给第三方应用。OAuth2.0规定了四种授权方式,授权码、隐藏式、密码式、客户端凭证。本文主要讲解授权码方式的实现。可参考OAuth 2.0

2021-01-20 19:33:44 9017 6

原创 Spark消费Kafka数据按日期写入Hdfs

需求:将同一天的数据写入到同一个文件中,文件以当天日期命名。版本:spark 2.2.0,hadoop 3.0.0,scala 2.11实现:1)pom.xml<dependencies> <dependency> <groupId>org.apache.spark</groupId> ...

2020-12-24 11:01:35 1094

原创 获取Kafka topic指定时间段的数据

需求:给定topic,获取某个时间段某些过滤条件下的数据。思路:1)获取分区和offset,通过命令查询,类似kafka-console-consumer --bootstrap-server 127.0.0.1:9092 --topic test_topic --partition 1 --offset 255129 | grep "test"; 2)将topic接入elk,通过kibana可视化查询或es接口调用查询; 3)代码实现。 ...

2020-11-23 11:16:15 10803 4

原创 golang 查询 Elasticsearch

说明:本文以日志查询为例,ES集群版本为7.2。实现效果如下:具体步骤如下:1.定义mapping,创建索引PUT log{ "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 0 } }, "mappings": { "properties": { "timestamp": { "type": "date"...

2020-11-16 16:48:05 4891 1

原创 golang切片容量计算

提到切片,我们需要对比数组进行理解:数组类型的值的长度是固定的,切片类型的值是可变长度的;数组可以被叫做切片的底层数组,切片可以看作是对数组的某个连续片段的引用;切片类型是引用类型,数组属于值类型;len表示长度,cap表示容量。数组的容量等于长度;切片的容量不一定等于长度,切片的容量代表了底层数组的长度。本文主要围绕切片的容量进行展开。1)使用make初始化切片s1:=make([]int,5,8) 指明容量,长度为5,容量是8s2:=make([]int,5) 不指明容量,那么和长度是

2020-10-15 10:28:21 2000

原创 Elasticsearch新增用户不能通过Kibana登录

场景1.创建角色francisco_rolePOST /_security/role/francisco_role{ "cluster": [ "monitor" ], "indices": [ { "names": [ "hamlet" ], "privileges": [ "all" ] } ]}2.创建用户francisco并分配角色francisco_rolePOST ...

2020-10-09 17:36:06 1468

原创 golang的panic、recover、defer

1.什么是panic、recover、defer?panic:运行时恐慌,在程序运行时抛出的异常。recover:专用于恢复panic,平息运行时恐慌。recover()函数无需任何参数,会返回一个空接口类型的值,这个值是即将恢复的panic包含的值。一般与defer使用。defer:defer语句是被用来延迟执行代码的,延迟到该语句所在的函数即将执行结束的那一刻,无论结束执行的原因是什么。2.从panic被引发到程序终止运行的大致过程是什么?产生运行时异常,可以是没意料到的,比如数组越界等,也

2020-09-10 17:38:59 220

原创 Redis 哨兵机制理解

1.什么是Sentinel?Sentinel(哨兵)是Redis的HA解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令。2.sentinel如何与被监视服务器进行通信?1)命令连接sentinel默认会以每十秒一次的频率,向主服务器发送INFO命令,并通过分析INFO命令的回复

2020-09-07 11:28:28 159

原创 Codis哨兵配置主从库不能自动切换问题解决

SUBSCRIBE:客户端可以订阅一个或多个频道,比如SUBSCRIBE "news.it",则说明这三个客户端就是"news.it"频道的订阅者。PUBLISH,向某个频道发送消息,比如PUBLISH "news.it" "hello",向"news.it"频道发送消息"hello"。PSUBSCRIBE:订阅一个或多个模式,从而成为这些模式的订阅者。比如PSUBSCRIBE "news.*"。UNSUBSCRIBE:退订某个或某些频道。比如UNSUBSCRIBE "news.it" "news.m

2020-09-07 09:04:58 759

原创 Redis/Codis主从复制调整及备份与恢复实现

前言此篇文章主要是弥补文章Codis3.2.2集群部署与使用架构缺陷。因为当时主从架构设计为如下表格所示:主服务器 10.2.10.108:6379 10.2.10.109:6379 10.2.10.120:6379 从服务器 10.2.10.108:6380 10.2.10.109:6380 10.2.10.120:6380 最近碰到一个问题,某个服务器宕掉,导致该服务器上的主从全宕掉,且因为数据没有落盘,即使在服务器重启后,重启主从服务器,数据全部丢失

2020-08-28 17:09:02 465

原创 Redis RDB和AOF持久化

RDB持久化1.什么是RDB持久化RDB持久化是通过保存数据库中的键值对来记录数据库状态不同。RDB持久化可以手动执行,也可以根据服务器配置选项定期执行。2.RDB文件的创建和载入RDB文件的创建可以通过两种方式实现:手动执行、根据服务器配置选项定期执行。1)手动执行:RDB文件的生成命令:SAVE,BGSAVE.SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕为止。在服务器进程阻塞期间,服务器不能处理任何命令请求。BGSAVE命令会派生出一个子进程,然后由子进程负责创建RDB

2020-08-27 16:31:08 130

原创 Elasticsearch Scripts总结

前言scripts的语法:"script": { "lang": "...", "source" | "id": "...", "params": { ... } }参数说明:lang:脚本使用的语言,默认是painless。source:脚本的核心部分,id应用于:stored script。params:传递给脚本使用的变量参数。在学习scripts时,发现有许多场景使用,比如update、update-by-query、reindex等,...

2020-07-28 14:30:30 8128

原创 Elasticsearch 跨集群复制的实现

跨集群复制,是发生在集群的索引级别,将一个集群的索引数据可以同步复制到另一个集群。有两种角色,Leader和Follower。其中Leader是数据的源头,Follower是数据的副本方。设置了跨集群复制,那么在Leader方索引发生了增删改等,在Follower方该对应索引数据都能得到及时体现,但是在Follower方是不可对该索引数据进行增删改操作的。下面通过两种方式实现跨集群复制,一种是在kibana中直接通过界面操作,一种是通过es接口实现,两种方式实现的效果是一样的。测试环境两个es集群,

2020-07-14 17:33:10 1634

原创 Elasticsearch 索引的备份与恢复实现

测试环境:一个es7.2集群,名称为test。集群中有一个节点,ip为192.168.52.127。存储库选择本地文件系统。具体实现1.注册Repository首先,在elasticsearch.yml中添加path.repo,启动elasticsearch。cluster.name: testnode.name: node-1path.data: /home/elk/elasticsearch-7.2.0/datapath.logs: /home/elk/elasticsearch-7.2.0/

2020-07-10 15:11:20 2411

原创 Elasticsearch hot&warm架构的简单实现

hot&warm架构,简单说,就是将Elasticsearch集群部署划分为hot数据节点和warm数据节点,适用于time based 索引数据。其中,hot数据节点用于处理不断有文档新写入的索引,warm数据节点用于处理不再有新文档写入,但仍有查询需要的索引。该架构的实现可以参考官网https://www.elastic.co/guide/en/elasticsearch/reference/7.2/shard-allocation-filtering.html具体实现:这里以包含有两.

2020-07-05 09:41:55 1150

原创 Elasticsearch7.2集群的安全性配置

目录集群身份认证集群内部通讯的安全集群与外部间的安全通信集群身份认证说明:访问ES集群需要用户名和密码,否则不能调用接口等。具体实现:这里以单个节点进行演示,ip为192.168.52.1271)elasticsearch.yml初始配置:cluster.name: testnode.name: node-1path.data: /home/elk/elasticsearch-7.2.0/datapath.logs: /home/elk/elasticsearch-7.2.

2020-07-03 10:28:24 2304

原创 Mysql 5.7实现存在则更新,不存在则新增

需求:如果表中存在某行,那么更新即可;不存在某行,那么就新增一条。通常是将主键索引或唯一索引作为判断条件。思路:可以使用Mysql的INSERT ... ON DUPLICATE KEY UPDATE或REPLACE或UPDATE实现。如果希望一条语句实现,可以考虑前两种实现创建一张表,表中包含自增Id和唯一索引email。CREATE TABLE `user_info` ( `Id` smallint(6) NOT NULL AUTO_INCREMENT, `email` varch

2020-07-01 15:00:13 1025

原创 golang omitempty实现嵌套结构体的省略输出

golang在处理json转换时,对于标签omitempty定义的field,如果给它赋得值恰好等于空值(比如:false、0、""、nil指针、nil接口、长度为0的数组、切片、映射),则在转为json之后不会输出这个field。那么,针对结构体中嵌套结构体,如果嵌套结构体为空,是否也会忽略?如果要忽略空结构体输出,怎么处理?情况一:匿名结构体:使用omitempty修饰该匿名结构体中的字段,那么当为空时不会输出type Book struct{ Name string `json:"name

2020-05-26 15:28:44 2644 1

原创 golang同步总结

目录锁条件变量原子操作只会执行一次WaitGroupcontext.Context临时对象池参考资料锁1.互斥锁表示:sync.Mutex,类型sync.Mutex的零值表示了未被锁定的互斥量作用:保证在同一时刻仅有一个线程访问共享数据。规则:1)当对一个已处于解锁状态的互斥锁进行解锁操作的时候,就会引发一个运行时恐慌;2)当对一个已处于锁定状态的互斥锁进行锁定操作时,就会被阻塞;3)对于同一个互斥锁的锁定操作和解锁操作总是应该成对地出现,一般会在锁定互

2020-05-22 10:07:13 417

原创 golang通道总结

目录概念缓冲与非缓冲双向与单向forselectQ & A参考资料概念go语言提倡“以通信作为手段来共享内存”,而channel就是最直接和最重要的体现。channel指通道类型,是Go语言预定义的数据类型之一,使用chan表示通道类型的关键字。channel提供了一种机制:可以同步两个被并发执行的函数,也可以让两个函数通过相互传递特定类型的值进...

2020-04-30 14:12:46 539 1

原创 gin框架的简单使用

gin框架是基于golang语言的web框架。如果用gin实现服务,有下述的场景需求,那么可以继续阅览:服务针对不同的路由,有不同的验证规则。比如服务对应PC管理端和移动端,分别有不同的验证规则,涉及路由组、中间件拦截验证; 请求记录、操作日志按照时间每天记录到文件中。涉及中间件日志操作; 跨域问题,涉及中间件跨域; API的使用,涉及常用的POST,PUT,GET,DELETE。代码...

2020-04-03 16:51:55 1800

原创 Codis报错:proxy accept new connection failed [error]: too many open files

Codis频繁报错:proxy accept new connection failed [error]: accept tcp4 0.0.0.0:19000: accept4: too many open files原因:连接数过多解决:参考https://github.com/CodisLabs/codis/issues/113,思路如下: 1)使用命令查看当前有...

2020-03-19 17:01:05 601 5

原创 Spark应用卡住监控

前言本文基于structured streaming开展。spark应用部署后因集群资源不足等问题导致应用出现‘卡住’现象,如下图所示。我们在应用部署后不可能时时关注应用的运行状况,应用可能卡住一晚、一天甚至更长时间,那么及时发现应用‘卡住’现象,排查卡住原因,也是很有必要的。参考1.spark官网提供了Monitoring Streaming Queries板块。有两种用于...

2020-03-14 09:15:53 661

原创 windows7安装logstash报错

错误1:warning: ignoring JAVA_OPTS= -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.c...

2020-02-28 10:56:25 928 3

原创 Kafka报错org.apache.kafka.common.errors.RecordTooLargeException

Kafka报错:org.apache.kafka.common.errors.RecordTooLargeException: There are some messages at [Partition=Offset]: {testTopic-0=25537140} whose size is larger than the fetch size 1048576 and hence canno...

2020-01-15 17:30:49 4058 1

原创 Ansible快速了解

前言本文依据于课堂《ansible入门到精通》,旨在快速了解ansible。文章篇幅较长,可通过目录快速进入需要了解的部分。目录是什么?工作原理?部署?常用模块?playbook?roles是什么?ansible是自动化运维工具,实现了批量系统配置、批量程序部署、批量运行命令等功能,从而提升运维的管理能力,解决工作中的管理难题。工作原理?运维自...

2020-01-14 15:15:07 277 2

原创 Spark应用中断监控

前言本文主要是围绕spark on yarn cluster模式运行spark应用。在实际应用中,会碰到这种情况,应用被中断、应用未中断但是不执行计算、应用中某些任务失败等。我们将应用部署后,不可能时时都关注,当应用被中断时,怎么能尽快恢复应用的正常运行。我这里采用脚本+服务监控的方式进行维护。实践一般情况下,查看应用的运行情况,我的流程:那么我的脚本+服务监控方式是围绕上述流...

2019-12-26 13:49:18 1424

原创 Hdfs主备切换导致spark应用中断

场景:使用structured streaming消费kafka中数据写入hdfs中说明:集群有两个namenode,分别为node1,node2。起初node1状态为active,在程序中涉及hdfs路径的地方,写的是hdfs://node1:8020/your path。后来集群中node1为standby状态,node2为active状态,spark应用就会中断,除非将hdfs路径修改为...

2019-12-03 14:35:15 443

原创 Angular中echarts与百度地图的结合使用(一)

一、效果图预览及说明图一图二图三实现效果说明:初次加载实现图一效果,即北京到地点1、地点2、地点3的迁徙图;点击北京图标后,实现图二效果,即天安门到首都机场、南苑机场的迁徙图;点击天安门图标,实现图三效果,标记天安门附近的一些位置。当地图缩放后,根据缩放等级不同,显示不同的效果。二、准备知识要实现上述效果需要掌握:Angular框架的了解(https://www....

2019-12-03 14:10:53 4342 3

原创 Spark资源参数调优

目录资源参数参考资料资源参数1)num-executors参数说明:该参数用于设置Spark作业总共要用多少个Executor进程来执行。Driver在向YARN集群管理器申请资源时,YARN集群管理器会尽可能按照你的设置来在集群的各个工作节点上,启动相应数量的Executor进程。这个参数非常之重要,如果不设置的话,默认只会给你启动少量的Executor进程,此时你的Sp...

2019-11-25 10:06:33 212

原创 Logstash写入Syslog及报错解决

Logstash写入到Syslog,配置文件可以参考Syslog output plugin官网实现,这里简单写一个例子:output{ syslog { host => "your host" port => 5140 protocol => "udp" codec => plain { format => "%...

2019-10-23 11:21:09 2920

原创 go mod的使用

使用go mod,注意你所使用的go版本应为11以上。go mod的思想类似于maven:拥抱本地库,使用go mod后,你会发现go modules 下载的包在 GOPATH/pkg/mod。具体使用可查看下面地址。官网https://github.com/golang/go/wiki/Modules不同管理工具对比https://github.com/golang/go/w...

2019-10-15 10:40:14 834

原创 Kafka消费者理解

目录消费者与消费组分区分配策略消费逻辑参数说明消费位置位移提交方式参考资料消费者与消费组消费组是一个逻辑上的概念,它将旗下的消费者归为一类,每一个消费者只隶属于一个消费组。每一个消费组都会有一个固定的名称,消费者在进行消费前需要指定其所属消费组的名称,这个可以通过消费者客户端参数group.id 来配置,默认值为空宇符串。消费者(Consumer)负责...

2019-10-12 17:52:30 363

原创 Kafka生产者理解

目录生产逻辑参数说明发送消息模式代码实现序列化器分区器生产者客户端的内部原理参考资料生产逻辑1)配置生产者客户端参数及创建相应的生产者实例;2)构建待发送的消息;3)发送消息;4)关闭生产者实例。参数说明1)bootstrap.servers:指定连接Kafka 集群所需的broker 地址清单,具体的内容格式为hostl:port...

2019-10-10 14:54:25 239

原创 Spark on YARN的cluster模式

目录YARN架构Spark on YARN的cluster模式常用命令日志查看与处理参考资料YARN架构YARN是Hadoop2.0之后出现的集群资源的管理与任务调度的分布式框架。资源管理:集群中的资源(如内存、cpu)使用情况由主节点ResourceManager管理。从节点NodeManager管理自己所在节点的资源使用情况并报告给主节点Resou...

2019-10-10 09:24:12 733

原创 Kafka删除topic

思路topic中的元数据存储在ZooKeeper中的/brokers/topics和/config/topics路径下,topic中的消息数据存储在log.dir或log.dirs配置的路径下,所以删除topic就需要删除这些路径下的内容。准备工作创建topic:bin/kafka-topics.sh --create --zookeeper bigdata-pro01.wn.co...

2019-09-26 10:36:04 2268

go-json-rest框架实现Golang Restful API项目的开发

使用go-json-rest框架实现Golang Restful API项目的开发

2018-05-08

SQLite简单示例

SQLite简单示例:增加数据,更新指定行数据,删除指定行数据,查看数据,删除数据表等

2016-04-26

安卓数据存储之文件存储

涉及内部存储、外部存储

2016-04-25

ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar

可以帮助获取服务器端webService调用

2015-12-31

axis2-1.6.0-bin和axis2-1.6.0-war

axis2-1.6.0-bin和axis2-1.6.0-war相关资源

2015-12-25

axis2-eclipse-codegen-plugin-1.6.0与axis2-eclipse-service-plugin-1.6.0

axis2-eclipse-codegen-plugin-1.6.0和axis2-eclipse-service-plugin-1.6.0有关jar包下载,解压后直接将这两个jar包放到eclips下的plugins目录下,重启eclipse即可

2015-12-25

startActivityForResult用法实例

有关startActivityForResult用法实例,比较清晰简单

2015-12-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除