自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Willson_L的博客

上若善水

  • 博客(117)
  • 问答 (1)
  • 收藏
  • 关注

原创 设计模式之路 | 目录

设计模式之路 | 目录设计模式之路 | GoF 的 23 种设计模式的分类和功能设计模式之路 | 软件设计模式概述设计模式之路 | 面向对象设计原则 —— 单一职责原则设计模式之路 | 面向对象设计原则 —— 接口隔离原则设计模式之路 | 面向对象设计原则 —— 依赖倒置原则设计模式之路 | 面向对象设计原则 —— 开闭原则设计模式之路 | 面向对象设计原则 —— 迪米...

2019-12-11 13:29:07 237

原创 Redis入门学习和面试题

Redis快速入门与环境搭建1. Redis-简单介绍2. Redis-linux环境搭建以及配置3. Redis-数据类型和指令4. Redis-主从复制+哨兵5. Redis-事务、持久化与订阅发布6. Redis-集群搭建(一)6. Redis-集群搭建(二)遇到的问题在执行gem install redis时 : ERROR: Error inst...

2019-10-17 14:11:45 287

原创 Nginx学习笔记

本人的nginx学习笔记,学完快速入门后,可以配置nginx的动静分离,负载匀衡、高可用!!快速入门1.Nginx安装以及常用的命令2.Nginx功能介绍3.Nginx服务器基础配置指令4.Nginx配置反向代理5.Nginx负载均衡配置6.Nginx动静分离配置7.Nginx高可用配置...

2020-03-11 17:17:21 418 1

转载 设计模式之路 | 外观模式

外观模式的定义与特点外观(Facade)模式的定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。外观(Facade)模式是“迪米特法则”的典型应用,它有以下主要优点。降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调...

2020-01-22 14:27:28 409

转载 设计模式之路 | 组合模式

组合模式的定义与特点组合(Composite)模式的定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。组合模式的主要优点有:组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码; 更容易在组合体内加入新的对象,客户端不会因为...

2019-12-18 13:47:46 401

原创 设计模式之路 | 装饰者模式

装饰模式的定义与特点装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。装饰(Decorator)模式的主要优点有:采用装饰模式扩展对象的功能比采用继承方式更加灵活。 可以设计出多个不同的具体装饰类,创造出多个不同行为的组合。其主要缺点是:装饰模式增加了许多子类,如果过度使用会使程序变得很...

2019-12-17 16:35:01 249

转载 设计模式之路 | 桥接模式

桥接模式的定义与特点桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。桥接(Bridge)模式的优点是:由于抽象与实现分离,所以扩展能力强; 其实现细节对客户透明。缺点是:由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,这增加了系统的理解与设计难度。桥接模式...

2019-12-13 10:06:43 272

原创 设计模式之路 | 适配器模式

模式的定义与特点适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。该模式的主要优点如下。客户端通过适配器可以透明地调用目标接口。 复用了现存的类,程序员...

2019-12-11 17:27:01 281

原创 设计模式之路 | 建造者模式

模式的定义与特点建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。该模式的主要优点如下:各个具体的建造者相互独立,有利于系统的扩展。 客户端不必知道产品内部组...

2019-12-11 11:12:45 237

原创 设计模式之路 | 原型模式

原型模式的定义与特点原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。例如,Windows 操作系统的安装通常较耗时,如果复制就快了很多。在生活中复制的例子非常多,这里不一一列举了。原型模式的结构与实现由于 ...

2019-12-10 15:22:19 217

转载 设计模式之路 | 抽象工厂

模式的定义与特点抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。使用抽象工厂模式一般要满足以下条件。系统中有多个产品族,每个具体工厂创建同一族但属...

2019-12-10 11:03:55 261

原创 设计模式之路 | 工厂方法

模式的定义与特点工厂方法(FactoryMethod)模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”,它不属于 GoF 的 23 种经典设计模式,它的缺点是增...

2019-12-10 10:17:26 232

原创 设计模式之路 | 单例模式

单例模式的定义与特点单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用...

2019-12-09 15:50:27 282

转载 设计模式之路 | 面向对象设计原则 —— 合成复用原则

合成复用原则的定义合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭...

2019-12-05 09:48:13 309

转载 设计模式之路 | 面向对象设计原则 —— 迪米特法则

迪米特法则的定义迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern University)的一个名为迪米特(Demeter)的研究项目,由伊恩·荷兰(Ian Holland)提出,被 UML 创始者之一的布奇(Booch)普及,后来又因为在经典著作《...

2019-12-05 09:45:30 295

转载 设计模式之路 | 面向对象设计原则 —— 依赖倒置原则

依赖倒置原则的定义依赖倒置原则(Dependence Inversion Principle,DIP)是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在C++Report 上发表的文章。依赖倒置原则的原始定义为:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules...

2019-12-04 15:33:23 245

转载 设计模式之路 | 面向对象设计原则 —— 接口隔离原则

接口隔离原则的定义接口隔离原则(Interface Segregation Principle,ISP)要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。2002 年罗伯特·C.马丁给“接口隔离原则”的定义是:客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods the...

2019-12-04 14:13:52 200

转载 设计模式之路 | 面向对象设计原则 —— 单一职责原则

单一职责原则的定义单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than on...

2019-12-04 10:38:23 263

原创 2.Kafka安装和启动

1. 下载zookeeper和kafka,并上传解压本人看尚硅谷视频学习,所以本班和视频中的一样。kafka使用的是kafka_2.11-0.11.0.0,zookeeper用的是最新版。tar -zxvfapache-zookeeper-3.5.6.tar.gz -C /usr/localmvapache-zookeeper-3.5.6zookeepertar -xvfk...

2019-10-25 11:09:22 364

原创 1.Kafka概述

1.1 定义Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。1.2 消息队列 1.2.1 传统消息队列的应用场景使用消息队列的好处 1)解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)可恢复性 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所 以即使一个处理消...

2019-10-22 20:23:33 519

转载 7.Nginx高可用配置

利用keepalived实现高可靠配置2.1.高可靠概念  HA(High Available):高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。 2.2.高可靠软件keepalived  keepalive是一款可以实现高可靠的软件,通常部署在2台服务器上,分为一主一备。Keepalived可以对本机上的进程进行检...

2019-10-22 14:13:49 360

原创 6.Nginx动静分离配置

实现效果:在浏览器中输入 http://192.168.72.128/images/wait_send.png访问到图片,访问 http://192.168.72.128/www/test.html静态页面。1. 安装jdk8https://wilsonlee.blog.csdn.net/article/details/828397762. 安装两个 tomcat安...

2019-10-22 13:54:31 605

原创 5.Nginx负载均衡配置

实现效果:在浏览器中输入 192.168.72.128/edu/index.html,平均访问到 8080 和 8081 的通么cat 中去。(192.168.72.128 为 linux 的 ip 地址)。1. 安装jdk8https://wilsonlee.blog.csdn.net/article/details/828397762. 安装两个 tomcat安装 ...

2019-10-22 10:07:37 378

原创 4.Nginx配置反向代理

实现效果:在浏览器中访问 linux 的 ip 则自动访问到 linux 中的 tomcat 主页面中。1. 安装JDK8https://wilsonlee.blog.csdn.net/article/details/828397762. 安装tomcat安装 tomcat,并使用默认的端口号 80801. 下载tomcat apache-tomcat-8.5.47...

2019-10-22 08:47:14 212

转载 CentOS 6.5系统下iptables防火墙开放80 3306 22端口

#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT然后保存:#/etc/rc.d/init.d/iptables save...

2019-10-21 14:05:06 275

原创 2.Nginx功能介绍

Nginx可以做反向代理和负载均衡,还能用作正向代理来进行上网等动能。2.1 正向代理和反向代理正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端访问Internet,则需要通过代理服务器来访问。这种代理服务就称为正向代理。正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求反...

2019-10-21 11:18:50 343

原创 Redis分布式锁,蚂蚁金服面试题

1. 什么是分布式锁分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现。如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往通过互斥来防止批次干扰。分布式锁可以保证分布式部署的应用集群中,同一个方法在同一个操作只能被一台机器上的一个线程执行。要满足一下三点:1. 互斥性,在任意时刻,只能有一个客户端拥有锁去操作数据。2. 不会产生死锁,即使某一客户端在...

2019-10-17 14:01:46 2080

原创 6. Docker上安装Mysql5.7与数据备份

1.docker search mysql 查找mysql2.docker pull mysql:5.7 拉取mysql5.73.docker run -p 3308:3306 --name mysql -v /opt/my/mysql/conf:/etc/mysql/conf.d -v /opt/my/mysql/logs:/logs -v /opt/my/my...

2019-10-09 09:16:13 402

原创 5.Dockerfile概述以及指令

Dockerfile是什么?Dockerfile使用来构建Docker镜像的文本格式的构建文件,是由一系列命令和参数构成的脚本。用户可以使用Dockerfile来快速创建自定义的镜像。从应用软件的的角度看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段:1. Dockerfile是软件的原材料2. Docker镜像是软件的交付品3. Dock...

2019-10-08 16:52:56 300

原创 docker build 时提示WARNING: IPv4 forwarding is disabled. Networking will not work.

执行docker build -f /opt/my/tomcat9/Dockerfile -t mytomcat9:1.0 . 时出现错误!!WARNING: IPv4 forwarding is disabled. Networking will not work.解决方法:vim /usr/lib/sysctl.d/00-system.conf最后一行加上:net....

2019-10-08 15:07:32 392

原创 Docker安装以及快速入门

对于开发和运维人员来说,最梦寐以求的的效果可能就是一次创建或配置,之后可以在任意地方、任意时间让应用正常运行,而Docker恰恰可以实现这一终极目标的“瑞士军刀”!!!本人写这个文章主要是为了再学习的过程中让自己印象更加深刻,同时希望可以帮到docker的入门者。如有错误,欢迎评论指出,谢谢各位!!Docker安装以及快速入门(目录)1.Docker CE CentOS...

2019-09-30 13:14:42 242

转载 4.Docker容器数据卷详解(共享数据)

Docker容器数据卷是什么?当我们在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们关闭docker容器时是会消失的,但是其中产生的部分内容我们是希望能够把它给保存起来另作用途的,Docker将应用与运行环境打包成容器发布,我们希望在运行过程钟产生的部分数据是可以持久化的的,而且容器之间我们希望能够实现数据共享。通俗地来说,docker容器数据卷可以看成使我们生活中...

2019-09-29 14:21:53 358

原创 3.Docker常用命令介绍

1. docker帮助命令1.1 docker version 查看docker版本信息1.2 docker info 查看docker配置信息1.3 docker --help 查看docker命令2. 镜像命令2.1 docker images 查看本机上可以运行的镜像REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAG...

2019-09-29 11:04:11 203

原创 2.Docker简单介绍

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接收命令并管理主机上的容器。容器:docker容器类似于一个轻量级的沙箱,docker利用容器来运行和隔离应用。镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户...

2019-09-27 09:59:06 213

转载 设计模式之路 | 面向对象设计原则 —— 里氏替换原则

里氏替换原则的定义里氏替换原则(Liskov Substitution Principle,LSP)由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年的“面向对象技术的高峰会议”(OOPSLA)上发表的一篇文章《数据抽象和层次》(Data Abstraction and Hierarchy)里提出来的,她提出:继承必须确保超类所拥有的性质在子类中仍然成立(Inheri...

2019-09-25 16:11:47 497

转载 设计模式之路 | 面向对象设计原则 —— 开闭原则

开闭原则的定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but ...

2019-09-25 16:05:20 278

转载 设计模式之路 | GoF 的 23 种设计模式的分类和功能

1. 根据目的来分根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式3 种。创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF 中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。 结构型模式:用于描述如何将类或对象按某种布局组成更大的结构,GoF 中提供了代理、适配器、桥接、装饰、外观、享元、组合等 ...

2019-09-25 16:03:25 311

转载 设计模式之路 | 软件设计模式概述

软件设计模式的产生背景“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造(A Pattern Language: Towns Building Construction)中描述了一些常见的...

2019-09-23 14:08:23 280

原创 6.JVM基础-类文件结构(一)—— Class类文件结构

Java 源代码首先需要使用 Javac 编译器编译成 .class 文件,然后由 JVM 执行 .class 文件,从而程序开始运行。JVM 只认识 .class 文件,它不关心是何种语言生成了 .class 文件,只要 .class 文件符合 JVM 的规范就能运行。目前已经有 JRuby、Jython、Scala 等语言能够在 JVM 上运行。它们有各自的语法规则,不过它们的编译器都能将...

2019-09-18 10:41:26 326

转载 BeanFactory 简介以及它 和FactoryBean的区别(阿里面试)

BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。ApplicationContext接口,它由BeanFactory接口派生而来,ApplicationContext包含BeanFactory的所有功能,通常建议比BeanFa...

2019-09-16 16:01:37 328

空空如也

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

TA关注的人

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