自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杆子的博客

java设计模式之策略与工厂模式结合

  • 博客(17)
  • 收藏
  • 关注

原创 Kubernetes集群资源利用率提升--Pod压缩实现资源超卖

Kubernetes集群资源利用率提升–Pod压缩实现资源超卖背景:在公司开发使用虚机迁移至私有云背景下,所有环境的业务服务及中间件开始纳入自建的kubernetes集群进行统一管理,据粗略统计,核心集群单中间件已达2500多个pod。如此众多的pod如果按照一比一的资源分配方式,也就是每个pod足额分配,占用的cpu和内存资源将非常庞大。另外在大多数情况下,每个pod并不是吃满整个分配资源的,所以资源利用率也不够高,相比于虚机部署方式带来的收益并不明显。在生产实践中,我们可以通过resource的r

2021-09-27 14:58:24 1175

原创 spring学习记录

1.对AOP的理解AOP面向切面是oop思想的一种延伸,将一些与业务无关却又重复的逻辑和行为抽象为一个统一的模块,提高代码复用性和简化管理,如平时的日志和审计等等。我们平时接触到的有两种,一种是spring aop 和aspectj。spring的过滤器和拦截器是spring aop的一种实现,上一个项目中使用到统计接口调用情况的代码是使用aspectj+注解实现的。相对于spring ao...

2020-02-08 20:58:46 122

原创 mysql执行顺序

最近工作中有业务需要对查询SQL进行解析,分解出查询字段和对应表的关系,以便从数据字典找到对应字段的安全级别进行脱敏,从Durid的一个sql解析插件中找到了解决方案,看到durid中抽象出来的一大堆元素,记不起一条SQL前后的执行顺序了,在这里回顾一下。一条SQL大致内容包括如下:select filed from table1 join table2 where on group ...

2019-12-01 23:11:26 106

转载 转载:TCP的三次握手和四次挥手

https://blog.csdn.net/qq_38950316/article/details/81087809这篇博客写的很详细自己理解:首先要明白几个名词:seq,ack,SYN,ACK,FIN大写的表示标志位,只有0,1两种状态,seq为序列号,ack为确认序列号一、tcp的三次握手过程客户端向服务端发送seq=x,SYN=1,客户端进入sent状态服务端收到数据,将x+...

2019-10-15 23:34:14 101

原创 SpringMVC源码分析(二)

这一篇记录springmvc的执行过程当客户端发起http请求到达容器时会分配指定的servlet,并执行servlet的service方法。在springmvc中,所有请求都会到达DispatcherServlet,同上一篇原理一样,DispatcherServlet中并没有service方法,而是其父类重写了HttpServlet中的service方法,最终调用了DispatcherServ...

2019-10-05 17:25:24 122

原创 SpringMVC源码分析(一)

这一篇记录SpringMvc的初始化过程Springmvc的入口在DispacherServlet,这个类是配置在web.xml中的,容器启动时就会加载<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframewor...

2019-10-05 11:17:23 93

原创 Hashmap源码阅读

首先理解HashMap的成员变量作用HashMap的成员变量分为两个部分,第一部分是static finale修饰的成员变量,和 transient修饰的瞬时变量: //无参构造默认初始化大小 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //最大容量,也就是数组最大长度 stati...

2019-09-14 01:07:45 134

原创 java中的锁

java中的锁可以分为哪些?公平锁/非公平锁可重入锁独享锁/共享锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁公平锁和非公平锁synchronize是非公平锁,reentrantLock可以通过构造方法指定为公平还是非公平锁。公平性指的是每一个线程竞争锁是否公平。常见的非公平锁:synchronized,reentrant非公平锁:new reentrant(true)...

2019-09-08 23:53:05 181

原创 ThreadLocal源码学习

ThreadLocal维护线程变量的原理:调用Threadlocal.set(value)时发生了什么? public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) ...

2019-09-04 00:40:45 82

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

适配器模式分为类适配器和对象适配器,两个不同接口的实现类中,适配器类持有另外一个类的引用称之为对象适配器。适配器类继承另外一个类并实现自己的接口称之为类适配器。对象适配器:public class Ps2ObjectAdapter implements Ps2 { private Usb usb; public Ps2ObjectAdapter(){ usb =...

2019-08-27 22:15:23 63

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

为什么要使用装饰者模式?在一个类中需要添加一些非核心的功能,并且这些非核心功能只是为了满足特定情况下的特定行为时,就可以使用装饰者模式将这非核心功能区分开来,降低类的复杂度。使用继承也可以做到以上的区分,但是继承又有什么缺点呢?InputStream的部分UMl图在输入字节流中,有五大基本流这里只列出了文件和字节数组,如果需要对这两个流增加缓存,转换和回写的功能,通过继承的方式单单实习一个...

2019-08-21 23:53:35 105

原创 设计模式之代理模式

动态代理和静态代理都依赖于接口,所以没有实现接口的类是不能实现下面两种代理的。另外还有一种代理模式CGLIB,不需要实现接口,只要委托类没有被final修饰,则可被代理。在spring中,如果一个类有接口则默认使用jdk的动态代理,否则使用CGlib代理。静态代理基于接口的一种代理方式,可总结为,代理类和委托类都实现同一个接口,代理类中持有委托类的一个引用,代码实现很简单,直接略过。动态代...

2019-08-19 00:21:57 76

原创 关于工作中的redis使用和一些理论知识

一直疑惑的是redis在单线程环境下,怎么做到如此快的速度处理多个请求。查阅了很多资料,看到了大牛的一篇关于redis的I/O多路复用的博客,写的非常好,对I/O多路复用有了一定的了解。redis的线程模型redis基于reactor模式开发了网络事件处理器,这个处理器叫做文件事件处理器,底层逻辑不是很了解。redis采用epoll实现了非阻塞的I/O多路复用机制,相比与select的轮询...

2019-08-15 23:57:40 281

原创 java设计模式之单例模式

饿汉模式线程安全,但是在没有调用获取实例的方法时,实例就已经被初始化public class Singleton { static Singleton singleton =new Singleton(); public static Singleton getSingleton(){ return singleton; }}懒汉模式实例只会在被...

2019-08-14 23:22:59 72

原创 缓存与数据库的双写一致性

项目中用到其他服务一些数据,每次调用接口时候都需要发起请求到另外一个服务获取数据。跨机房和地区的调用,一些网络波动引起的间发性响应缓慢。其实类似于服务树这种较大的数据,每个人的权限变化不会太大,获取的服务树节点可以考虑用缓存,给定一个过期时间,这样极大的解决获取权限树时转圈圈的情况。使用缓存造成的问题:使用缓存不得不提到的一点就是缓存和数据库的一致性。是先更新数据库,再操作缓存,还是先操作缓存...

2019-08-13 23:59:46 118

原创 java多线程之线程池

线程池利用Executors的静态方法创建1.Executors.newFixedThreadPools该类型线程池会先创建一个指定大小的线程池,从描述可以看出,此线程池是一个定长的线程池,线程数最多不会超过指定值,当满足条件的线程被提交且可用线程数已满,该线程会加入等待队列中。如果有任意一个线程在被终止之前发生失败,会创建一个新的线程替代。Param可以看到该方法还有一个重载...

2019-08-04 17:45:16 202

原创 java设计模式之策略结合工厂模式

java设计模式之策略模式策略模式:定义了算法家族,分别封装,让他们之间客户互相替换,此模式让算法的变化,不会影响到使用算法的客户 ---------照抄《大话设计模式》 - -!新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮...

2019-04-28 22:22:09 893

空空如也

空空如也

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

TA关注的人

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