自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

波波烤鸭的博客

点点滴滴,积少成多

  • 博客(426)
  • 资源 (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 39875 6

原创 记录如何将MyBatis源码提交到gitee上管理

  最近有把MyBatis的源码down下来做了注释处理,为了方便小伙伴拿到源码,在这记录下操作的流程1.gitee中创建仓库  这个比较简单请自行申请账号,然后先创建parent项目即可2.idea中操作  在VCS中操作如下,然后指向到我的源码路径选择remotes,将你要提交的仓库地址填入然后执行git的基本操作然后重复相同的步骤将MyBatis的源码也提交上去。这样我们带有中文注释的源码就ok了最后附上源码地址:https://gitee.com/dengpbs/m

2021-05-14 10:04:28 12

原创 Docker安装RabbitMQ

  最近在Linux上单独安装RabbitMQ实在是太痛苦,一直安装不成功,于是在Docker中来安装RabbitMQ。特此记录下。希望能够帮助到大家Docker中安装RabbitMQ  首先你得安装的有Docker环境,如果有不懂的可以参考我的Docker专题:https://blog.csdn.net/qq_38526573/category_9619681.html1. 查找镜像查找带有可视化界面的镜像[root@bobo01 ~]# docker s

2021-03-19 16:07:28 104 2

原创 2-2 SPU和SKU详解及MyBatisPlus自动生成

2-2 SPU和SKU详解  商城系统中的商品信息肯定避免不了SPU和SKU这两个概念,本节就给大家详细介绍下这块的内容1、掌握SKU和SPU关系SPU = Standard Product Unit (标准化产品单元)SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。SKU=stock keeping unit(库存量单位)SKU即库存进出计量的单位, 可以是以件、盒、托盘等为单位。SKU

2021-01-15 11:09:02 335

原创 2-1 分布式文件存储系统Ceph

分布式文件存储系统Ceph1 分布式文件存储系统Ceph Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。对比说明TFSFASTDFSMooseFSGlusterFSCEPH开发语言C++CCCC++数据存储方式块文件/Trunk块文件/块对象/文件/块在线扩容支持支持支持支持支持冗余备份支持支持支持支持支持单点故障存在不存在存在不存在不存在易用性安装复杂,官方

2021-01-12 19:50:20 433

原创 1-5 MyBatisPlus集成

1-5 MyBatisPlus集成  接下来我们完成一个品牌的CRUD操作、我们会集成MyBatisPlus来实现。1、MyBatis Plus介绍  MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis Plus特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通

2021-01-11 21:58:19 132

原创 1-4 云商城项目工程搭建

1-4 云商城项目工程搭建 接下来我们就来搭建下云商城的项目工程结构。1、工程结构划分  因为我们搭建的是微服务项目,所以整体的项目结构会非常的零散。虽然零散但是程序的复用性会非常高,所以首先在划分的时候我们可以将相关的业务服务放置在一个工程结构下。  然后就是整个系统会使用到的依赖包、加载类及相关的普通工具包等我们也可以放置在一个util工程下  还有就是相关的业务微服务会有很多的JavaBean(API)是需要复用到的,还有就是feign接口等像这些我们也可以放置在同一个工程中。  还

2021-01-11 17:58:51 134

原创 1-3 云商城环境准备和数据库表结构

1-3 云商城环境准备和数据库表结构  在商城系统中我们会使用到很多基础环境,比如MySQL数据库、Nacos注册中心、Redis数据库等、这些我们都会安装在Docker容器中。所以接下来我们搭建下基础环境1、Linux环境搭建  Linux环境我们使用的是centos7.9。官方下载地址是:http://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/这部分内容比较基础,具体操作请参考本文的Linux系列:https://blog.csd

2021-01-08 17:21:37 100

原创 1-2 云商城架构设计

1-2 云商城架构设计1、架构设计  云商城采用了当前主流的微服务技术架构,微服务技术栈采用了当前主流的SpringCloud Alibaba技术栈,从接入层、网关层、服务层、数据同步、服务治理、数据处理、第三方接口多个方面进行了精心设计,技术经过了多次挑选、优中选优,最终打造了一套全网最优质的的微服务商城架构体系,解决了大型微服务电商应用中绝大多数难点、痛点问题。2、前后端分离  我们过去开发一套系统,前端、后端都需要协同工作,很多时候分工不明确、责任不清晰,沟通成本大幅增加。为了提升开发效率

2021-01-08 13:58:09 186 2

原创 1-1 云商城业务内容介绍

一、电商知识科普  这一节主要讲解电子商务行业前景,并且带大家了解一下天猫双十一的交易,然后带大家学习一下电商主流模式。学完后会对电商前景有个清晰的认识,能快速定位电商平台的模式。1、 行业分析  2019年我国电子商务交易额为38.24万亿元,其中网购尤为突出,网上零售额为15.63万亿元,网购已经成为了国内绝大多数人的购物方式。  受到疫情影响,电子商务在生活中充当了更重要的角色,大数据分析,2020年电子商务交易额将达到45万亿,2021年电子商务交易额将突破50万亿。电子商务的前景非常可观,

2021-01-07 22:02:48 119

原创 基于SpringCloudAlibaba的分布式商城系统-前言

​ 各位小伙伴大家好,有段时间没有更新文章了,最近打算更新一个系列文章,给大家手把手的完成一个基于SpringCloudAlibaba的分布式商城系统,以下是内容的相关大纲1、商城业务架构知识介绍  本章主要是通过电商行业的基础介绍让大家对电商行业有一个更加清晰的认知、同时也会给大家介绍云商城的业务知识、架构设计、相关技术栈、及相关表结构介绍。还会手把手带领大家完成项目工程的搭建、最后实现商城品牌的增删改查操作。​ 技术点方面掌握前后端分离项目中Swagger的使用、掌握Nacos的使

2021-01-07 21:40:52 168

原创 MySQL索引篇之索引存储模型

  上篇文章我们介绍了什么是索引和索引的类型,明白了索引其实也是通过特定的数据结构来存储的数据,作用是用来提升我们查询和更新数据的效率的,本文我们就来推演下索引的存储模型二分查找  给定一个1~100的自然数,给你5次机会,你能猜中这个数字吗?你会从多少开始猜?  为什么一定是50呢?这个就是二分查找的一种思想,也叫折半查找,每一次,我们都把候选数据缩小了一半。如果数据已经排过序的话,这种方式效率比较高。  所以第一个,既然索引是有序的,我们可以考虑用有序数组作为索引的数据结构。  有序数组的等

2020-11-07 19:36:30 186

原创 MySQL索引篇之索引是什么?

  通过几篇文章我们来讨论下索引相关的内容,本文我们先来简单的了解下索引的相关概念。索引是什么?  现在我们数据库中有一张表,表中的数据有500W条,先在我们没有使用索引的情况下根据name来查询select * from user_innodb where name='波波'...

2020-11-07 15:13:24 154

原创 虚拟机环境搭建之vagrant

  在之前的很多案例中我们都是通过VMware来构建虚拟机的,但是通过VMware构建的过程相对比较复杂但是VMware功能强大,我们在某些情况下并不需要,这时我们就可以通过virtualBox+vagrant来快速构建我们的虚拟机环境了。所以本篇文章就给大家来介绍下如何快速的构建。相关工具安装1.VirtualBox下载安装官方下载地址:https://www.virtualbox.org/wiki/Downloads2.Vagrant下载安装官方地址:https://www.vagrantup

2020-10-25 17:18:13 209

原创 SpringSecurity认证专题之【AuthenticationManager】

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

2020-10-13 22:42:03 600

原创 细说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 8317 3

原创 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 553

原创 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 2673

原创 一篇文章让你搞懂如何通过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 811

原创 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 405

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

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

2020-06-12 18:27:08 867

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

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

2020-05-29 22:26:28 1195

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

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

2020-05-22 11:07:07 6893 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 520

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

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

2020-05-22 10:44:41 855

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

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

2020-05-22 10:35:12 735

原创 Nginx详解Location匹配规则

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

2020-05-20 11:55:31 473

原创 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 831

原创 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 2867

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

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

2020-05-20 09:50:57 786

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

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

2020-04-14 20:23:48 2352 1

原创 Netty编解码之ProtoBuf案例二

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

2020-01-01 20:42:02 977

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

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

2019-12-31 18:08:40 1079

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

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

2019-12-30 23:13:04 1272

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

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

2019-12-29 15:29:57 1816 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 2066

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

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

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

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

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

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

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

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

2019-12-28 15:37:47 4505

原创 Netty简单概述

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

2019-12-28 15:06:27 1493

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

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

2019-05-14

Assembly插件

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

2019-03-29

ORACLE-笔试题.doc

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

2019-05-14

波波烤鸭的留言板

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

空空如也

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

TA关注的人 TA的粉丝

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