自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

会飞的猪

当猪成为程序猿时,努力爬上树冠,鱼跃而下时,猪就会飞啦。。。

  • 博客(50)
  • 资源 (9)
  • 收藏
  • 关注

原创 docker笔记目录

docker笔记目录注:docker学习笔记的顺序请看下面表格,初学者的话建议从第一栏开始看。本次学习docker的目标:1、 安装docker2、 在docker中安装nginx3、 在docker中安装jdk4、 在docker中安装tomcat,并启动项目(含jar包部署)5、 在docker中安装mysql6、 打包docker镜像,生成脚本,可移植docker笔...

2018-12-21 10:42:45 163

原创 JWT的优缺点

1.非高并发系统不建议使用JWT,可采用redis缓存机制,或者session、redis机制,开发成本低、易维护、安全性强。1.无需依赖数据库、Redis等中间件,token自带加密用户、权限信息等,后端直接解析即可获取;2.token过长,在前端页面交互跳转时会遇到token过长无法被传递;1.内网段,作为基础公共服务支撑对外系统输出能力,且要求承载一定并发量;3.安全性差,可解密出用户权限信息,如需解决,需要另外进行加密处理;2.token自带有效期,后端无需存储维护,只需校验;

2023-07-17 09:33:52 1392

原创 JVM信息查询命令

当老年代堆内存满了则触发full GC,这是会STW(stop the world)暂停JVM的所有线程,导致访问停滞,优化JVM其实就是为了防止STW.如:jstat -gcutil pid 1000 或 jstat -gc pid 1000。• 对象等待中:Object.wait() 或 TIMED_WAITING。注:如需监听gc的持续情况,则在后面加上时间(单位毫秒)说明:jstat命令查询JVM的堆内存及GC的统计。:Waiting on condition(重点关注)

2023-03-30 16:23:41 803

原创 1000qps的JVM内存设置多大的内存

JVM堆内存计算

2023-03-08 23:00:00 1279 4

原创 SpringBoot集成screw工具数据库word文档

说明:springboot可以通过集成screw工具生成word文档、Markdown文档、html文档首选需要引入:maven仓库地址https://mvnrepository.com/artifact/cn.smallbun.screw/screw-core<dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId&g

2022-05-13 23:01:05 304 1

原创 如何排查JVM内存占用过高

1、当程序没有内存溢出OOM(out of memory)时注意:jmap需要依赖jdk的devel包查询命令:# jmap -histo pid先用top命令查询程序的pid# top找到pid后# jmap -histo 878193

2022-02-17 14:47:36 4940

原创 Redis的主从同步机制

redis主从数据同步可以分为全量同步和部分同步。每个redis启动时都会生成一个随机字符串RID(replication ID ),从节点怎么判断需要同步多少呢?通过偏移量offset来确定。主节点每次有数据写入,都会在offset上加上写入的字节长度,所以从节点通过比较RID和offset就能确定需要同步多少数据。部分同步:1.从节点保存的主节点RID与主节点的RID一致时,从节点非第一次同步,通过offset把这部分需要同步的数据放入缓冲区,然后异步同步到从节点。全量同步:1.当从节点第一

2022-02-15 10:54:55 1560

原创 Redis单线程为何这么快

1、redis是纯内存操作2、采用了非阻塞的IO多路复用3、单线程避免了多线程频繁的上下文切换的性能损耗因为内存操作速度非常快,cpu对于多线程之间的上下文切换需要时间,反而影响了性能,还不如单线程来得实在。Redis为何称为是单线程模型?因为redis是基于Reactor模式开发了网络事件处理器和文件事件处理器,它是单线程的,所以redis才叫单线程模型。Redis的单线程模型文件处理器的结构包含:多个socket、IO多路复用程序、文件事件分派器和事件处理器(命令处理器、命令回复处理器、连

2022-02-08 10:18:42 1708

原创 springcloud alibaba实战(三)----整合seata1.4.2

说明: 本次通过nacos来整合seata1.4.2版本,除了是新版本外,最大原因是1.4.2版本支持从一个Nacos dataId中获取所有配置信息,比之前版本需要上传几十个配置项相比,兼职不要太爽。seata-server-1.4.2下载: http://seata.io/zh-cn/blog/download.html注意:源码也要下载。下载下来后对seata-server-1.4.2进行解压:修改conf目录下的registry.conf1.先修改seata-server的注册中心配置

2021-11-15 23:30:00 2353 4

原创 springcloud alibaba实战(二)----整合openfeign

说明: 文章一已整合好nacos,但想要服务调用还是有点麻烦,需要先从nacos-server中拿到目标服务的路径,再去访问目标服务,如下图从注册中心nacao的负载均衡接口获取服务实例信息,在通过RestTemplate调用服务, 感觉是不是很麻烦?很不爽?所以如openfeign等中间件就酝酿而生,把这些麻烦的东西给做了,并提供一些其他强大功能。正文:本次整合在atom-api服务中,去调用atom-user服务。1、pom.xml引入openfeign依赖<!--openfein的

2021-10-20 23:15:00 553

原创 springcloud alibaba实战(一)----整合nacos(注册中心、配置中心)

一、注册中心注册中心请求原理图:说明: 看上图就知道注册中心其实还是依赖于第三者nacos-server来进行各大服务的注册及负载均衡的,那实战中,那肯定是需要在微服务中集成nacos配置,并且启动nacos-server服务。1、启动nacos-server本次启动nacos-server采用docker启动,偷点懒哈。找一下docker镜像: `docker search nacos-server` 下载镜像:`docker pull nacos/nacos-server`启动

2021-10-19 23:00:00 566

原创 springcloud alibaba简介

说明:Spring Cloud Alibaba 为分布式应用开发提供一站式解决方案。 它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用 Spring Cloud 开发应用程序。啥意思呢?与Spring Cloud 的区别就是:Spring Cloud Alibaba整合了玩微服务所需的所有组件,需要用到的组件添加进来比较比SpringCloud简单,只需要引入少量的jar和配置就能整合成功,减少了配置且节约了时间,不过整合的组件很多是alibaba自己开源的组件如Sentinel、Nacos

2021-10-18 23:45:00 414

转载 分布式定时任务对比

分布式定时任务对比1. 什么是分布式定时任务把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。2. 常见开源方案elastic-job,xxl-job ,quartz , saturn, opencron ,antareselastic-jobelastic-job 是由当当网基于quartz 二次开发之后的分布式调度解决方案 , 由两个相对独立的子项目Elastic-Job-Lite和Elas...

2021-07-13 14:27:09 359

原创 docker安装单节点ES(elasticsearch)

说明:elasticsearch同样支持docker镜像,该ES使用centos7作为基础镜像;ES镜像官方地址:https://www.docker.elastic.co注意:拉取ES镜像时不支持latest,需要指定tag版本号下载镜像:# docker pull docker.elastic.co/elasticsearch/elasticsearch:7.3.1...

2021-07-13 14:12:06 1061

转载 redis如何做亿级用户登录日活统计

方案一:使用string(排除)如何用合适的数据类型来存储1亿用户的数据,用普通的字符串来存储肯定不行。经过查看一个最简单的kv(key为aaa,value为1)的内存占用,发现为48byte。假设每个用户每天登陆需要占据1对KV的话,那一亿就是(48*100000000)/1024/1024/1024=4.47G。这还是一天的量。方案二:bitmap1、bitmap介绍在redis 2.2.0版本之后,新增了一个位图数据,其实它不是一种数据结构。实际上它就是一个一个字符串...

2021-07-13 14:08:32 1082

原创 大数据量的处理思路

一、分字诀1.用和不用的分开,即常用和不常用的分开2.对数据库存放的数据: 分区、分库、分表3.对文件存放的数据:拆文件4.考虑分批处理原则:尽量每次操作的数据基础减少二、合理利用缓存如对一些统计业务,通过定时任务提前统计好数据,放入缓存中三、数据库优化1.合理设计数据库结构2.合理设计表索引3.数据库集群四、优化算法1.优化操作数据的算法2.优化sql3.考虑使用临时表、中间表(如对一些计算结果啥的,提前统计好存入这些表)五、

2021-07-05 17:30:49 779

原创 zookeeper集群部署节点为奇数的原因(最少3个)

节点奇数的原因:zookeeper集群节点数推荐为奇数(2n+1)个,因为如果为偶数个节点,当有一半节点发生故障时,由于没有足够的节点数来选举新的leader节点(要求半数以上节点选举,不包含半数),会导致整个集群无法工作。如果只能部署两个节点,则不如使用单节点,因为两个节点的集群,只要任意一个节点发生故障,则集群无法工作。最少3个的原因:集群规则为:2N + 1 台,N > 0,即最少需要 3 台。因为 ZK 集群的机制是只要超过半数的节点正常,集群就能正常提供服务。只有在 ZK

2021-06-25 11:29:14 4007 1

转载 zookeeper集群的脑裂问题

说明:zookeeper3.4.6以上不存在脑裂的问题,该版本后的选举算法是FastLeaderElection,即投票超过半数的服务器才能当选为Leader,leader的唯一性。脑裂一般脑裂都是出现在集群环境中的。指的是一个集群环境中出现了多个master节点(类似zookeeper的master、elasticsearch的master节点),导致严重数据问题,数据不一致等等。出现的原因:可能就是网络环境有问题如断开,假死等等,导致一部分slave节点会重新进入崩坏恢复模式,重新选举新.

2021-06-25 11:24:11 454

转载 用大白话给你解释Zookeeper的选举机制

Zookeeper是一个分布式服务框架,主要是用来解决分布式应用中遇到的一些数据管理问题如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。我们可以简单把Zookeeper理解为分布式家庭的大管家,那么管家团队是如何选出Leader的呢?好奇吗,接下来带领大家一探究竟。人类选举的基本原理讲解Zookeeper选举过程前先来介绍一下人类的选举。我们每个人或多或少都经历过几次选举,在投票的过程中可能会遇到这样几种情况:情况1:自己与几个候选人都比较熟,你会将票投给你...

2021-06-25 10:46:48 99

转载 docker限制容器内存

默认情况下容器使用的资源是不受限制的。也就是可以使用主机内核调度器所允许的最大资源。但是在容器的使用过程中,经常需要对容器可以使用的主机资源进行限制,本文介绍如何限制容器可以使用的主机内存。为什么要限制容器对内存的使用?限制容器不能过多的使用主机的内存是非常重要的。对于 linux 主机来说,一旦内核检测到没有足够的内存可以分配,就会扔出 OOME(Out Of Memmory Exception),并开始杀死一些进程用于释放内存空间。糟糕的是任何进程都可能成为内核猎杀的对象,包括 docker d

2020-07-16 16:37:02 928

原创 mac下docker安装fastdfs

说明:本次pull已经整合了fastdfs与nginx的镜像,偷个懒。下面不说原理啦,直接简单粗暴执行命令进行安装。1.下载镜像:docker pull delron/fastdfs注:安装fastdfs需要构建tracker容器与storage容器2.构建tracker容器(跟踪服务器,起到调度的作用)docker run -d -p 22122:22122 --name tracker -v /Users/xxxx/Desktop/开发/soft/fastdfs/tracker:

2020-06-19 22:32:26 1588 2

原创 mac下docker2.2镜像源更换

哎,攒了N多年,且经过内人批准,弄了台mac,有点不习惯,入坑开始啦。最近下了mac版的docker2.2桌面版,界面还是跟老款差距挺大的,记录一下更换源地址的方式,以便广大网友。在此处添加其他源地址:"registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ]添加后,点击Apply&Restart 搞定。在终端中,输入:.

2020-06-19 22:19:41 556

原创 SpringBoot 2.0 使用 Thymeleaf 实现前后端分离

最近玩了一下在spingboot2.0 中使用thymeleaf 实现前后端分离部署代码中采用spingboot2.0 + thymeleaf ,部署环境 centos7+nginx+jdk8具体springboot和thymeleaf怎么整合就不说啦,就截几张图看看前后端分离咋配置的哈!代码结构:html页面、js、css模块:application.yml配置:代码中的配置就是...

2020-03-19 10:27:00 4359 2

原创 nginx限流配置

说明:此处nginx的安装略,主要做一下nginx常用限流配置内容。限流方式主要有以下两种,安装选其中一种即可。一、单位时间访问限流QPS:说明: 使用nginx的 ngx_http_limit_req_module模块进行限制的,使用limit_req和limit_req_zone命令来设置;nginx.conf配置文件下编辑:1.http模块下添加:limit_req_zo...

2019-12-16 11:41:45 5669 2

转载 centos设置swap

SWAP 添加方法1.查看当前 SWAP 情况free -m2.添加 SWAP 交换文件创建 SWAP 文件,设置大小,这里我设置为 1G。(bs * count = SWAP 大小)dd if=/dev/zero of=/var/swap bs=1M count=1024设置文件权限chmod 600 /var/swap创建 SWAPmkswap /var/swap启...

2019-12-12 13:49:15 417

原创 centos7在线安装openjdk

**说明:**本次安装为在线安装,非免安装解压版jdk安装;另本次使用root用户进行安装;1.安装jre:# yum install java-1.8.0-openjdk -y2.安装jdk:# yum install java-1.8.0-openjdk-devel -y3.查看jdk版本:# java -version4.配置jdk环境变量:查看安装路径# ...

2019-12-12 10:32:09 560

原创 如何能做好软件项目(迭代开发)

背景:本人搞软件开发多年,从毕业懵懂的只知道开发,到核心开发,再到项目经理,再回到开发岗位,从做项目到做产品,最近做了一些思考,怎么做好一个项目呢?此处简单总结一下迭代开发的场景:1、组建团队,集中办公,适当进行团建,促进团队彼此间的默契;2、需求澄清,在需求宣讲前必须充分理解需求,没有注意到的细节可在开发过程中完善,但在上线前禁止需求变更,不然可能引发更大的生产问题;...

2019-11-19 17:07:44 972

原创 打包前端代码docker镜像

本次打包准备:1、linux系统下已有docker环境;2、nginx的官方最新镜像基础;3、前端编译后的html/js等静态页面文件(本次随便写一个index.html作为测试校验);一、准备测试的html文件[root@localhost learn_nginx]# mkdir html[root@localhost learn_nginx]# cd html[root@...

2019-08-27 08:58:59 2358

原创 linux用户及权限管理

1、用户管理查看用户:id user新增用户:useradd user设置密码:passwd user删除用户:userdel -r user2、用户与组加入组: gpasswd -a user root ,将user加入到root用户组移出组: gpasswd -d user root3、权限分类r 读 4w 写 2x 执行 1注:上面3个数字的和...

2019-08-06 15:39:36 110

原创 Linux查看磁盘情况

查看磁盘空间情况查看整体磁盘占用情况: df -hl查看当前目录占用情况: du --max-depth=1 -h查看xxxxx目录占用情况: du --max-depth=1 -h xxxxx查看具体文件夹占用情况: du -sh xxx文件夹...

2019-08-05 13:48:40 225

原创 docker镜像/容器的导入导出简介

说明:在实际运用中,经常会遇到服务迁移、升级或者部署等问题,想要快速的实现,可以使用docker镜像的方式,把事先准备好的docker镜像导入在目标服务器中即可。docker镜像的导入导出命令: save、load、import、export命令之 save[root@mvxl8369 ~]# docker save --help解释: 将一个或多个镜像以流的方式保存在tar中公式:...

2019-07-03 12:41:32 263

原创 docker-compose安装consul

环境:系统版本: centos7docker版本:18.06.1-cedocker-compose版本: 1.24.0docker-compose.yml配置如下:version: '3'services: consul: image: harbor.xxx.com/xxx/consul:latest ports: - 8300:8300 -...

2019-07-02 18:02:45 3370

原创 docker-compose安装mysql5.7

环境:系统版本: centos7docker版本:18.06.1-cedocker-compose版本: 1.24.0docker-compose.yml配置如下:version: '3'services: mysql: image: harbor.xxx.com/library/mysql:5.7.23 ports: - "3306:3306" ...

2019-07-02 17:54:33 7026 2

原创 mysql设置最大连接数

查看最大连接数:show variables like "max_connections";设置最大连接数为2000:# set GLOBAL max_connections=2000

2019-07-02 16:31:31 176

原创 centos7安装docker-compose笔记

环境准备:# yum install py-pip python-dev libffi-dev openssl-dev gcc libc-dev make下载docker-compose# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$...

2019-07-02 09:55:56 714

原创 docker安装consul集群

单机版:# docker run -d --name=consul01--net=host consul:latest agent -server -bind=192.168.18.129 -client=0.0.0.0 -node=consul_Server1 -bootstrap-expect=1 -ui# docker run -d --name=consul01 --net=...

2019-06-28 16:04:53 1500 5

原创 lombok集成eclipse、sts、IDE

一、lombok介绍Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。如新建一个entity实体类要使用这个对象,必须还要写一些getter和setter方法,可能还要写一个构造器、equals方法、或者hash方法.这些方法很冗长而且没有技术含量,我们叫它样板式代码.lombo...

2019-03-11 21:52:08 415

原创 linux环境常用命令总结

1. jstack 查看堆栈的信息,对死锁和请求接口阻塞不往下走的问题,也不打日志时,排查问题非常有效;$ jstack -l pid注:jdk8以上可以使用: jcmd pid thread.print如:printf %x查找带‘daemon’的堆栈信息:$ jstack -l pid | grep 'daemon'2、tcpdump抓包tcpd...

2019-03-11 21:42:03 207

原创 linux下查询日志--常用命令

一、cat命令说明:该命令显示全部日志,如果文件比较大的话,不建议使用cat business.log二、more命令说明:查询日志里的全部内容,与cat命令不同的是,more命令是一页一页进行展示的,通过按空白键space就往下一页显示,按b键就会往回一页显示。more business.log三、tail命令说明:用于输出文件中的尾内容,也可以实时查看...

2019-03-04 17:08:22 9228 1

原创 如何查看sql查询是否用到索引(mysql)

使用解释函数explain,只需添加在sql语句之前即可:表中的索引:查看sql是否用到索引:我们只需要注意一个最重要的type 的信息很明显的提现是否用到索引:type结果值从好到坏依次是:system &gt; const &gt; eq_ref &gt; ref &gt; fulltext &gt; ref_or_null &gt; index_merg...

2019-03-04 15:16:55 27732 1

CentOs 64位安装商业版oracle

CentOs 64位安装商业版oracle

2017-08-17

checkstyle-sonar-plugin-3.7.jar

checkstyle-sonar-plugin-3.7.jar,把jar包拷贝到sonarqube/extensions/plugins/目录下,重启sonarque就可以了

2017-08-17

sonar-cobertura-plugin-1.7.jar下载

sonar-cobertura-plugin-1.7.jar,拷贝到sonarqube/extensions/plugins/目录下,重启sonar就可以了

2017-08-17

tomcat+memcached依赖包

tomcat+memcached依赖包

2017-08-17

tomcat-redis依赖jar包

tomcat-redis依赖jar包

2017-08-17

Ubuntu16集成nginx+多个tomcat+memcached文档

Ubuntu16集成nginx+多个tomcat+memcached文档.

2017-08-17

centos6.5 64位系统集成nginx+3个tomcat文档

centos6.5 64位系统集成nginx+3个tomcat文档

2017-08-17

nginx依赖包linux操作系统使用

nginx依赖包linux操作系统使用

2017-08-17

sonar-l10n-zh-plugin汉化包

压缩文件里的sonar-l10n-zh-plugin-1.16.jar对应sonarque6.5,sonar-l10n-zh-plugin-1.11.jar对应sonarque5.6,把对应的jar包拷贝到sonarqube/extensions/plugins/目录下,重启sonarque就可以了

2017-08-17

空空如也

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

TA关注的人

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