自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式网站架构:缓存在分布式系统中的应用

缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。一、缓存概述缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。1.1缓存的原理(1) 将数据写入/读取速度更快的存储(设备);(2) 将数据缓存到离应用最近的位置;(3)...

2019-08-08 11:33:09 695

原创 详解Proxy代理模式的场景分析

代理模式是一个十分优秀的软件架构模式,许多应用都用到了代理模式。代理模式就是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不合适或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。这次主要讲解一下代理模式的实例、解决的问题部分。在java框架中有一种框架就用到了动态代理模式,spring框架中的aop技术,基于代理模式。下面我将以befor...

2019-08-07 17:45:24 723

原创 ReentrantReadWriteLock深入解析

ReentrantLock在并发情况下只允许单个线程执行受保护的代码,而在大部分应用中都是读多写少,所以,如果使用ReentrantLock实现这种对共享数据的并发访问控制,将严重影响整体的性能。ReentrantReadWriteLock中提供的读取锁(ReadLock)可以实现并发访问下的多读,写入锁(WriteLock)可以实现每次只允许一个写操作。但是,在它的实现中,读、写是互斥的,即允许...

2019-08-06 16:31:39 537

原创 java设计模式之Java迭代器模式

在策略模式中,可以在运行时更改类行为或其算法。 这种类型的设计模式属于行为模式。在策略模式中,创建表示各种策略对象和其行为根据其策略对象而变化的上下文对象。 策略对象更改上下文对象的执行算法。实现实例在这个示例中,将创建一个 Strategy 接口,定义实现策略接口的操作和具体策略类。 上下文类- Context 是使用策略的类。StrategyPatternDemo是一个演示类,...

2019-08-06 15:17:29 328

原创 Nginx 极简教程

什么是Nginx?Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。什么是反向代理?反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向...

2019-08-06 11:41:40 359

原创 MySQL深入剖析-SQL语句优化

SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。1> 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。...

2019-08-05 19:12:41 320

原创 浅谈Spring的AOP实现-代理机制

说起Spring的AOP(Aspect-Oriented Programming)面向切面编程大家都很熟悉(Spring不是这次博文的重点),但是我先提出几个问题,看看同学们是否了解,如果了解的话可以不用继续往下读:1. Spring的AOP的实现方式有哪些?2. 为什么使用代理机制?3. 它们是怎么实现的?4. 它们的区别是什么?下面进入正题,Spring采用代理的方式实现A...

2019-08-05 15:50:37 358

原创 深入探索Java工作原理:JVM,内存回收!

Java语言引入了Java虚拟机,具有跨平台运行的功能,能够很好地适应各种Web应用。同时,为了提高Java语言的性能和健壮性,还引入了如垃圾回收机制等新功能,通过这些改进让Java具有其独特的工作原理。1.Java虚拟机Java虚拟机(Java Virtual Machine,JVM)是软件模拟的计算机,它可以在任何处理器上(无论是在计算机中还是在其他电子设备中)安全兼容地执行保存...

2019-08-05 11:50:38 320

原创 深入理解Java正则表达式

概述Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。深入理解Java正则表达式:(为了能看清,本文正则表达式用中文的句号代替英文句点)英文句点符号:匹配单个任意字符。eg:表达式”t。o 可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t...

2019-08-03 20:04:50 351

原创 Caffeine缓存

简介我们来看看 Caffeine — 一个高性能的 Java 缓存库。缓存和 Map 之间的根本区别在于缓存可以回收存储的 item。回收策略为在指定时间删除哪些对象。此策略很直接影响缓存的命中率 — 缓存库的一个重要特征。Caffeine 因使用 Window TinyLfu 回收策略,提供了一个近乎最高的命中率。填充策略(Population)Caffeine 给我们提...

2019-08-03 19:39:39 994

原创 SpringBoot实现Java高并发秒杀系统之Service层开发

Service接口的设计之前我们写好了DAO层的接口,这里我们要开始着手编写业务层接口,然后编写业务层接口的实现类并编写业务层的核心逻辑。设计业务层接口,应该站在使用者角度上设计,如我们应该做到:1.定义业务方法的颗粒度要细。 2.方法的参数要明确简练,不建议使用类似Map这种类型,让使用者可以封装进Map中一堆参数而传递进来,尽量精确到哪些参数。 3.方法的return返回值...

2019-08-03 15:11:07 817

原创 一文帮你搞懂 MySQL 单表查询的底层实现

我们对大家这种MySQL的使用者来讲,日常用的数最多的就是查询功能。DBA隔三差五丢过去一部分慢查询语句让优化,如果连查询是怎么去执行的都不怎么明白还优化个毛线,因此现在是时候掌握真正的技术了。MySQL有个称做查询优化器的模块,这条查询语句通过语法解析以后就会被交给查询优化器来通过优化,优化的结果就是生成有一个所谓的去执行计划,这个去执行计划表明了应该使用哪些索引通过查询,表之间的连接顺序...

2019-08-03 11:25:50 366

原创 Elasticsearch—基础介绍及索引原理分析

最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elasticsearch感兴趣/想了解的同学有所帮助。 同时也希望有发现内容不正确或者有疑问的地方,望指明,一起探讨,学习,进步。介绍Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一...

2019-08-02 19:30:31 296

原创 SSM框架之Log4j配置

前言  之前搭建SSM框架的时候我们曾经配置过log4j.properties文件,那么这个文件主要是干什么的呢?配置的格式有哪些?在本文中会进行相关的讲解。log4j.properties什么是Log4j?  Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Sy...

2019-08-02 17:59:04 895

原创 redis的安装和使用

RedisRedis命令参考网址:http://doc.redisfans.com/Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-...

2019-08-02 14:02:35 353

原创 JDBC数据库连接池

DriverManager的实现方式一般是在主程序中建立数据库的连接,然后进行数据库的操作,操作完毕后断开数据库连接。然而这种模式存有一些问题。普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。...

2019-08-02 11:46:36 253

原创 java代码优化——遇到多参数构造器时考虑构建器

1. 构建器是什么?构建器也是一种获得类对象的方法,在前面我们介绍了通过 构造器 与 静态工厂方法 两种方式来获得类的对象。这里我们写一个 Person 类,并为这个类加上构建器:public class Person { private final String name; private final int age; private fi...

2019-08-01 20:38:08 359

原创 ​​​​​​JAVA软件项目研发流程

-- 谈需求(客户提需求,有客户项目经理,技术经理)-- 可行性分析报告(市场调研)【接项目】{人员配比,项目成本}(竞标)-- 概要设计-- 静态模型(建模工具)[产品经理]->HTML-- 审查相关功能(功能性|非功能性)是否满足客户需求-- 定版(快照版1.1.32)-- 数据库的设计(PowerDesigner)(测试数据)-> 小型公司(...

2019-08-01 19:39:50 335

原创 class版本不兼容错误原因分析

在JDK 1.6工程中使用外部JAR包的时候经常碰到这样的问题:Unsupported major.minor version 51.0。为了解决这个问题,首先我们要明白:major.minor version的含义。major.minor version是在class文件中定义的,表示class文件的版本。例如:JDK 1.7 –target 1.7 版本号51.0JDK 1.7...

2019-08-01 15:19:27 1250

原创 分布式事务解决方案——柔性事务与服务模式

在分布式系统中,存在CAP理论,即可用性、数据一致性和分区容错性无法同时满足。所以,一个基于CAP的最终一致性理论BASE理论是目前解决分布式问题比较靠谱的。在分布式系统中,是无法使用本地事务保证数据的一致性的。一种标准的分布式事务就是全局事务(DTP模型)。他是基于2PC来控制的。但是由于2PC自身就存在同步阻塞的问题,这也就导致全局事务效率很低。所以,这种全局事务并不适合解决大型网站的分布...

2019-08-01 11:34:13 359

空空如也

空空如也

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

TA关注的人

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