自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程笔记——interrupt()、interrupted和isInterrupted()

interrupt():实例方法,thread.interrupt()表示给线程thread打上中断标志;isInterrupted():实例方法,thread.isInterrupted()表示获取线程thread的中断标志;interrupted():静态方法,Thread.interrupted()表示获取当前线程的中断标志,如果当前线程中断标志为true,调用该方法后当前你线程的中...

2019-08-17 18:01:04 214

原创 2018java准备过的面试题(一)java基础

以下是我准备过/面试到的面试题,准备的题目多是从网上找的,但基本都是自己整理的,不能保证回答的一定严谨。可能有重复的题目,有需要的看看。面向对象的特征:继承、封装和多态继承:增加程序的重用性。比如一个学生类继承人类,人类的许多属性就不需要再次定义。封装:将对象属性封装起来,只暴露需要的接口给其他类使用。对类进行修改时,不改变接口声明,保证了模块之间的相对独立性。多态:实现多态的两个...

2019-01-28 10:13:52 6091

原创 Redis常见面试问题

Redis 有哪些数据类型String字符串:可以是字符串,整数或者浮点数,整数和浮点数可执行自增操作:incr key,整数自增可以用来实现全局唯一id的生成。String是最常用的一种类型,以key-value形式存在于内存中。 List列表:底层采用链表或者ziplist实现,里面的元素可重复。可以用来存储一些按时间顺序的消息显示. Set集合:底层采用hashtable或者ints...

2018-09-12 16:46:28 371

原创 spring容器加载过程

一、封装配置文件spring的配置文件读取是通过ClassPathResource进行封装的。ClassPathResource类是简介实现了接口Resource,而Resource的作用是为了封装所有spring内部使用到的底层资源:File,URL,ClassPath等。Resource接口的定义如下:spring的配置文件读取是通过ClassPathResource进行封装的。C...

2018-09-07 15:19:56 2497

原创 redis设计与实现读书笔记——事务

Redis通过MULTI、EXEC、WATCH等命令来实现事务功能。事务提供了一种将多个命令请求打包,然后一次性、按顺序的执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而改去执行其他客户端请求,他会将事务中的所有命令都执行完毕,然后才去处理其他客户端的命令请求。事务的实现事务开始:redis > MULTI def MULTI(): #打开事务标识 c...

2018-09-07 10:15:58 231

原创 redis设计与实现读书笔记——底层数据结构

简单动态字符串struct sdshdr{ //记录buf数组中已使用字节的数量,等于SDS所保存的字符串的长度 int len; //记录buf数组中未被使用的字节的数量 int free; //字节数组,用于保存字符串 char[] buf;}常数复杂度获取字符串长度C字符串要获取长度必须遍历整个字符串;而对于SDS...

2018-09-06 14:26:52 165

原创 redis设计与实现读书笔记——发布与订阅

频道的订阅与退订Redis将所有频道的订阅关系都保存在服务器状态的pubsub_channels字典里面,这个字典的键是某个被订阅的频道,而键的值则是一个链表,链表里面记录了所有订阅这个频道的客户端。struct redisServer{ //…… //保存所有频道的订阅关系 dict *pubsub_channels; //……};订阅频道...

2018-09-06 10:43:21 218

原创 redis设计与实现读书笔记——集群

节点启动节点一个节点就是运行在集群模式下的redis服务器,redis服务器在启动时会根据cluster-enabled配置选项是否位yes来决定是否开启服务器的集群模式。集群数据结构//一个节点的当前状态struct clusterNode{ //创建节点的时间 mstime_t ctime; //节点的名字,由40个16进制字符组成 char n...

2018-09-05 14:14:10 257

原创 redis设计与实现读书笔记——sentinel

Sentinel是Redis高可用性的解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将已下线主服务器属下的模模个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。启动并初始化Sentinel 初始化服务器 将普...

2018-08-30 17:23:06 360

原创 redis设计与实现读书笔记——复制

Redis的复制功能分为同步和命令传播两个操作:同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态;命令传播操作则用于在主服务器的数据库状态被修改,导致从服务器的数据库状态出现不一致时,让主从服务器的数据库重新回到一致状态。 完整重同步:从服务器向主服务器发送SYNC命令 收到SYNC命令的主服务器执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录...

2018-08-29 17:05:00 237

原创 redis设计与实现读书笔记——事件

文件事件:redis服务器通过套接字与客户端进行连接,而文件事件就是服务器对套接字操作的抽象。服务器和客户端的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作时间事件:redis服务器中的一些操作需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象 文件事件的处理器 连接应答处理器:用于对连接服务器监听套接字的客户端进行应答。当Redis...

2018-08-29 16:48:32 202

原创 java中的并发工具类

CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。例1:public class CountDownLatchTest { static CountDownLatch c = new CountDownLatch(2); public static void main(String[] args) throws Interrupte...

2018-08-01 15:40:45 244

原创 网上商城项目总结(九)搜索应用服务器solr及solrCloud

solr:独立的企业级搜索应用服务器,需要放到tomcat容器中使用。通常我们需要配置一个中文分析器,默认的分析器无法分析中文(只会把中文当作字符一个个解析)。这里我们使用IKAnalyzer。1.将IKAnalyzer2012FF_u1.jar加入到工程的lib下。将拓展词典(ext_stopword.dic这个词典中放忽略的字,如:的,哦,mydict.dic这个词典配置一些新词语,扩...

2018-07-31 16:40:05 480

原创 网上商城项目总结(八)缓存集群Redis-cluster

Redis-cluster架构:Redis-cluster特点:①、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。②、节点的fail是通过集群中超过半数的节点检测失效时才生效。(所以通常redis集群会配置奇数个)③、客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。...

2018-07-31 15:59:32 441

原创 网上商城项目总结(七)使用Redis 缓存 + 单点登陆系统模拟session

Redis:C语言开发的一种开源的高性能键值对数据库,是单线程的,不适合保存内容大的数据,会影响性能。NoSQL数据库,基于特殊的结构,将数据存到内存中的数据库(持久化数据方式RDB,AOF稍后写),性能更优,适合高并发读写,存储,访问需求。具有高扩展性,高可用性。Redis五种数据类型:①、字符串类型:最基础,最重要。key-value形式,用作缓存。主要方法,get/set,incr(...

2018-07-31 15:45:24 1417

原创 网上商城项目总结(六) 图片服务器FastFDS

传统的图片上传模式:集群环境下,传统的图片上传模式不能满足用户需求。保存在不同tomcat容器中的图片无法保证被访问到,因此需要搭建一个图片服务器,专门保存图片。集群环境下的图片上传模式:FastDFS是用c语言编写的一款开源的分布式文件系统。存储空间可以横向扩展,可以实现服务器的高可用。支持每个节点有备份机。FastDFS架构:Tracker:追踪/调度服务器,作...

2018-07-31 15:03:31 640

原创 网上商城项目总结(五)用户访问入口nginx

NGINX:高性能http服务器、反向代理服务器及电子邮件(IMAP、POP3)代理服务器,官方测试可支持5万并发。应用场景:1.http服务器,做网页静态服务器2.虚拟主机,在一台服务器上虚拟出多个网站,如个人网站使用的虚拟主机3.反向代理,负载均衡。网站访问量达到一定程度,需多台服务器集群,使用NGINX反向代理,多台服务器平均分担负载。可以在配置中修改服务器的权重weight...

2018-07-30 16:15:35 928

原创 网上商城项目总结(四)集群中间件MyCAT

MyCAT、常用于代替昂贵的oracle的MySQL集群中间件。MyCAT介绍:开源的面向企业应用开发的“大数据集群”;支持事务、ACID、可以代替MySQL的加强版数据库;解决数据库存储和业务规模迅速增长的数据瓶颈问题。MyCAT特点:自动故障切换、高可用性。支持读写分离,支持MySQL双主多从、以及一主多从的模式。支持全局表,数据自动分片到多个节点,用于高效表关联查询。...

2018-07-30 16:10:59 574 3

原创 网上商城项目总结(三)消息中间件ActiveMQ

目前常用的消息中间件:ActiveMQ,RabbitMQ,kafka。ActiveMQ:目前流行的开源消息总线,支持JMS1.1,J2EE1.4规范。消息中间件的作用:①、解耦合。项目中不同的子项目难免需要互相调用,将代码写在一起会造成代码耦合,不便后期维护修改。②、异步处理。代码中有些调用比较耗时,但是返回用户页面时,无需这部分代码操作全部完成。例如:网上商城中,后台添加...

2018-07-30 15:40:20 761

原创 网上商城项目总结(二)中间服务件dubbo

dubbo:实现表现层和服务层系统之间的通信(分布式架构中),资源调度和治理中心的管理工具。实现通信的几种方法:①、Web Service,基于SOAP协议,效率不高,项目中不推荐使用。特点:跨语言,跨平台。②、使用restful形式的服务,http+json。服务太多,服务之间调用关系混乱,需要治疗服务。目前很多项目使用。③、dubbo,使用RPC协议进行远程调用,直接使用soc...

2018-07-30 14:56:21 564

原创 网上商城项目总结(一)系统架构

e3商城系统架构:基于SOA(Service Oriented Architecture)面向服务的架构。​架构发展演变:#单一的应用架构:网站流量很小,只需一个应用,将所有功能部署在一起,以减少部署成本和节点。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。#垂直应用架构:当访问量逐渐加大,单一应用增加带来的加速度越来越小,将应用拆分为互不相干的几个应用以提升效率...

2018-07-30 14:31:22 7653

原创 effective java读书笔记(一)

1.  使用静态工厂方法替代构造器优势:1. 静态方法有名字,可以清楚的表示不同静态工程方法的构造方式。2. 不必在每次调用的时候都创建一个新对象,可以提升性能。3. 可以返回原返回类型的任何子类型对象。4. 在创建参数化类型实例的时候,它们使得代码变得更加简洁。缺点:1. 类如果不含有公有的或者受保护的构造器,就不能被子类化。2. 它们与其他静态方法实际上没有...

2018-07-09 21:58:14 323 2

原创 多版本并发控制

mysql的innodb采用的是行锁,并且采用了多版本并发控制来提高读操作的性能。这里简单谈一下我对repeatable read隔离级别下,一些事务操作结果的理解。 以下是在《高性能Mysql》一书上看到的原话:在很多博客里看到说保存事务版本号作为标识,我认为这个说法是不对的,应该是书上所说的保存系统版本号作为标识。看下面的例子。首先创建表CREATE TABLE t (a INT);例1:事务...

2018-06-27 22:41:06 275

空空如也

空空如也

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

TA关注的人

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