自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

22222222222

星辰大海

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

原创 HTTPS加密原理

常用加密算法常用对称加密算法AES、DES优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘 钥,这会使得收、发双方所拥有的钥匙数...

2019-09-24 17:03:25 90

原创 学习分布式锁

假设,我们有一个秒杀的场景,有一个商品原价8888,现在跳楼大甩卖只要999,所以会有非常多的人抢,我们假设该商品参与秒杀的数量是100,将这个库存数量存入redis中,如下图然后我们开始编写业务逻辑如下,此处采用spring提供的操作redis的封装的api:stringReidsTemplate@RestControllerpublic class ProductController ...

2019-07-29 10:17:35 79

原创 redis的事务操作和监控watch

redis的事务操作事务操作命令分为3步:开启事务multi命令入队列执行事务exec事务操作是否撤销根据命令输入是否正确和操作类型和命令类型是否一致有关输入命令正确,操作的数据类型不正确可以发现,命令是正确的,只是操作的数据类型不正确不会干扰到事务中其他命令的执行输入命令不正确命令入队的时候直接报错,执行exec后,事务出现了回滚,lijin这个key并没有成功写入,并...

2019-07-27 15:49:17 71

转载 史上最全阿里 Java 面试题总结

JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。String类能被继承吗,为什么。String,Stringbuffer,StringBuilder的区别。ArrayList和LinkedList有什么区别。讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字 段,当new的时候,他们的执行顺序。用过哪些Map类,都有什么区别,Hash...

2019-07-27 09:37:14 50

原创 kafka消费者参数解析

官方文档:参数名含义默认值heartbeat.interval.msThe expected time between heartbeats to the consumer coordinator when using Kafka’s group management facilities. Heartbeats are used to ensure that the c...

2019-07-23 16:47:26 629

原创 Jmeter压力测试案例

介绍Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。官方网站:http...

2019-06-16 11:03:50 10285 1

原创 shiro源码跟踪

调用登录 UsernamePasswordToken token = new UsernamePasswordToken(username,password); Subject subject = SecurityUtils.getSubject(); subject.login(token);login方法实际调用Del...

2019-05-28 12:54:09 122

原创 ElasticSearch索引别名和零停机

起因显而易见,如果我们需要修改索引,而重建需要删除旧的索引,会导致线上服务不可用,因此,我们想要在不影响线上检索服务的同时,修改索引,就需要用到elasticsearch的一个特性,别名机制什么是索引别名索引 别名 就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引名的API来使用。别名 带给我们极大的灵活性,允许我们做下面这些:在运行的集群中可以无缝的从一个索引...

2019-05-07 15:19:07 162

原创 ElasticSearch6.x常用操作

本次使用版本:6.6.2,操作均在kibana创建索引如下创建一个索引名称为ftyj_test,有2个分片,每个分片有2个备份,并静态指定这个索引中的type为blog,以及blog中每篇文章的字段类型,其中type为text的字段参与分词,type为keyword的字段不参与分词,完整检索,如文章作者分析器隶属于索引,在该索引中创建了自定义分析器两个,一个是粗粒度分词(coarse-gra...

2019-05-07 11:41:07 398

原创 MongoDB和MongoTemplate模拟SQL的ifNull

近日需求中用到这个,但是网上找到的答案并不理想,在查阅MongoDB官网后,得到解决方案:MongoDB原生写法等待查询数据,需要将description为null的数据在查询时候给默认值{ "_id" : 1, "item" : "abc1", description: "product 1", qty: 300 }{ "_id" : 2, "item" : "abc2", descr...

2019-04-24 15:17:29 716

转载 win10下查看杀死进程

https://blog.csdn.net/qq_36819098/article/details/80262482

2019-03-13 13:43:43 894

原创 泛型详细解读

为什么要使用泛型 public static void main(String[] args) { // 声明一个集合,并未添加泛型 Map map=new HashMap(); map.put("年龄",12); map.put("姓名","大皇子&a

2019-03-11 15:24:27 112

原创 MongoDB索引建立以及查询性能分析

查询性能分析文档总数:执行性能分析db.user_login_log.find({ id: "11598978", month: "201902"}).explain('executionStats') 未加索引前:查询需要耗费173ms加索引后:在用户id字段和月份后台添加索引db.集合名.createIndex({"字段名":1},{"na

2019-02-23 10:38:21 481

原创 storm的并发机制与实践

基本概念Nodes:服务器,配置了storm集群,有安装nimbus的node,以及安装supervisor的nodeWorkers(JVM虚拟机):一个服务器上相互独立运行的JVM进程,一个服务器node可以配置一个或者多个worker,一个topology会分配到一个或者多个worker运行,如下图:注意:worker只存在于supervisor服务器Task:任务,就是spout...

2019-02-19 16:16:45 191

原创 理解js的prototype属性

prototype是对象的属性吗?举例:可以看到,如果prototype是object的属性,上面肯定会alert出东西,但是是undefined,充分说明prototype不是对象的属性其实prototype是函数的属性测试为什么说prototype是函数的属性prototype是函数的属性,属于函数,只有函数能够引用他,并且函数的prototype属性返回的是一个对象,下面实验:...

2019-02-01 21:27:50 389

原创 interrupt和notify、wait和sleep区别

interrupt通知等待在共享变量上的线程停止等待了,放弃吧notify另一个线程调用共享变量的notify方法,随机唤醒一个在该共享变量等待队列中的线程interrupt案例/** * 共享变量:一个妹子 * 多个线程:多个追求者 * 获得锁:获得妹子的男朋友许可,暂时妹子不可以被其他追求者追求 * wait:确认你是老实人,然后和你要分手,你失去了男朋友资格,但是你还是傻傻...

2019-01-08 18:48:04 390

原创 java服务linux系统cpu占用96以上问题解决方案

1 top命令查看当前cpu占用,内存占用排行2 top -H -p查看进程中占用cpu时间最久的线程3 使用jstack工具查看线程堆栈信息jstack:stack trace for java:生成虚拟机当前时刻的线程快照(一般称为threaddump文件或者javacore文件),线程快照是当前虚拟机内每一条线程正在执行的方法堆栈的集合,之所以生成堆栈快照主要目的是定位线程出现长...

2019-01-07 14:51:52 345 1

原创 kafka集群如何内外网均可访问

有3台kafka集群broker,以下ip地址均属杜撰,仅仅做举例用hostname内网ip外网Ipkafka110.0.0.1139.0.0.1kafka210.0.0.2139.0.0.2kafka310.0.0.3139.0.0.3本来kafka集群配置的listener参数如下:# The address the socket ser...

2018-12-27 10:28:44 7691 9

原创 Kafka

Kafka概述为什么需要消息队列客户端A要向客户端B交互,A要向B发送数据,这时候可能有两种问题B不在线,B挂了A传输速度是10M/S,B接收速度是5M/S这样就会造成数据丢失因此我们需要在AB中间加一层消息队列一对一的情况下,客户端需要实时监控消息队列中内容点对点和发布订阅模式共同的优点:解耦(没有直接相连,通过消息队列中间件相连)冗余扩展性(kafka是有集群概念的...

2018-11-18 22:34:43 1684

原创 接口方法上的注解无法被@Aspect声明的切面拦截的原因分析

今天项目遇到大坑,以前做多数据源springboot都是用的2.0.1版本,这一次项目组用的脚手架采用1.0.5搭建,拷贝以前的多数据源配置发现mapper接口的注解进不了aop,原来是版本问题https://my.oschina.net/guangshan/blog/1808373#h2_4解决方式:不用注解方式启动aop,采用扫描mapper下所有接口任意方法来启动aop切面,再扫描ma...

2018-10-20 16:06:13 2493

原创 SpringBoot项目与maven分环境自动打包配置

打jar包springboot项目分环境打包打jar包如果为多模块项目,比如我下面目录结构其中api工程配置目录如下1 首先在顶层工程中配置pom文件添加如下配置<!--定义打包命令指定的环境对应的profileActive变量值--> <profiles> <profile> <id&amp

2018-10-19 10:28:11 7851 4

原创 Jenkins第一节:linux安装jenkins以及解决各种常见问题

1 下载jenkins[root@VM_0_3_centos jenkins]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo[root@VM_0_3_centos jenkins]# rpm --import https://jenkins-ci.org/redhat/j...

2018-10-18 15:40:53 1784

原创 springboot学习笔记之SpringMVC自动配置原理

Springboot中自动配置Springmvc的文件@Configuration@ConditionalOnWebApplication(type = Type.SERVLET)@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })@ConditionalOnMi...

2018-08-28 22:28:38 2769 2

原创 springboot学习笔记之日志

日志SpringBoot默认日志级别:INFOspring配置文件中的logging.file和logging.path的区别两个都指定的话则logging.file起作用 都不指定的话则日志文件产生在当前项目目录下如果项目目录为:D:/develop/idea_workspace/project,则在windows情况下指定日志logging.file为/logs/info...

2018-08-28 21:16:58 170

原创 $.extend(true,{},a,b)解析

什么是$.extendjQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。 $.extend(true,{},a,b) true:是否深度拷贝,不加为false,浅拷贝,加了深拷贝 {}:将合并结果保存到新对象,这样原对象将不会发生改变 a:第一个合并的对象 b:第二个合并的对象浅拷贝var defaults = {name:"张三",age:18,...

2018-08-16 11:26:03 8598 2

原创 js中null和undefined区别

null是空对象引用,引用指向为空 undefined是只定义了引用typeof null:”object” typeof undefined : “undefined”null == undefined true null === undefined false :值相同,但类型不同均可以用null或者undefined清空属性var person = null; // ...

2018-08-15 15:11:53 4555 2

原创 内连接、外连接中on and组合与on where组合的区别

网上很多说法是外连接和内连接中的on and和on where结果是相同的结论都是如下inner join A列=B列 and C列=‘X’此时的C列将参与两个数据集的关联和把C列写在Where里面 ,此时的C列仅做为条件判断如果c列在两数据集的关联中起重要的作用,则应该使用前者;另外使用1比较2而言,产生的效率也更高些以上说法是否正确,实验探究...

2018-08-15 09:27:38 1633

原创 idea基础配置

下面的配置均为全局配置1 修改下面选项以支持界面字体大小改变,更改以后可能出现中文菜单项乱码的情况2 修改控制台字体3 编码方式修改如下:properties后面的√打上才能保证properties中的中文正常显示为中文我不是ascII码值4 general中勾选第二项,以实现按住ctrl和鼠标滚轮改变字体大小5 打勾第5项目,以在两个方法之间加入分隔6 修改下面选项,以让idea能够智能提示,忽...

2018-06-26 10:07:31 113

转载 mysql日期时间函数

-- MySQL日期时间处理函数-- 当前日期:2017-05-12(突然发现今天512,是不是会拉防空警报)SELECT NOW() FROM DUAL;-- 当前日期时间:2017-05-12 11:41:47-- 在MySQL里也存在和Oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用。-- 那么M...

2018-06-04 16:04:40 123

转载 线程池大小设置,CPU的核心数、线程数的关系和区别,同步与堵塞完全是两码事

线程池应该设置多少线程合适,怎么样估算出来。最近接触到一些相关资料,现作如下总结。最开始接触线程池的时候,没有想到就仅仅是设置一个线程池的大小居然还有这么多的学问,汗颜啊。首先,需要考虑到线程池所进行的工作的性质:IO密集型CPU密集型简单的分析来看,如果是CPU密集型的任务,我们应该设置数目较小的线程数,比如CPU数...

2018-04-27 11:08:05 4920

原创 java高并发程序设计(二)线程状态,sychronized,wait,notify,AtomicInteger,CountDownLatch

终止线程 对象实例u,有2个字段,默认情况下一个0,一个null 为了防止这个对象被多个线程同时修改,所以我可能在写之前或读之前都要对这个对象加锁读的时候 等待锁 确保 写完了这样我不会读到一个错误的数据 写也是一样,要加锁现在:写之前我加了一个锁然后我对数据进行写入,给id写入1,正准备开始写入小明的时候,你很暴力的把我stop掉了 这样导致我的锁会释放掉后果:如...

2018-04-23 15:12:42 339

转载 为什么说Redis是单线程的以及Redis为什么这么快!

一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等...

2018-04-16 10:10:39 121

转载 Navicat Premium 12.0.24安装与激活

本文介绍Navicat Premium 12.0.24的安装、激活与基本使用。 说明:博主所提供的激活文件理论支持Navicat Premium 12.0.16 - 12.0.24简体中文64位,但已测试的版本为Navicat Premium 12.0.22、12.0...

2018-04-10 21:05:01 2508 3

原创 Mongodb增删改查高级操作

MongoDB中常见数据类型Object IDIntegerDoubleArrays:数组或列表,多个值存储到一个键Object:嵌入式文档,一个值为一个文档NullTimestampDate:存储当前日期或时间的unix时间格式增删改保存语法 insert:直接插入:db.集合名称.insert(document)db.beauty.inser...

2018-04-08 15:52:06 366 1

原创 Storm流式计算入门

流式计算实时获取数据,实时数据储存,实时数据计算,实时结果缓存,持久化存储(mysql) 代表技术: Flume:实时获取数据 Kafka:实时数据存储 Storm/jstorm:实时数据计算 Redis:实时结果缓存 总结:将源源不断产生的数据实时收集并实时计算,迅速得到计算结果关于storm1、storm是twitter的开源流计算解决方案,因为对hadoop的ma...

2018-03-29 21:17:41 4365

转载 Redis的持久化机制

Redis提供的持久化机制   Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。 近日,Redis的作者在博客中写到,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的,于是他写了一篇长文来对Redis的持久化进行了系统性的论述。文章主要包含三个方面:R...

2018-03-28 16:01:08 96

转载 ThreadPoolTaskExecutor 使用和原理

为什么要用线程池?服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。构建服务器应用程序的一个过于简单的模型应该是:每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。实际上,对于原型开发这种方法工作得很好,但如果试图部署以这种方式运行的服务器应用程序,那么这种方法的严重不足就很明显。每个请求对应一个线程(thread-per-request)方法的...

2018-03-16 11:55:07 2784

原创 solrCloud集群的搭建

什么是solrCloudSolrCloud是solr提供的分布式搜索方案 适用情景:大规模,容错,分布式索引,检索 soLrCloud是基于solr和zookeeper的分布式搜索方案,zookeeper的作用使用zookeeper来管理集群:监控集群中的每个节点的健康状态请求来了先连zookeeper,而不是直接连solr,然后由zookeeper决定...

2018-03-11 14:48:21 145

原创 Git以及TortoiseGit的下载安装使用

下载git下载地址:https://git-scm.com/ 然后进行一系列的安装,傻瓜式的操作即可TortoiseGitTortoise 英[ˈtɔ:təs]乌龟,TortoiseGit是一个开放的git版本控制系统的源客户端,通过它可以更加方便的使用Git 此次我们需要下载两部分,一部分是TortoiseGit,另一部分是它的中文语言包,两个都可以在下面的地址下载到 ht...

2018-03-10 11:26:22 22437 1

转载 Ueditor1.4.3.3+springMvc+maven 实现图片上传

前记:由于项目中需要有一个新增数据并且要能支持表格图片上传的功能。使用了ueditor控件。为实现这个功能,从一开始什么都看不懂,到一直连着弄了5天,总算是有了眉目。在此记录一下以便能帮到可以和我一样遇到问题的人!本人使用的是ueditor 1.4.3.3 的jsp 版本的。首先下载ueditor 开发版 到本地目录下载地址:...

2018-03-03 00:38:29 325

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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