自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(351)
  • 资源 (15)
  • 收藏
  • 关注

原创 分布式限流之 - Nginx层限流

写在前面的话高兵发的三驾马车:缓存、降级、限流,这里仅仅说限流 常用的限流算法有:计数器算法、固定窗口算法、滑动窗口算法、漏桶算法、令牌桶算法;每种算法的特点和优缺点这里不展开,比较适用的限流算法基本都会选择令牌桶,并且这里基于Spring Cloud Gateway Redis本身默认就是基于令牌桶算法实现 限流按照类型分为:单机、分布式; 限流按照请求流量的路径分为:nginx、gateway、微服务 如果仅仅使用于单机环境:谷歌guava的RateLimiter、(AtomicIntege

2022-05-24 11:14:09 1220 3

原创 分布式限流之 - Spring Cloud Gateway层限流实现

写在前面的话高兵发的三驾马车:缓存、降级、限流,这里仅仅说限流 常用的限流算法有:计数器算法、固定窗口算法、滑动窗口算法、漏桶算法、令牌桶算法;每种算法的特点和优缺点这里不展开,比较适用的限流算法基本都会选择令牌桶,并且这里基于Spring Cloud Gateway Redis本身默认就是基于令牌桶算法实现 限流按照类型分为:单机、分布式; 限流按照请求流量的路径分为:nginx、gateway、微服务 如果仅仅使用于单机环境:谷歌guava的RateLimiter、(AtomicIntege

2022-05-21 19:00:08 3312

原创 Centos7基于源码包搭建Elasticsearch以及head插件

目录1、jdk安装2、创建centos用户启动es(高版本的es不能使用root进行启动)3、下载安装es4、ik分词器安装5、Head插件安装5.1、node.js安装5.2、grunt-cli安装5.3、cnpm安装5.4、Head插件的下载安装info:elasticsearch7版本需要对应jdk 11, 所以建议使用 elasticsearch6,对应jdk81、jdk安装如果服务器没有安装jdk,可以参考CentOS7安装jdk1.8-源码安装、.

2022-05-18 14:39:28 667

原创 CentOS7搭建Kafka集群

目录一、Kafka单机【依赖单机的单节点Zookeeper】二、KafKa集群搭建三、Kafka Manager(web页面管理)的搭建四、使用本地客户端测试MQ基本操作首先kafka的配置信息等信息依赖zookeeper,这里可以根据情况选择搭建zookeeper的形式(单机、一台服务器上搭建的集群、以及三台服务器搭建的集群等),可以参考:CentOS7搭建Zookeeper集群https://blog.csdn.net/it_lihongmin/article/details/12.

2022-05-11 13:35:00 1277

原创 CentOS7搭建Zookeeper集群

首先,zookeeper安装依赖jdk环境,可以参考:CentOS7安装jdk1.8-源码安装、openjdk安装、docker安装一、CenOS7安装Zookeeper单节点Zookeeper的下载地址为:https://dlcdn.apache.org/zookeeper/,根据自己的需要选择对应的版本,这里将几个版本进行了下载(但是一定下载-bin.tar.gz 的包):如果可以不连外网,则可以使用上面的安装包先上传到对饮服务器位置;如果可以连外网则,先下载安装包: wget htt.

2022-05-07 18:11:29 2129 1

原创 CentOS7安装jdk1.8-源码安装、openjdk安装、docker安装

可以安装官方的源码包,也可以基于CentOS自动的openjdk包安装【这里选择的jdk为8】,也可以使用docker进行安装:docker安装jdk1.8可以使用已存在的官方镜像拉取安装,也可以自己编写DockerFile进行打包,而这里直接使用已有的docker镜像包拉取,并且基于该镜像进行打成压缩包(tar.gz),然后可以将该压缩包上传到其他内网服务器【不能连外网镜像拉取的环境等】,可以直接载入镜像使用。一、源码包安装jdk官网下载jdk包,上传安装包到服务器,或者可以下载百度链接:jdk-

2022-05-06 13:37:59 2070

原创 Docker安装Redis6、并打成镜像在其他内网环境部署

1、Docker redis指定版本拉取和启动拉取指定版本的镜像:docker pull redis:6.2.0拉取官方的 redis.conf 配置文件,注意版本【自己redis是6.2.0但是配置文件拉取最新的,可能导致很多配置不支持】,或者可以使用下面的该配置【已上传至阿里云,也在本博客最后附录配置文件内容】:链接:https://pan.baidu.com/s/1JFsFEWHAKzjHVfrjMQVwlQ?pwd=w2jv修改redis配置项,更多配置可以参考:https://..

2022-05-01 09:59:56 980

原创 源码包安装Docker

官网https://download.docker.com/linux/static/stable/x86_64/选择合适的版本下载,这里18、19、20分别提供下面版本链接: https://pan.baidu.com/s/1erhtG_o_e_KCPPWv1tEpTg?pwd=u46f 提取码: u46f安装过程以 docker-20.10.0tgz进行说明,首先将包上传至待安装服务器。。。上传完成后使用 tar -zxvf docker-20.10.0.tgz 进行解压将包下.

2022-04-29 10:42:03 2384 2

原创 Mysql8主从复制搭建

我们知道Mysql的主从同步机制实现,还是先来一张主从同步的原理图(这里直接使用最经典的那一张),方便搭建已经遇到问题后的解决,这里忽略讲解binlog的格式,以及write log first等原理。实现一主多从读写分离的情况下,不推荐使用Docker搭建mysql,这里使用了官方Compressed TAR Archive搭建Mysql单节点的方式,详细可以参考:Mysql8 CentOS7 Compressed TAR Archive安装,这里默认已经搭建了一个主,根据需求搭建了多个从节点,.

2022-04-28 11:11:59 1076

原创 Docker安装Mysql8、并打成镜像在其他内网环境部署

1、docker环境搭建首先安装 Docker的过程省略,可以参考:Docker的基本概念、环境搭建、常用命令【图文】2、docker拉取mysql8镜像docker拉取mysql 8.0.18的镜像: docker pull mysql:8.0.18docker run --name mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=Kevin123 -d mysql:8.0.18运行docker镜像生成容器,说明:--name 容器.

2022-04-27 14:54:19 3774 1

原创 Mysql8 创建新用户设置对特定数据库的读写、远程访问权限

默认当前数据库已经创建,并且Root账号已经ok,可以在服务器端操作,也可以使用root账号在navicat等远程客户端操作,当前是在服务器端操作的过程记录:root 用户登陆: mysql -u root -p 输入密码创建数据:create database demo;创建数据库创建用户,时其可以远程访问(并且设置密码类型):create user 'kevin'@'%' identified with mysql_native_password by 'Kevin123';.

2022-04-26 16:40:44 3488

原创 Mysql8 CentOS7 Compressed TAR Archive安装

当前服务器为Centos7,如果是CentOS6则自行下载对应的包。进入Mysql官方下载地址:https://dev.mysql.com/downloads/​点击Mysql Community Server,选择下载tag.gz或者tar的安装包,只是压缩方式不同,这里使用tar.gz 包进行安装如下:​可以从已上传的百度网盘下载Mysql8.0.27 链接: https://pan.baidu.com/s/1Q5D1--Z4_RcoO1Cmf9RP0Q ...

2022-04-26 16:24:17 2637

原创 Mysql8 CentOS7 rpm和rpm Bundle安装

当下载包:wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm或者执行下载后上传,可以使用该百度网盘地址链接: https://pan.baidu.com/s/1dXIr8ypfwBCcURpTgXwREg 提取码: s2ca安装:rpm -ivh mysql80-community-release-el7-11.noarch.rpm查看:cd /etc/yum.repos.d/ 下面是否有mysq

2022-04-24 16:35:46 2852

原创 Centos7服务器镜像挂载

最近好些年都是做互联网相关项目,基本没有遇到过服务器Centos不能连外网拉取镜像的情况,导致自己在这反面一直是空白的,最近项目部署遇到了镜像基本是Centos空镜像,并且不能拉取的,写一下过程,方便后续遇到问题查看。当我们需要在Centos服务器安装比如Redis等服务时,只需要执行命令如:wgethttp://download.redis.io/releases/redis-6.2.0.tar.gz -- 下载redis服务包yum install -y gcc-c++ -- 安装c环...

2022-04-21 18:13:03 5473

原创 Pinpoint作为链路追踪和报警(监控spring boot服务)

pinpoint能做什么,可以服务的调用链路进行追踪并且当服务调用失败率等进行报警。从产品和功能上类似于 spring cloud sleuth + zipkin(或+kafka)实现的微服务链路追踪(可以参考之前写的:Spring Cloud Sleuth服务调用链路追踪、Spring Cloud Sleuth和Zipkin的基本概念)那么下面就对两种者进行一个对比: 对比点 Zipkin Pinpoint 说明

2022-04-14 00:06:42 5327 1

原创 promethous + grafana对Spring boot 2.x项目进行监控

1、Spring boot2.x项目改造在spring boot项目中添加 actuator、prometheus-core、micrometer-registry-prometheus(采集)maven, 并且需要注意版本关系(这里我spring boot的maven management使用了2.3.2但是引入的spring boot parent引入的是2.2.X导致整体引入的是 2.2.X但是prometheus还是1.5.3所有没有显示出来):Spring boot 2.3.X 对应 mi

2022-04-01 23:09:28 3242

原创 minio - 服务的搭建和使用

曾几何时,之前说的搭建分布式文件存储系统,好像唯一的选择就是 fastDfs,慢慢的发现好像周围的团队和项目都在选择Minio,进入了视野。Minio与Amazon S3云存储服务兼容,采用Golang实现,服务端支持Windows、Linux、 OS X和FreeBSD等操作系统;客户端支持Java、Python、Javacript、 Golang语言,下面会有基于java的sdk的相关集成和操作。Minio是Apache License v2.0下发布的对象存储服务器。它与Amazon S3云

2022-03-29 16:47:50 8693 1

原创 Jenkins - 部署vue项目以及环境配置和遇到的问题【图文】

Jenkins的环境搭建可以参考下面的链接,在此基础上执行vue项目的持续集成发布。Jenkins - 单机和集群搭建、基于git分支部署spring boot项目(脚本、docker发布)、gitlab钩子部署【图文详解】https://blog.csdn.net/it_lihongmin/article/details/123655868nodejs环境搭建需要jenkins有发布vue项目的能力则需要对vue项目进行打包,依赖nodejs环境,此时可以考虑直接在jenkins服务器上安装Nod

2022-03-28 10:18:21 6843

原创 minikube安装kubernetes(Centos7)【图文】

k8s有很多种安装方式minikube允许使用mac、linux、windows快速创建一个k8s集群;也可以使用kubeadm方式基于二进制快速安装一个集群;但是需要在生产环境执行的k8s集群需要使用官方发行的二进制进行安装,快速安装方式虽然方便但是屏蔽了很多底层的细节,发现问题很难发现问题,并且基于二进制方式创建也非常利于去理解其运行原理,更有利于后期的维护。能快速开始搭建也是蛮好的选择,否则就从可能放弃于繁琐的安装过程,kubernetes安装需要满足cpu 至少2核心、内存至少可用的1.

2022-03-25 02:09:41 1362 2

原创 Jenkins - 集群搭建和服务部署【图文】

Jenkins集群的搭建首先基于单台Jenkins搭建并且可以部署项目的基础上,搭建详细过程可以参考:Jenkins - 单机和集群搭建、基于git分支部署spring boot项目(脚本、docker发布)、gitlab钩子部署【图文详解】刚开始自己的理解是搭建Jenkins集群,肯定是需要在其他服务器上也部署 jenkins.war 包,并且将两者进行关联。其实Jenkins从节点不需要搭建服务,只是需要满足下面两个条件:1、jdk、git、maven环境一致符合Jenkins执行环境,包括

2022-03-24 15:28:57 4002

原创 Docker的基本概念、环境搭建、常用命令【图文】

目录解决了什么问题?docker的几个概念Centos基于自动化脚本安装Centos基于yum安装docker常用命令docker images【或 | grep XXX】docker builddocker rundocker ps( | grep XXX)docker start|stop|restart container_iddocker kill container_iddocker rmDocker 是一个开源的应用容器引擎,基于Go 语言..

2022-03-23 16:33:45 3375

原创 Jenkins - 单机和集群搭建、基于git分支部署spring boot项目(脚本、docker发布)、gitlab钩子部署【图文详解】

目录Jenkins使用Docker方式安装直接使用 Jenkins.war 启动配置管理Jenkins1、Jenkins原理和基本初始化2、安装 Publish over SSH插件3、安装和配置工具【jdk、git、maven】4、配置项目5-1、脚本Docker部署5-2、脚本命令行部署之前也接触写了好几篇Jenkins的博客,但是自己使用最新版本的Jenkins【2.339版本】,然后去发布Spring boot项目,发现还是花了自己不少的时间,所以记录一下。.

2022-03-22 17:51:12 1446

原创 Linux命令 - netstat(显示网络信息状态)、实用查询命令

netstat -anp| grep redis;netstat -rn

2022-02-14 23:52:46 7483

原创 Linux命令 - ps(process status)进程管理、实用查询组合

ps(Process Status)是linux的进程管理命令,但是只是执行ps命令这一个瞬间(快照)的进程状态。那么说到Linux进程,就需要细说一下5种进程状态,如下表格:ps支持

2022-02-12 01:46:34 2590

原创 Mac10.x以上系统安装telnet命令

坑啊,mac10.x以上版本没有了telnet命令,对于用习惯了telnet命令查看远程ip port是否启动的我来说好不习惯。mac好像没有yum之类的命令,查询需要执行brew install telnet,结果brew命令也没有,查询了半天各种解决方案,终于看到一个可行的,记录一下流程,方便哪天又不行了。 折腾我好久一定要记录一下。1、安装brew在mac终端执行命令:/usr/bin/ruby -e "$(curl -fsSL https://ra...

2022-01-27 16:45:32 3778 1

原创 Linux命令 - tail、grep详解 以及实用日志查询

tail -f a.log |grep -E --color 'order|product'tail -8000f a.log| grep--color --line-buffer "order" | grep --color --line-buffer "product"

2022-01-25 17:00:26 15457

原创 OAuth2.0协议(六)、Oauth2.0不按规范可能会触发的安全问题

首先还是想说需要按照项目环境和需求情况判断是否要使用OAuth2.0规范,如果基于自研认证授权系统,自己定义接口和规范。虽然OAuth2.0规范已经很完整、安全性也有保障。但是整个规范有些是必要的,有些是非必须的规范(比如 state字段的传递),那么很可能面临被攻击的风险。安全攻击和防御就是成本的问题,如果项目本身岌岌无名那么可能都没有人专门写东西进行攻击,没有价值。但是如果项目快速发展到阿里、京东的体量,那么就需要严格按照规范进行重构,下面列举了一些不按照规范进行开发可能会遇到的风险问题。根据现有架

2022-01-14 16:07:51 2694

原创 OAuth2.0协议(五)、可落地的微服务混合jwt和token模式

原则上token只要满足唯一性、不连续性、不可猜性就可以,但是针对于内网和外网需求场景在安全性和扩展性上要求是不同的。

2022-01-14 13:33:54 1131

原创 OAuth2.0协议(四)、基于OAuth2.0的OIDC认证协议

OIDC(OpenID Connect)协议建立在OAuth2.0协议的基础上,这里需要分清OAuth2.0是一个授权协议,而OIDC是一个认证协议,特别容易搞混。只是OAuth授权框架中包含了部分需要调用认证的信息,而IODC协议利用了OAuth2.0的认证流程(或者利用了去管道、通道)并增加了输出了id_token和OpenId(认证结果和标识)。可以理解:IODC【OpenID Connect】 = OAuth2.0【授权协议】+ 身份认证;IODC定义了三个角色:EU(End...

2022-01-12 22:53:07 1762 1

原创 OAuth2.0协议(三) - cookie、session、token和jwt

要说清token和jwt之前一定会谈起cookie和session,因为Http协议本身是一个无状态协议,每次请求都是单独的。但是当web等项目开发环境中,当前请求可能需要与其他http请求的上下文进行关联,才能完成业务逻辑,所以cookie和session就诞生了。

2022-01-12 16:46:26 2433

原创 OAuth2.0协议(二) - 密码类型、隐式许可类型、客户端类型、PKCE

前提是在理解的OAuth2.0授权码许可流程(最完整的授权流程)后,再来理解其他的授权许可类型和每种类型的使用场景。资源拥有者凭据许可类型 资源拥有者凭据许可类型虽然名字比较拗口,但确是我们最熟悉的使用 用户名密码直接换取token的流程。与授权码许可流程相比,这里减少了获取授权码的流程和两次重定向的过程,之前我们也分析过增加授权码流程就是为了增加安全性和用户体验,但前提是三方服务本身并不被信任。 但是如果都是本公司不同团队(甚至是同一团队)开发的三方服务,比如电商系统与配送系统(京东到...

2022-01-07 13:54:12 887

原创 OAuth2.0协议(一) - 授权码许可流程

OAuth2.0是什么可以拿来做什么,它只认真的做了一件事授权(Authorization)。OAuth2.0是 Open Authorization 2.0的简称,既然是2.0那前面肯定有个1.0。 Oauth1.0想要使用一套授权机制解决所有的授权应用场景,很显然废弃了,所以OAuth2.0协议针对不同的应用场景规定了四种获取令牌的授权认证流程。不过我还是建议先理解流程最完善的授权码许可流程,在此基础上再理解其他三种授权流程和其适用场景。四个角色:资源拥有者 客户端(或三方平台) 授权服务

2022-01-06 23:33:11 3617

原创 记一次线上sql优化从9s到400ms的过程

最近线上发版的时候,发现有个接口执行特别慢,前端App的表现就是没有任何的反应,然后从pinpoint上追查接口发现是sql执行特别慢,平均都是在9s左右。

2022-01-06 17:18:57 1884

原创 动态代理模式-在项目中的使用(基于feign源码写自己的rpc报表框架)

设计模式-总览https://mp.csdn.net/mp_blog/creation/editor/1222025071、项目背景 报表服务导出服务经常会涉及jvm、io等异常情况,所以想要将报表的查询和导出在两个服务中进行,并且报表的查询是在k8s环境中的一个微服务,而报表的真正执行服务是在一个虚拟机。需要将报表的查询和导出两个阶段在两个...

2022-01-04 17:09:55 1217

原创 模板+策略+责任链模式 - 在项目中的使用

整理一下,之前在项目中基于需求,在项目中使用了模板和策略模式、并且在其实使用到了线程池,还是先说一下项目背景,因为所有的设计模式都是基于业务的落地。1、项目背景批量将采购订单根据条件处理开成销售订单或者预销售订单的过程(即:批量采购订单=销售订单+预销售订单),首先是可以有多条路径发起转单流程,由于整个过程判断条件比较多,并且在很多地方处理条件根据发送路径不同,处理的方式也不同。考虑到又是批量转单流程又长中间需要查很多rpc,所有在中间使用到了线程池并行处理,将责任链拆单完的订单放入每个线程中并行。

2021-12-30 14:52:13 1437

原创 设计模式-总览

个人理解,设计模式就是要多看写的好的架构比如Spring、Mybatis等,要多用就是多在项目上进行使用,哪怕又是觉得是脱裤子放屁稍显多余,比如责任链模式,当链条类型只有一两个的时候就显得多余,但是链条有七八种十多种情况时就凸显价值了。 自己看过Head First设计模式并将其demo大致敲了一遍,学习完成后对某个设计模式的理解在脑袋里是映像A,当去读Spring源码时,对某个设计模式的理解又完全不同了。比如Spring中AbstractApplicationContext#refresh的模板..

2021-12-28 21:18:03 408

原创 责任链模式 - 项目中的使用

责任链模式在项目中的应用

2021-12-28 16:48:58 649

原创 Redis - 常用配置和命令大全

appendonly on: aof日志配置, no表示不进行持久化,交给操作系统;always 表示每次操作都执行持久化(都执行fsync); everysec 表示每秒执行一次持久化操作(fsync); repl_backlog_size:主从数据同步的 环形缓存区大小,默认大小为 4K,写满后会覆盖原来的数据; hash-max-ziplist-entries: Hash类型,底层的数据结构可能是Hash表也可能是压缩列表, Hash类型元素个数大于该值时,使用Hash表数...

2021-04-18 23:57:57 262

原创 Mysql - 慢查询和执行计划

慢查询的相关参数设置:long_query_time: 当查询时间超过多少秒才会被记录为慢查询,默认值为 10,可以设置为 0~10,可以指定设置为微秒;slow_query_log: 慢查询日志开关,默认值是 0 表示关闭, 设置为 1 表示开启;slow_query_log_file:host_name-slow.log,定义慢日志的保存地址,默认是主机名-slow.log;

2021-04-07 00:40:33 540

原创 Mysql - 脏页刷新机制

而当内存中的数据页与磁盘中的不一致时该数据页叫作脏页,当执行flush操作将磁盘页数据页和内存数据页进行合并之后,内存和磁盘的数据页相同,则称为干净页

2021-04-07 00:34:03 2099 1

Jenkins的rpm包

jenkins的rpm包,用于centos下安装jenkins。jenkins的rpm包,用于centos下安装jenkins。

2018-06-26

springboot swagger2 demo

OpenAPI 规范3 , springboot swagger2 demo ,主要是方便自己后面使用。

2017-12-17

gui-反编译

反编译

2017-08-02

renren-generator

renren-generator快速开发平台

2017-07-10

renren-fastplus

renren-fastplus快速开发平台

2017-07-10

renren-fast

**项目说明** - renren-fast是一个轻量级的Java快速开发平台,能快速开发项目并交付

2017-07-10

jeesite_hibernate

快熟开发java web项目

2017-06-13

jeesite_mybatis

快熟开发java web项目

2017-06-13

FileZilla工具

FileZilla

2017-06-12

Xshell工具

Xshell工具

2017-06-12

Xftp文件上传

Xftp

2017-06-12

firebug断点调试

断点调试

2017-05-23

eclipse的反编译插件

个人使用最好的反编译插件,就按照一般的eclipse插件进行安装即可

2017-05-14

Postman离线安装包

Postman离线安装包

2017-05-01

空空如也

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

TA关注的人

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