自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

波波烤鸭的博客

点点滴滴,积少成多

  • 博客(413)
  • 资源 (3)
  • 论坛 (1)

原创 Spring相关文章汇总篇【Spring,SpringBoot,SpringCloud等】

  因为Spring框架包含的组件比较多,写的博客内容也比较多,虽然有分专栏但是依然不方便查找,所以专门用一篇文章来记录相关文章,会不定期更新。一、Spring1.基础内容Spring介绍Spring-IOC实现【01-XML配置方式】Spring-IOC实现【02-XML配置方式案例】Spring-IOC实现【03-其他实现方式】Java代理模式-AOP必备知识Spring之AO...

2019-06-25 22:40:07 39068 6

原创 SpringSecurity认证专题之【AuthenticationManager】

  哈喽,大家好,最近有段时间没有写博客了,今天开始我会陆续给大家整理出SpringSecurity原理源码相关的文件,本篇文章主要是给大家介绍下认证体系中最基础的AuthenticationManager的内容,让你对它从整体上面有一个认知。AuthenticationManager  首先我们来看下AuthenticationManager这个接口的定义。public interface AuthenticationManager { /** * 定义的一个认证的方法 **/ Authen

2020-10-13 22:42:03 62

原创 细说SpringBoot的自动装配原理

1.什么是SpringBoot?  对于spring框架,我们接触得比较多的应该是spring mvc、和spring。而spring的核心在于IOC(控制反转对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系)和DI(依赖注入IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了

2020-07-02 15:37:51 850 1

原创 Nginx高可用的配置-Keepalived

Nginx高可用  为什么需要高可用配置单个Nginx负载均衡整个系统,如果nginx挂了,那么整个系统都将瘫痪,这时我们就需要保证及时1个Nginx挂了,整个系统也是可用的。  这时我们就需要实现Nginx的高可用,nginx的高可用需要配合keepalived一起实现。准备工作1.两个nginx服务  部署两个Linux节点,ip分别为 192.168.12.120和198.168.12.121,分别启动nginx2.两个keepalived服务1).yum命令安装keepali

2020-06-19 02:59:45 451

原创 Nginx防盗链的配置

Nginx防盗链的配置  通常站点,都会想让自己网站的视频和图片,免被盗用,毕竟视频流量,花的都是白花花银子  首先我们没有配置防盗链的情况下,放开静态资源你的访问。我们来看看效果location ~* .*\.(gif|jpg|ico|png|css|svg|js)$ { root /usr/local/nginx/static;}浏览器正常访问通过curl来模拟其他访问源访问curl --referer http://baidu.com -I http://192.168.12.

2020-06-19 02:53:27 2576

原创 一篇文章让你搞懂如何通过Nginx来解决跨域问题

Nginx跨域实现  首先大家要搞清楚什么是跨域,为什么会有跨域情况的出现。哪些情况属于跨域?跨域:由于浏览器的同源策略,即属于不同域的页面之间不能相互访问各自的页面内容注:同源策略,单说来就是同协议,同域名,同端口URL 说明 是否允许通信http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许http://www.a.com/lab/a.jshttp://www.a.com/script/b.js 同一域名下不同文件夹 允许http:

2020-06-19 02:36:55 445

原创 Nginx的优化配置

  Nginx相关的内容有点延迟,趁着今天有空就给大家整理完,本篇文章来给大家把Nginx我们在工作中常用的配置来给大家分享下,希望能对大家有所帮助。Nginx的优化配置全局配置选项设置user root root;默认用户是nobody,如果nginx需要访问某些比如root类权限的文件,会提示403错误,修改这个可以通过root去访问worker_processes 2;worker_cpu_affinity 01 10nginx默认是没有开启利用多核cpu的

2020-06-19 02:17:02 338

原创 给大伙来梳理下Java中的各种锁的分类

  大伙在面试的时候应该会经常碰到线程 并发方面的问题,而且也会问到你各种分布式锁的概念,本文就给大家整理了下各种锁的分类,希望对你有所帮助。锁的分类  我们先总体的来看看有哪些具体的分类序号分类1乐观锁/悲观锁2独享锁/共享锁3互斥锁/读写锁4可重入锁5公平锁/非公平锁6分段锁7偏向锁/轻量级锁/重量级锁8自旋锁一、乐观锁/悲观锁  注意,乐观锁与悲观锁并不是具体的两种锁的实现,而一种设计思想。乐观锁  顾名

2020-06-12 18:27:08 755

原创 AQS源码分析看这一篇就够了

  好了,我们来开始今天的内容,首先我们来看下AQS是什么,全称是AbstractQueuedSynchronizer 翻译过来就是【抽象队列同步】对吧。通过名字我们也能看出这是个抽象类而且里面定义了很多的方法  里面这么多方法,咱们当然不是一个个去翻。里面还有很多的抽象方法,咱们还得找它的实现多麻烦对不对。所以我们换个方式来探索。场景模拟  我们先来看下这样一个场景  在这里我们有一个能被多个线程共享操作的资源,在这个场景中应该能看出我们的数据是不安全的,因为我们并不能保证我们的操作是原

2020-05-29 22:26:28 956

原创 Nginx-详解其原理
原力计划

  前面介绍了很多Nginx实战方面的内容,本文我们来介绍下Nginx的原理。Nginx进程模型分析  在介绍Nginx的进程模型之前我们先来给大家解释下一些常见的名词,这能辅助我们更好的了解Nginx的进程模型。作为Web服务器,设计的初衷就是为了能够处理更多的客户端的请求,一般来说,完成并行处理请求工作有三种方式可以选择,多进程、多线程、异步方式。多进程方式  服务器每接收到一个客户端请求,就会由主进程生成一个子进程出来和该请求建立连接进行交互,直到连接断开以后子进程也就结束了  优点在于各个

2020-05-22 11:07:07 6562 3

原创 Nginx实战操作-动静分离

  本文我们继续来介绍nginx的实际操作,本文来介绍下Nginx的动静分离的实现。动静分离Nginx动静分离实战动静分离案例1.nginx目录下创建static文件夹,放入图片或者js文件2.利用前面的8081服务作为我们的动态资源服务3.Nginx中配置动静分离server{ listen 80; server_name localhost; location / { proxy_pass http://192.168.12.1; proxy

2020-05-22 10:55:25 401

原创 Nginx实战应用-负载均衡

  本文我们继续来介绍nginx的实际操作,本文来介绍下Nginx的负载均衡的实现。负载均衡  大家看看上面这个负载均衡的结构图,大家会发现其实和我们上节课讲的反向代理很像是不是?真实服务器如果有多个是不是就是我们上面的结构图了呀?所以什么事负载均衡呢?其实就是在反向代理的基础上通过各种负载策略将用户的请求转发到对应的真实服务上。网络负载均衡的大致原理是利用一定的分配策略将网络负载平衡地分摊到网络集群的各个操作单元上,使得单个重负载任务能够分担到多个单元上并行处理,使得大量并发访问或数据流量分担到

2020-05-22 10:44:41 782

原创 Nginx实战操作-反向代理

  本文我们来给大家介绍下Nginx的反向代理的实现。反向代理结构图反向代理的核心是不想将我们内部的服务直接暴露给客户端。Nginx可以作为我们反向代理服务器使用,具体怎么操作呢?其实nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。Nginx反向代理实战1.创建一个web服务  你可以直接启动一个Tomcat服务,放置简单的jsp文件,也可以通过开发工具启动一个服务,我们为了操作代码方便就通过IDE创建一个简单的web服

2020-05-22 10:35:12 646

原创 Nginx详解Location匹配规则

  本文我们来给大家详细介绍下Nginx中的核心配置文件中的Location匹配规则。  location会尝试根据用户请求中的URI来匹配上面的/uri表达式,如果可以匹配,就选择location{}块中的配置来处理用户请求。当然,匹配方式是多样的,下面介绍location的匹配规则。语法:location [=|~|~*] /uri/ { … }~ #波浪线表示执行一个正则匹配,区分大小写~* #表示执行一个正则匹配,不区分大小写= #进行普通字符精确匹

2020-05-20 11:55:31 299

原创 Nginx核心配置文件介绍

  本文我们来介绍下Nginx的核心配置文件nginx.confNginx的核心配置文件Nginx.conf的位置: /usr/local/nginx/conf/nginx.conf  默认的Nginx服务器配置文件都存放在安装目录的conf中,主要的配置文件名为nginx.conf.  Nginx的核心模块有是Main和Events,还包括Http模块、邮件模块、还可以支持第三方模块等注意:1.每行配置的结尾需要加上分号2.如果配置项值中包括语法符号,比如空格符,那么需要使用单引号或双引

2020-05-20 10:27:38 730

原创 Nginx超详细的常用操作命令

  本文我们来介绍下Nginx中的常用操作命令。服务启动命令-h help命令可以查看帮助信息默认启动方式  直接执行Nginx的二进制文件即可/usr/local/nginx/sbin/nginx该方式默认会加载 /usr/local/conf/nginx.conf 配置文件指定配置文件也可以在启动的时候指定要加载的配置文件 -c/usr/local/nginx/sbin/nginx -c conf/nginx.conf当然我们在启动的时候也可以指定pid的存储位置/usr/l

2020-05-20 10:12:48 2334

原创 Nginx超详细的常用两种安装方式

  最近在整理Nginx相关的内容,所以打算记录下来分享给大家,感兴趣的小伙伴可以看看。首先我们在Linux上面将Nginx安装成功下,安装的方式有多种,我们在此处给大家介绍两种,一种是官方指引的安装,一种是安装特定版本第一种安装方式  官方指引安装的方式注意:安装完成:启动:直接输入 nginx 即可浏览器中访问测试:默认端口80这样就安装成功了,那么nginx安装的相关文件放置在哪了呢?比如 nginx.conf配置文件以及对于的启动文件在哪儿呢?文件目录

2020-05-20 09:50:57 613

原创 java面试题:谈谈你对volatile的理解

  最近打算整理下Java面试中频率比较高,相对比较难的一些面试题,感兴趣的小伙伴可以关注下。Volatile关键字  volatile是Java虚拟机提供的轻量级的同步机制.何为轻量级呢,这要相对于synchronized来说。Volatile有如下三个特点。volatile保证可见性不支持原子性禁止指令重排序  要搞清楚上面列举的名词可见性 原子性 指令重排的含义我们需要首先弄清楚JM...

2020-04-14 20:23:48 2160

原创 Netty编解码之ProtoBuf案例二

  前面我们介绍了Protobuf的基本使用,但是我们是一个POJO对象创建一个proto文件,那么在实际环境中将要创建多个文件,会非常的不方便,本文我们来看看怎么根据类型来动态处理Protobuf案例二proto文件  在proto文件中我们通过message来管理类型,具体如下syntax = "proto3";option optimize_for = SPEED; // 加快解析...

2020-01-01 20:42:02 932

原创 Netty编解码方案之Protobuf介绍

  本文我们来给大家介绍下Netty中对传输数据编解码的解决方案ProtoBufProtobuf介绍1. Netty本身的编码解码的机制和问题分析Netty 自身提供了一些 codec(编解码器)Netty 提供的编码器StringEncoder,对字符串数据进行编码ObjectEncoder,对 Java 对象进行编码…Netty 提供的解码器StringDecoder, 对字...

2019-12-31 18:08:40 954

原创 Netty案例介绍(websocket服务)

  本文我们来实现一个基于WebSocket协议的案例。WebSocket案例1.需求分析  Http协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接.所有在有些情况下并不是太适用。这时websocket就是我们的一种实现方案,具体的websocket的内容网上很多,自行查阅哦,本文主要是介绍基于netty如何实现websocket通信。要求:实现基于webSoc...

2019-12-30 23:13:04 914

原创 Netty案例介绍-群聊案例实现

  前面介绍了基于Netty的Http服务,本文我们来通过Netty来实现群聊案例。群聊案例1.案例需求编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务器端:可以监测用户上线,离线,并实现消息转发功能客户端:通过channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息(有服务器转发得到)目的:进一步理解Nett...

2019-12-29 15:29:57 1732 1

原创 Netty入门实例-Http服务

  本文我们继续来实现Netty的第二个入门案例,一个Http服务。Http服务1.需求Netty 服务器在 6668 端口监听浏览器发出请求 "http://localhost:6668/ "服务器可以回复消息给客户端 "Hello! 我是服务器 5 " , 并对特定请求资源进行过滤.2.创建服务端handler  在handler中我们对浏览器提交的Http请求做出处理p...

2019-12-28 17:03:26 2001

原创 Netty第一个入门实例-TCP服务

  本文我们来写第一个Netty的入门实例,一个TCP服务案例。Netty入门案例1. 案例需求创建Netty 服务器在 6668 端口监听创建Netty客户端,客户端能发送消息给服务器 “hello, 服务器~”服务器可以回复消息给客户端 “hello, 客户端~”目的:对Netty 线程模型 有一个初步认识, 便于理解Netty 模型理论2.创建maven项目  通过ecl...

2019-12-28 16:39:28 1979 2

原创 Netty高性能架构模型介绍

  上一篇我们介绍了Reactor模式,本文我们就来具体分析下Netty中的架构模型到底是怎么样的。Netty模型介绍1.工作原理-简单介绍  Netty 主要基于主从 Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 Reactor.流程描述:BossGroup 线程维护Selector , 只关注Accecpt当接收到Accept事...

2019-12-28 16:27:41 2303 1

原创 Netty高性能架构之Reactor模式

  在讨论Netty的架构模式之前,我们先来介绍下Reactor模式,因为Netty的架构模式是在此基础上演变而来的Reactor模式介绍1. 线程模型基本介绍  不同的线程模式,对程序的性能有很大影响,为了搞清Netty 线程模式,我们来系统的讲解下 各个线程模式, 最后看看Netty 线程模型有什么优越性.  目前存在的线程模型有: 传统阻塞 I/O 服务模型 Reactor 模式...

2019-12-28 15:37:47 4177

原创 Netty简单概述

  本文开始给大家介绍Netty相关的内容,本篇主要介绍的是Netty概念性相关的内容Netty概述1. 原生NIO存在的问题NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 React...

2019-12-28 15:06:27 1439

原创 Netty之JavaNIO编程模型介绍02

  因为篇幅问题我们继续上一篇的内容继续。一、NIO网络编程原理分析  NIO 非阻塞 网络编程相关的(Selector、SelectionKey、ServerScoketChannel和SocketChannel) 关系梳理图对上图的说明:当客户端连接时,会通过ServerSocketChannel 得到 SocketChannelSelector 进行监听 select ...

2019-12-28 14:45:33 869

原创 Netty之JavaNIO编程模型介绍01

  我们在前面的BIO的基础上我们来继续介绍下NIO的内容一、Java NIO 基本介绍  Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的  NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.i...

2019-12-28 11:53:47 906

原创 Netty之JavaBIO编程模型介绍

  最近打算再次整理下Netty的相关内容,但是要把Netty弄的比较清楚,我们首先需要对Java中的BIO,NIO及AIO要比较清楚,所以我们前面会花几篇文章先把这块的内容整理出来。JavaBIO编程模型介绍1.I/O模型介绍1.1 什么是I/O模型  简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。java共支持3种网络编程模型:BIONIO...

2019-12-28 10:52:20 843

原创 Docker本地镜像推送阿里云教程

  本文我们来介绍下怎么将本地的镜像文件推送到阿里云中。1.镜像生成的方式  通过前面的介绍我们了解到镜像的生成访问有两种通过dockerfilebuild出一个新的镜像通过运行中的容器我们commit一个容器2.推送本地镜像到阿里云2.1 本地推送的镜像文件2.2 阿里云地址http://dev.aliyun/search.html2.3 创建仓库镜像提示操作命...

2019-12-28 00:52:10 1142

原创 Docker常用软件安装之Redis

  本文我们来介绍下在Docker中如何安装Redis。1.docker hub上搜索Redisdocker search redis2.下载镜像  从docker hub上下载4.0版本的Redisdocker pull redis:4.03.运行容器  镜像下载好后,我们就可以执行如下命令来运行了docker run -p 6379:6379 -v /root/myr...

2019-12-27 20:53:01 1407

原创 Docker常用软件安装之MYSQL

  本文我们来介绍下在docker中怎么安装mysql。1.在docker hub上查找mysqldocker search mysql2. 下载mysql镜像文件  此处我们下载5.6版本的mysqldocker pull mysql:5.63.构建容器  镜像下载好后我们可以直接运行启动mysql容器docker run -p 12345:3306 --name mys...

2019-12-27 19:30:36 1987

原创 Docker之Dockerfile案例演示

  上篇文章我们给大家介绍了Dockerfile中的常用指令,本文我们通过具体的案例来说明这些指令。1.Base镜像  Docker Hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的,如下scratch相对于java中的Object2.自定义镜像mycentos  我们从官方pull下来的centos镜像是mini版的,所以不带有vim这些基础命令,那我们就来...

2019-12-27 02:11:19 1449

原创 Docker之DockerFile介绍

  本文我们来详细介绍下Docker中的DockerFile,1. DockerFile是什么  DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构建的三步骤1. 编写Dockerfile文件2. docker build3. docker run脚本文件的样式,以centos为例脚本文件内容FROM scratchADD centos-7...

2019-12-26 15:40:55 1710

原创 Docker之快速搞定容器数据卷

  前面我们介绍了镜像和容器,通过镜像我们可以启动多个容器,但是我们发现当我们的容器停止获取删除后,我们在容器中的应用的一些数据也丢失了,这时为了解决容器的数据持久化,我们需要通过容器数据卷来解决这个问题,本文我们就来介绍下容器数据卷。1.是什么  Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有...

2019-12-26 12:20:04 7114

原创 Docker入门简介

1.什么是Docker  Docker是基于Go语言实现的云开源项目。  Docker的主要目标是Build,Ship and Run Any App,Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到一次封装,到处运行。  Linux 容器技术的出现就解决了这样一个问题,而 Docker...

2019-12-25 22:21:52 1543

原创 Docker镜像超详细介绍

  本文我们详细给大家来介绍下Docker中的镜像.1. 镜像是什么?  首先我们来看看镜像到底是什么?虽然前面有介绍过镜像和容器,但也不是特别的深入。镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。1.1 UnionFS  UnionFS(联合文件系统): Union文...

2019-12-25 21:58:31 1549

原创 Docker常用命令超细介绍

  工欲善其事必先利其器,本文我们首先来给大家介绍下docker中的常用命令,只用对这些常用命令非常熟悉我们才能更好的来使用docker。1.帮助命令  首先我们来看看docker中的帮助命令命令说明docker version查看docker的版本信息docker info查看docker详细的信息docker --helpdocker的帮助命令,可以...

2019-12-25 20:33:56 8513 1

原创 Docker安装篇(CentOS7安装)

  本文记录下在CentOS7上安装docker的过程1.首先确认版本  首先确认我们的环境是centOS7cat /etc/redhat-release2.yum安装gcc相关  前提是能上外网,上篇文章介绍了相关的网络配置,不清楚的key参考下。yum -y install gcc gcc-c++3.卸载旧的版本  防止其他版本的干扰,我们先执行删除旧版本的命令yum...

2019-12-25 14:18:24 7735

ORACLE-笔试题.doc

最新的Oracle笔试题,快来下载吧,各大软件开发公司第一手Oracle的题目

2019-05-14

整理的android面试题(附详细答案).doc

全套详细的安卓面试题,另附详细的答案,应该会对大家找安卓相关工作有很大的帮助

2019-05-14

Assembly插件

Assembly插件所需的相关内容,包含对应的conf和lib资源。欢迎下载

2019-03-29

波波烤鸭的留言板

发表于 2020-01-02 最后回复 2020-03-21

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