- 博客(159)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 linux crontab使用
命令crontab [-u username] //省略用户表表示操作当前用户的crontab -e (编辑工作表) -l (列出工作表里的命令) -r (删除工作作)任务# cron表达式说明:* * * * *- - - - -| | | | || | | | +----- 周几 (0 - 7) (Sunday=0 or 7) OR
2020-08-27 10:03:29 253
原创 springboot获取文件的MD5
public static String getMd5(String path) { String md5 = ""; try (FileInputStream inputStream = new FileInputStream(ResourceUtils.getFile(path))) { md5 = DigestUtils.md5DigestAsHex(inputStream); } catch (Exception e) ...
2020-08-21 17:40:49 2361
原创 MYSQL密码安全策略
密码复杂度校验MySQL5.6.6版本之后增加了密码强度验证插件validate_password.-- 查看插件是否安装mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'validate_password';+-------------------+---------------+| PLUGIN_NAME | PLUGIN_STAT
2020-08-20 14:55:35 794
原创 pushgateway安装使用
PushGateway使用说明Prometheus采用定时Pull模式,可能由于子网络或者防火墙的原因,不能直接拉取各个Target的指标数据,此时可以采用各个Target往PushGateway上Push数据,然后Prometheus去PushGateway上定时pull其次在监控各个业务数据时,需要将各个不同的业务数据进行统一汇总,此时也可以采用PushGateway来统一收集,然后Prometheus来统一拉取Prometheus每次从PushGateway拉取的数据,并不是拉取周期内用户推送
2020-08-12 14:08:31 1101
原创 mysql【主从同步工具percona-toolkit安装使用】
percona-toolkit介绍percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括:检查master和slave数据的一致性有效地对记录进行归档查找重复的索引对服务器信息进行汇总分析来自日志和tcpdump的查询当系统出问题的时候收集重要的系统信息percona-toolkit工具中最主要的三个组件分别是:pt-table-checksum 负责监测mysql主从数据一致性pt-table-sync
2020-08-06 10:06:46 481
原创 mysql【主从同步工具Maatkit安装使用】
问题说明mysql主从同步时难免出现问题导致数据不一致情况.此时需要手动将主从数据同步.Maatkit是一个开源的工具包,为mySQL日常管理提供了帮助,它包含很多工具,这里主要说下面两个:mk-table-checksum : 用来检测master和slave上的表结构和数据是否一致的;mk-table-sync : 在主从数据不一致时,用来修复数据的;先主后从有效保证表一致的工具,不必重载从表而能够保证一致。上面两个perl脚本在运行时都会锁表,表的大小取决于执行的快慢,勿在高峰期间运行
2020-08-06 10:06:04 1058 1
原创 mysql【监控指标采集mysqld-exporter】
说明prometheus监控插件mysqld_exporter可以采集mysql指标并告警展示.步骤本文使用docker部署的方式创建用户并授权CREATE USER 'exporter'@'%' IDENTIFIED BY '123456';GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'exporter'@'%';GRANT SELECT ON performance_schema.* TO 'exporter'@'%';运行mysqld
2020-08-05 14:59:20 2821
原创 docker【hosts新增记录】
通过参数 --add-host来添加域名和IP信息到容器的/etc/hosts文件中。例如:docker run -d --name test --add-host=addr.com:10.10.18.11 redis:latest
2020-08-03 18:04:33 631
原创 mysql【半同步复制模式】
复制模式MySQL主从复制包括异步模式、半同步模式、GTID模式以及多源复制模式,默认是异步模式.异步复制(Asynchronous replication)所谓异步模式指的是MySQL 主服务器上I/O thread 线程将二进制日志写入binlog文件之后就返回客户端结果,不会考虑二进制日志是否完整传输到从服务器以及是否完整存放到从服务器上的relay log(中继日志)中,这种模式一旦主服务(器)宕机,数据就可能会发生丢失。全同步复制(Fully synchronous replicat
2020-08-03 18:03:35 426
原创 mysql【主从复制模式,且从节点只读】
问题双主之间复制如果网络中断或者其它原因导致不可用,此时在不同主上修改了同一条数据,就会存在数据不一致的情况。解决办法过滤到已知错误#slave-skip-errors=all # 忽略复制产生的错误#slave-skip-errors=1062,1032,1060 # 跳过已知错误,主键冲突、表已存在等错误代码如1062,1032,1060等但是这样数据不一致的问题还是存在.不用双主模式,改成主从模式,且从节点只能读不能写关闭双向复制,设置单向复制,一主一从# 从节点设置不能写
2020-08-03 18:03:06 806
原创 mysql复制出现问题【GTID模式】
非GTID模式下当BIN-LOG里面出现错误导致主从不能同步的时候,-- 错误状态的部分截图mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.41.141
2020-08-03 18:02:23 406
原创 mysql【双主模式+haproxy+keepalived高可用】
说明前文仅仅通过mysql双主 + keepalived实现高可用,这种方式在一台出现问题的时候可以切换,但是正常情况下只有一台服务使用,无法实现负载均衡,本文引入haproxy实现正常情况下也能有负载均衡的效果.配置安装haproxyyum install haproxy修改haproxy配置文件默认目录:/etc/haproxy/haproxy.cfg#----------------------------------------------------------------
2020-07-28 17:26:05 581
原创 mysql【双主模式+keepalived高可用】
说明mysql双主模式下,在任意一台mysql上写数据都会同步到另一台上,本章通过keepalived VIP实现如果一台服务挂了会自动切换到另一台mysql上.配置# 安装keepalived,centos默认安装了yum install keepalived -y修改双主机/etc/keepalived/keepalived.conf配置.global_defs { router_id mysql}vrrp_script chk_mysql { script "kill
2020-07-28 17:25:08 414
原创 mysql【双主模式配置】
前提准备主机系统IPmysqlmysql01centos7192.168.41.141已部署5.7.31mysql02centod7192.168.41.142已部署5.7.31原理MySQL中有一种日志叫做 bin日志(二进制日志),这个日志会记录下所有修改了数据库的SQL语句。主从复制的原理其实就是从服务器向主服务器请求这个日志文件,主服务器会把这个 bin日志复制到从服务器上执行一遍,这样从服务器上的数据就和主服务器上的数据相同了。[外链图片转存失
2020-07-28 17:24:30 687
原创 mysql部署【用rpm方式】
部署说明Linux上安装软件常见的几种方式:源码编译压缩包解压(一般为tar.gz)编译好的安装包(RPM、DPKG等)在线安装(YUM、APT等)部署方式简单程度:YUM > RPM > tar.gz > 源码,本文介绍RPM方式.部署步骤删除旧包# 查找rpm -qa | grep -i mysql# 删除rpm -ev mysql-libs-* --nodeps下载RPM包mysql-5.7.31-1.el7.x86_64.rpm-bundl
2020-07-28 17:23:04 472
原创 mysql部署【用tar.gz方式】
部署说明Linux上安装软件常见的几种方式:源码编译压缩包解压(一般为tar.gz)编译好的安装包(RPM、DPKG等)在线安装(YUM、APT等)部署方式简单程度:YUM > RPM > tar.gz > 源码,本文介绍tar.gz方式.部署步骤卸载已有# 通过rpm方式安装的rpm -qa|grep mysql# 如果有, 卸载rpm -e --nodeps xxx# 查找mysql文件夹whereis mysqlfind / -name m
2020-07-28 17:22:22 659
原创 route命令
route命令route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效
2020-07-28 17:21:47 484
原创 mysql最大连接数
查看show variables like '%max_connections%';数值过小会经常出现ERROR 1040: Too many connections错误show global status like 'Max_used_connections';-- Threads_connected: 打开的连接数,Threads_running:激活的 正在使用的连接数show status like 'Threads%';-- 查看最大缓存的连接数量,可以适当增加show v
2020-07-21 09:18:10 312 1
原创 java二维码工具Google.zxing的使用与测试
引入依赖<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version></dependency>编写工具类public class QRCodeUtil { // 设置二维码长宽 private static int
2020-07-10 11:03:32 536
原创 构建java8最小docker镜像
问题openjdk和oracle jdk一些情况下并不兼容;openjdk镜像很小只有一百朵兆,但是oracle jdk搜到的镜像都很大.步骤下载最新的oracle jre 8https://javadl.oracle.com/webapps/download/AutoDL?BundleId=242050_3d5a2bb8f8d4428bbe94aed7ec7ae784上传到linux并解压[root@node1 jdk8]# tar -xvzf jre-8u251-linux-
2020-07-09 14:28:03 3518 3
原创 spring boot2.0集成邮件发送功能
引入依赖<!-- 注意版本号,测试2.0.3版本有严重问题,启动失败 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.1.1.RELEASE</version></dependency&
2020-07-08 16:30:00 392
原创 Java验证码实现-EasyCaptcha
验证码EasyCaptcha介绍EasyCaptcha是一个Java图形验证码库,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。使用<dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2</version></d
2020-07-07 08:59:38 2276
原创 数字黑洞495,6174,...
1955年,卡普耶卡(D.R.Kaprekar)研究了对四位数的一种变换:任给出四位数k0,用它的四个数字由大到小重新排列成一个四位数m,再减去它的反序数rev(m),得出数k1=m-rev(m),然后,继续对k1重复上述变换,得数k2.如此进行下去,卡普耶卡发现,无论k0是多大的四位数,只要四个数字不全相同,最多进行7次上述变换,就会出现四位数6174。因此这项研究在国际数学界又被称为“马丁猜想—6174问题”。有趣的数字6174随机生成四个不完全一样的数字(0000,1111,2222,等排除.
2020-07-02 16:59:10 1942
原创 k8s【coredns解析问题分析解决】
问题[root@master busybox]# kubectl get pod -nkube-system -owideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScoredns-5c98db65d4-8zjps 1/1 Running 1 2d
2020-07-02 10:55:01 4367
原创 influxDB内存优化
查询series cardinality命令InfluxDB官网说明:Why does series cardinality matter?InfluxDB maintains an in-memory index of every series in the system. As the number of unique series grows, so does the RAM usage. High series cardinality can lead to the operating sy
2020-06-30 15:44:11 5845 2
原创 spring cloud gateway部署到k8s上UrlEncode问题
问题k8s中ingress使用的是ingress-nginx.项目中用到了spring cloud gateway做API网关,部署环境有docker、k8s等. 测试出现一个问题:请求的URL路径中如果出现了中文参数,如http://localhost:8080/test?param=你好,如果部署在docker或者裸机上,后台服务接收到的参数param是你好,但是如果部署在k8s上,后台接收到的参数可能是UrlEncode之后的%E4%BD%A0%E5%A5%BD,这不是后台需要的. 也可以在
2020-06-30 09:54:56 1129
原创 spring cloud gateway中redis一直打印重连日志问题
问题spring cloud gateway集成了redis后,一直出现重连的日志,如下:gateway | 2020-06-28 10:56:11.133 INFO 1 --- [xecutorLoop-2-2] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was 192.171.0.9/192.171.0.9:6379gateway | 2020-06-28 10:
2020-06-28 11:26:58 12625 3
原创 url路径中文参数乱码问题
问题http://localhost:8080/test?name=管理这样参数存在中文情况,spring boot代码public RoleResponse selectById(@RequestParam(value = "name", required = false) String name){ return roleService.selectByName(name);}可能存在接收到的name是%E7%AE%A1%E7%90%86这样的情况,这是浏览器自动为URL做了UrlEn
2020-06-22 14:30:15 892
原创 docker-compose常用命令
命令说明build构建或重建服务help命令帮助kill杀掉容器logs显示容器的输出内容port打印绑定的开放端口ps显示容器pull拉取服务镜像restart重启服务,指定服务rm删除停止的容器,指定服务run运行一个一次性命令scale设置服务的容器数目start开启服务,指定服务stop停止服务,指定服务up创建并启动容器,-d放到后台运行...
2020-06-22 11:30:31 316
原创 mysql模糊查询的几种方式
like-- 没有用到索引select * from t_user where user_name like '%test%';-- 用到索引但是不通用select * from t_user where user_name like 'test%';locate-- LOCATE('substr',str,pos)-- pos不填:返回substr在str中第一次出现的位置,如果不存在,返回值为0-- pos存在:返回pos之后第一次出现的位置select * from t_user
2020-06-18 15:20:42 473
原创 vmware虚拟机意外关机后启动报错
虚拟机意外关机后启动报错以独占方式锁定此配置文件失败。可能其它正在运行VMware进程在使用此配置文件解决办法任务管理器 -> 启动 -> VMware Tray Process -> 禁用重启机器VMware Tray Process -> 启用 -> 重启打开虚拟机...
2020-06-18 15:04:23 689
原创 flink部署【使用k8s部署】
准备k8s环境准备相关YAMLflink-configuration-configmap.yamlapiVersion: v1kind: ConfigMapmetadata: name: flink-config labels: app: flinkdata: flink-conf.yaml: |+ jobmanager.rpc.address: flink-jobmanager taskmanager.numberOfTaskSlots: 2 b
2020-06-11 13:36:53 1932 1
原创 flink部署【高可用HA部署】
多机部署Flink standalone 集群部署前要注意的要点每台机器上配置好java以及JAVA_HOME环境变量最好挑选一台机器,和其他机器ssh 打通每台机器上部署的Flink binary的目录要保证是同一个目录如果需要用hdfs,需要配置HADOOP_CONF_DIR环境变量配置上配置JobManager机器:masterTaskManager机器:node1,node2,node3修改Flink binary目录的conf子目录中的masters和slaves两个文件
2020-06-11 13:36:11 2149
原创 k8s【如果忘记master节点init后join命令怎么办】
格式首先我们可以知道kubeadm join格式如下:kubeadm join 192.168.99.11:6443 --token 4qcl2f.gtl3h8e5kjltuo0r \ --discovery-token-ca-cert-hash sha256:7ed5404175cc0bf18dbfe53f19d4a35b1e3d40c19b10924275868ebf2a3bbe6e获取tokenmaster节点执行:[root@master ~]# kubeadm token li
2020-06-04 17:24:32 4560
原创 k8s【PostStart钩子】
PostStart容器生命周期钩子(Container Lifecycle Hooks)监听容器生命周期的特定事件,并在事件发生时spec: containers: - name: lifecycle-demo-container image: nginx lifecycle: postStart: exec: command: ["/bin/sh", "-c", "echo Hello from the postStart han
2020-06-04 15:27:31 5375
原创 hbase之namespace
查看namespacehbase(main):008:0> list_namespaceNAMESPACE default hbase test3 row(s)Took 0.0327 seconds default:创建表时未指定命名空间的话默认挂在default下。查看namespace所有表hbase(main):009:0> list_namespace_tables "test"
2020-05-12 17:19:46 386
原创 hdfs常用命令
命令使用方法说明lshadoop fs -ls返回文件详细信息或者目录列表lsrhadoop fs -lsr递归返回文件详细信息或者目录列表,类似ls -Rcathadoop fs -cat URI返回文件内容chgrphadoop fs -chgrp [-R] GROUP URI改变文件所属组chmodhadoop fs -chmod [-R]改变文件的权限chownhadoop fs -chown [-R]改变文件拥有者p...
2020-05-12 17:18:54 261
原创 hadoop单机版部署测试
下载hadoop-2.7.7.tar.gz配置ssh无密码登录# 测试ssh localhost, 默认需要密码[root@node1 hadoop]# ssh localhostThe authenticity of host 'localhost (::1)' can't be established.ECDSA key fingerprint is SHA256:Ii9RadytomW4X2LEvMQwRxoOTeGgxfNbOgwXrc/wwZI.ECDSA key fingerp
2020-05-12 17:18:03 406
原创 rowkey字典排序
排序规则rowkey从高位到低位依照ASCII码表排序;如A排在a前面,a排在aa ab前面;如果rowkey一样,按照column family:qualifier排序;如果column family:qualifier一样,按照时间戳排序;充分利用rowkey会排序特性如果热点数据的rowkey前缀一样,则很容易被存储在同一RegionServer上,这样就会造成访问的性能瓶颈;rowkey前缀提供一个随机字符串,可以更好的分布在集群中,但是失去了排序特性;rowkey应该设计的精简
2020-05-12 17:17:09 769
DiffMerge_4_2_0_697.rar
2020-05-18
Flink_SQL开发指南_cn_zh-CN.pdf
2020-04-30
jetstack/cert-manager CRDs
2020-01-07
年会策划ppt模板
2017-12-24
张孝祥Java高新技术_73_源代码
2017-12-24
Dubbo分布式服务框架视频教程(18G)
2017-12-24
URL高效匹配算法如何实现?
2021-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人