自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 RabbitMQ集群环境搭建

一、安装基础工具包二:安装Erlang和RabbitMQ三:RabbitMQ集群四:Haproxy负载均衡和KeepAlived高可用五:Prometheus和Grafana监控

2022-07-14 17:14:45 809 1

原创 Kafka安装与使用

Kafka安装与使用1 下载Kafka2 启动Zookeeper3 启动Kafka4 创建Topic5 使用Kafka5.1 创建一个生产者5.2 创建两个消费者5.3 发送消息1 下载Kafka从官网下载Kafka压缩包,解压到本地目录即可完成安装。https://kafka.apache.org/downloads本文基于Kafka 3.1.0版本、Windows系统环境下安装使用。2 启动Zookeeper从第一步下载解压的目录中可以看到Kafka自带Zookeeper配置文件、Jar包

2022-04-06 16:51:56 2026

原创 Redis从基础到实战

Redis从基础到实战1 Redis数据类型1.1 String类型的底层编码:int、enbstr、row1.2 hash类型 数组+链表1.3 list列表(有序字符串)1.4 set集合(无序的不重复)1.5 zset有序链表(有序不重复)1.6 其他数据结构2 Redis高级特性2.1 发布订阅2.2 事务功能2.3 Lua脚本3 Redis原理3.1 Redis为什么这么快?3.2 过期策略3.3 Redis持久化策略3.3.1 RDB: Redis DataBase, 记录快照3.3.2 AO

2022-02-28 16:12:41 461

原创 Nginx的应用场景

Nginx的应用场景1、虚拟主机2、反向代理3、负载均衡4、HTTP缓存5、动静分离6、数据压缩7、跨域请求Nginx文档:http://nginx.org/en/docs/1、虚拟主机在Nginx服务器中创建不同的目录,然后在Nginx的启动配置文件中将监听的端口请求映射到对应的目录中,从而实现虚拟主机的效果。http { server { listen 80; server_name www.demo01.com; root /usr/local/soft/nginx/domain

2022-02-14 16:35:53 1558

原创 代理设计模式

代理模式静态代理动态代理JDK动态代理CGLIB动态代理代理模式属于结构型模式。适用于需要对目标对象做功能增强 或者 需要保护目标对象的场景。包括静态代理和动态代理静态代理静态代理通常是新增一个代理类,持有目标对象的引用,代理类在编码阶段就写好了,通常只对持有的对象做代理。public interface IObject { public void query();}public class OneObject implements IObject{ @Override public vo

2021-12-29 17:52:38 182

原创 建造者设计模式

建造者模式建造者模式属于创建型模式。适用于对象的创建过程复杂多样,构造步骤需要交给用户去自定义的情况。更加注重创建过程的灵活性,常与链式编程一起使用。对象:/** * 对象中有构造方法可能多种多样,建造出来的对象不尽相同时, * 可以采用新增一个建造者来定义构造过程,并将构造步骤交给用户去自定义 */public class OneObject { private String a; private String b; /** * 构造方法多种多样:

2021-12-29 11:01:55 154

原创 原型设计模式

原型模式浅克隆深克隆原型模式属于创建型模式,适用于对象的创建过程比较复杂或者需要循环创建大量复杂对象的情况。包括【浅克隆】和【深克隆】两种概念。由于原型模式可以直接复制内存地址,所以比new或构造方法创建对象更高效。浅克隆浅克隆是指创建的目标对象拷贝原型对象的程度相对较浅。主要体现在其只实际拷贝了基本数据类型、String 以及 引用对象的引用地址,并没有拷贝引用对象的地址值数据。/** * 浅拷贝 * Object实现了Cloneable,可以通过clone方法实现浅拷贝 */publi

2021-12-28 16:25:04 94 1

原创 单例设计模式

单例模式饿汉式单例懒汉式单例容器式单例枚举式单例注册式单例线程隔离式单例单例模式属于创建型模式,用于在系统运行过程中保证只有一个实例。创建单例面临的问题有:反射破坏单例,多线程并发破坏、序列化破坏单例饿汉式单例/** * 懒汉式单例 * 已解决反射破坏、序列化问题 * 类加载时就创建了单例,不存在线程安全问题 */public class HungrySingleton { // 类加载时就初始化 private static HungrySingleton hungryS

2021-12-28 11:46:38 524 1

原创 MongoDB 集群配置启动

mongodb 集群配置启动dbpath=/opt/mymongo/master-slave/datalogpath=/opt/mymongo/master-slave/log/mongodb.log/mongodblogappend=truefork=truebind_ip=0.0.0.0port=27017数据副本集群:replset=replset01shardsvr=true配置副本集群:replset=configrsconfigsvr=true通过上述配置运行mon

2021-12-27 14:23:51 892

原创 工厂设计模式

GoF 23种设计模式中的工厂模式。分为简单工厂模式、工厂方法模式、抽像工厂模式。简单工厂模式简单工厂模式是将对象的生成封装到一个工厂类中。在工厂类总根据入参创建对应的对象。比如:public interface IObject() {}public class OneObject implements IObject() {}public class TwoObject implements IObject() {}public class Factory { public IObje

2021-12-27 12:45:12 186

原创 Mybatis-Spring源码设计思想分析

3.Mybatis-Spring源码设计思想分析JDBC链接数据库逻辑优化冗余代码抽象思路Mybatis-Spring整合使用注册初始化时创建代理类调用装载过程调用执行方法时调用的设计思想主要中间对象JDBC链接数据库逻辑1、加载驱动,Driver.ClassLoad(OracleJDBC);2、创建连接Connection,url、账户密码3、获取语句集4、前置参数处理5、执行6、获取结果集7、关闭连接8、返回查询结果优化冗余代码抽象思路1、加载驱动、创建连接、关闭连接 封装到一个顶

2020-06-03 17:00:51 239

原创 常见的7种设计原则

开闭原则对扩展开放,对修改关闭。依赖倒置原则业务代码持有顶层抽象(依赖接口,而不直接依赖具体实现),后续根据业务场景注入具体实现类,方便扩展与维护。单一职责原则每个接口、类、方法只承担一种业务职能。降低类的复杂度,提高可维护性以及便于后期扩展。接口隔离原则每种功能用专门的接口定义,不在一个接口中定义太多行为。子类实现需要什么行为时,可以implement多个需要的行为接口。迪米特原则(最小知道原则)每个类的全局属性、方法传参等属于最小知道范围,其余方法内传递或新增的对象等属于耦合对

2020-06-03 15:42:01 1437

原创 认识线程和线程池

1.认识线程什么是线程线程线程池线程的特性线程的使用创建/启动阻塞通知/停止线程的原理注意事项什么是线程线程线程 是CPU执行的最小单位。计算机创建的每个进程中可以包含N个线程。Java(高级语言)通知JVM需要创建线程,JVM通过不同平台的不同指令通知计算机创建线程。JAVA线程的6种状态: NEW,RUN(就绪、运行),WAIT,TIME_WAIT,BLOCKED,DEAD。操作系统中线程的5种状态:操作系统中的线程没有NEW和DEAD两个概念;RUNNABLE,RUNNING,WAIT,T

2020-05-17 15:34:26 262

空空如也

空空如也

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

TA关注的人

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