- 博客(122)
- 资源 (10)
- 收藏
- 关注
翻译 多线程的好处
原文地址:http://tutorials.jenkov.com/java-concurrency/benefits.html多线程编程是有一定的挑战,但除了挑战,还有一些好处,这些好处如下:更好的资源利用率 简单的程序设计在某些场景下。 更快的响应程序。更好的资源利用率假设一个应用程序从本地文件系统中读取和处理文件。从硬盘读取文件需要花费5秒,然后再处理需要2秒,处理两个文件需...
2019-06-09 18:15:58 8336 1
翻译 Java并发和多线程指导综述
原文地址:http://tutorials.jenkov.com/java-concurrency/index.htmljava并发是java平台世界的一个述语,它意味着多线程、并发和并行,其中包括java并发工具,以及可能遇到的问题和解决方案。Java并发指导会涉及到多线程、并发结构、并发问题、代价和多线程的好处等等一系列概念。并发的简史在过去,一台计算机还只有一个CPU,所以在同一...
2019-06-08 17:28:20 395
原创 java.lang.ClassCastException: StandardMultipartHttpServlet
springmvc升级springboot2过程中做附件上传报错:java.lang.ClassCastException: org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile cannot be cast to org.springframewo...
2019-05-23 13:19:02 2352
原创 htmlunit2.35.0版本爬虫按照官方案例书写无返回问题解决
根据官方给出的示例我们书写的爬虫大概流程如下:1,引入依赖到pom:<dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.35.0</ve...
2019-05-15 09:25:25 684
原创 htmlunit实现模拟浏览器请求报错sslcontext没有的解决思路
最近在升级springmvc项目到springboot项目,原来用htmlunit写的模拟百度浏览器查询关键字功能,一直报错,异常信息也比较少:java.lang.NoSuchFieldException: sslcontext。从信息上来看应该是java反射获取属性的时候找不见。最开始怀疑是因为版本升级引起的。在查看以后,将原来明显相关的三个包查看发现其中一个的版本确实不一致,于是通过dep...
2019-05-06 09:12:44 1257 3
原创 Solr启动报错/home/solr/var/logs/solr.log不存在无法读取
生产环境用的solr搜索引擎做搜索,但是在把其中一个节点通过kill -9命令删除后,一直报错无法读取solr.log文件。然后到对应目录下查看,确实没有;然后手动创建一个solr.log文件重启,依然报错。再次查看发现文件被删除掉了。然后网上查询,说是可能是solr_heap堆内存太小导致的启动不了,然后查看确实有gc相关的日志文件。于是查看solr启动脚本中的配置信息发现配...
2019-04-12 19:27:57 1770
原创 升级log4J2版本的问题和解决思路
因为新版本的log4j2日志性能更好,所以我们采用新版本的日志打印来提高系统性能,那么如何替换新版本的日志打印,下面是步骤:步骤1:修改log4j版本的依赖。<log4j.version>2.10.0</log4j.version>pom中添加依赖:<!-- log start --><dependency> &l...
2019-01-28 16:18:03 8301
原创 dubbo接口升级报错的解决过程
dubbo2.5.3版本升级2.6.3报错的解决方案目前生产环境一直在使用的是2.5.3版本的dubbo服务,最近眼看2.7版本的dubbo也要出来了,为了更好的使用dubbo2.7版本,公司决定先升级到2.6.3版本,当然最新稳定版本为2.6.4版本。关于最新将要推出的2.7版本新特性主要是最大程度的兼容了jdk8的新特性和将dubbo和spring-cloud一套的整合使用。升级步骤将...
2018-12-13 09:21:49 2183
原创 POSTMAN发送携带登录信息的请求
在自测过程中,如果你采用POSTMAN工具来发送请求,那么对于没有任何安全限制的公共API接口,我们可以直接通过url+param参数的形式就可以发送并测试接口了。但是针对部分系统有安全性的校验,比方说必须要登录,或者是必须携带安全性校验参数才可以通过后台的方法校验,一般情况的话是通过拦截器来处理的。那么请求头中携带安全校验参数有两种情况,一种就是自己内部定义的通过登录或者是授权后的请求头...
2018-11-14 11:52:07 20114
原创 Docker学习笔记从安装到运行管理
docker安装查看是否运行docker进程0,service docker.io status1,apt-get install -y docker.io2,service docker.io status发现服务已经开始运行。3,docker -v 检查已经安装的docker的版本,想看更详细的信息,请执行docker version4,docker info 来查...
2018-11-13 09:29:04 204
原创 mybatis+spring开发过程中的保存对象源码详解
在web开发过程中持久化是每个web开发者都需要面对的问题,那么有的公司选择了jpa持久化,有的选择mybatis来完成对象的持久化,而今天我们就讨论一下如果你选择的框架和持久化框架分别是springmvc和mybatis的话,当你保存或者是查询的时候,你的sql源码是怎么完成这个操作的。我们以插入为列,来说明。关于数据源和mybatis包扫描的配置我就不写了,这是最基本的,网上也到处都是。...
2018-07-27 16:58:43 1394
原创 分布式接口调用,补偿机制如何设计
对于现在的大多数应用来说,基本上都是分布式的,单一应用的系统已经很少见了,那么对于分布式系统服务,我们总会遇到接口失败的情况,而对于这种情况,会根据返回结果类型来做不同处理,而我们今天要讨论的就是有限时间内重试的机制,该如何设计。首先我们的思路肯定是循环尝试,是否已经到了指定时长,比方说3分钟,那么在第一次调用失败以后,我们应该在3分钟内多次尝试接口调用,如果成功则返回,如果一直失败超过3分钟...
2018-07-22 17:51:43 4453
原创 spring事物场景下通过Exchanger并发工具类来解决多线程事物的同提交和同回滚。
spring对事物的管理相对来说比较人性化,你可以采用编程式事物管理,或者是注解式事物管理;也可以采用两者结合的形式来完成。大多数情况下我们只需要使用注解式事物管理即可满足日常开发需要。但是对于某些特殊场景需要我们单独来管理事物,比方说客户的一次提交,会影响到多个表的操作和事件导致响应过慢。这种情况下我们想到的方案是两种:第一种是加缓存,先成功保存缓存并返回,之后异步来保存剩下的全部数据交互。第二...
2018-07-11 18:53:58 423
原创 mac 系统下git 报错修正
报错提示:git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree fetch origin报错现象:git无法推送到远程仓库,也无法从远程仓库中获取最新代码,不论是否需要用户名和密码都不可以。执行和远程交互的命令统统卡死,无反应。解决思路:通过网上查询,有可能是升级系统后导致g...
2018-07-09 16:01:42 781
原创 java和python对比学习之java数组和python列表
学习参考来自:http://www.runoob.com我们对python中列表的理解是是一种基本的数据结构,结构中的每个元素都会有一个下标来与之对应,其实下标为0。对列表的操作包括通过索引下标查找展示,通过切片来获取指定部分列表数据,通过加,乘来扩展列表数据,而类别中存储的数据类型可以不相同。如:list1 = ['python2', 'python3', 7, 2]list2 = [1, 2,...
2018-06-30 21:19:00 3830
原创 JVM学习笔记总结
jvm堆大小限制的参数配置VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOutOfMemoryError 虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照。分析堆快照来确定是内存溢出还是泄漏。jvm栈大小限制的参数配置本地方法栈:-Xoss(HotSpot不可用),-Xss参数设定。如:-Xss128k多线程内存溢出,单线程栈溢出在硬件条件和业务要求下,只能通过...
2018-05-19 17:24:28 281
转载 redis分布式锁的简单实现
原文出处:https://www.cnblogs.com/linjiqin/p/8003838.html分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁;首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。不会发...
2018-04-27 10:56:38 245
原创 spring发布事件的3种方式
通过Spring自身的事件机制来发布事件。包括同步方式,同步注解方式,异步注解方式:1)同步方式。首先定义事件类:通过继承ApplicationEvent来将普通对象设置成Spring事件package com.wxq.ssm.common.event;import org.springframework.context.ApplicationEvent;/** * @author xu...
2018-03-31 16:05:57 3149
原创 solr7.2官方文档学习笔记--cloud模式启动solr服务
本学习笔记来自官网参考文档,环境为jdk1.8.151,macbookpro上学习。首先到官网下载7.2版本的solr压缩包:http://www.apache.org/dyn/closer.lua/lucene/solr/7.2.1然后将下载的压缩包减压缩:uzip solr-7.2.0.zip 得到solr-7.2.0目录:这个时候如果你是一个java开发那你就可以开始启动solr服务了,如果...
2018-03-13 10:15:40 1827
原创 解决@ResponseBody返回字符串中文json对象??问题
我们都知道通过在web.xml中添加拦截器并放置在第一位置来处理提交数据中的中文问题,如下:<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</fi...
2018-02-23 18:39:35 3611
原创 spark快速大数据分析笔记-2
Spark快速大数据分析第三章-笔记本章介绍Spark对数据的核心抽象--弹性分布式数据集RDD,其实就是分布式的元素集合。在Spark中,对数据的所有操作不外呼创建RDD,转化已有RDD以及调用RDD操作进行求值。Spark会自动将RDD中的数据分发到集群上,并将操作并行化执行。RDD基础Spark中的RDD就是一个不可变的分布式对象集合。每个RDD都被分为多个分区,这些分区运行在集
2018-01-21 17:06:01 1023
翻译 mysql5.7官网直译数据类型--字符串类型2
11.4.4 The ENUM Type 枚举类型一个枚举类型是一个字符串对象,其值来自于表在创建时设定的列的值的集合中选择,其优点:》在合适的情况下,存储数据在一列中使用有限的可能值。你输入的字符串值自动转变为数字。具体请看11.8的数据类型类型存储要求中对枚举类型存储的要求。》在查询和输出过程中,数字被转变为正确的字符串返回。当然有些潜在的问题,需要考虑:》如果你使得枚举值
2018-01-21 13:01:13 235
翻译 mysql5.7官网直译数据类型--字符串类型1
11.4 String Types 字符串类型11.4.1 The CHAR and VARCHAR Types11.4.2 The BINARY and VARBINARY Types11.4.3 The BLOB and TEXT Types11.4.4 The ENUM Type11.4.5 The SET Type字符串类型是 CHAR, VARCHAR, BINA
2018-01-14 19:13:27 360
翻译 java性能监控工具MoSKito学习--MoSKito-Essential模块5
》 Accumulators 收集器What is an Accumulator? 什么是收集器一个收集器是一个值的收集者对于给出的区间,生产者,状态和值。收集器收集和存储数据,那就是他们不同于生产者的地方。生产者只是对最近产生的动作展示数据,而收集器存储了从应用开始监控以后的全部数据。当然,收集者可以通过图表的形式展示收集到的数据,图表可以帮助你评估你的应用性能通过很长一段时间。
2018-01-13 20:49:09 358
翻译 mysql5.7官网直译数据类型--日期和时间类型2
11.3.4 YEAR(2) Limitations and Migrating to YEAR(4) 两位数字年限制和转移到4位数字年因为两位数字的年将被移除而且在工作中用到比较少,所以不做翻译。---------------------------------------------11.3.5 Automatic Initialization and Updating for T
2018-01-13 18:37:09 409
翻译 java性能监控工具MoSKito学习--MoSKito-Essential模块4
》Thresholds 阈值What is a threshold? 什么是阈值一个阈值标记了一个生产者的性能边界。当生产者超过了这些边界(或上或下),阈值状态会被改变。这样你就知道这个生产者需要注意了。Threshold Concepts to Remember 需要记住的阈值概念》他们不是内建在thresholds,而是你自己时刻创建它的。》阈值不会自动创建,而是你选择一个
2018-01-07 20:53:36 701 2
翻译 mysql5.7官网直译数据类型--日期和时间类型1
11.3 Date and Time Types 日期和时间类型11.3.1 The DATE, DATETIME, and TIMESTAMP Types 日期,日期时间,和时间戳类型11.3.2 The TIME Type 时间类型11.3.3 The YEAR Type 年类型11.3.4 YEAR(2) Limitations and Migrating to YEAR(4
2018-01-07 14:39:52 1288
翻译 java性能监控工具MoSKito学习--MoSKito-Essential模块3
》 Journeys 历程What is a journey? 什么是历程Journeys 用来记录用户行为根据实际发生在应用内部的调用或者步骤来完成记录。Journeys 展示了生产者使用被监视的应用的过程,他们被调用的过程被陈列通过精确的时间戳(当调用发生时,以及他们花费的时间).简单来说,一个历程就是一个对任何用户行为转为开发者或者应用管理者语言。When do
2018-01-06 19:08:16 376
翻译 mysql5.7官网直译数据类型--数字类型详解
11.2 Numeric Types 数字类型11.2.1 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT 整数类型(精确值)11.2.2 Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC 定点类型11.2.3 Float
2018-01-06 16:50:01 1145
原创 tomcat7升级8和JDK7升级8的问题总结:
首先下载安装8版本的jdk和tomcat;然后配置JAVA_HOME到/etc/profile文件中修改tomcat8的配置:首先启动查看是否查找配置好的新JDK如果不是则解决方案为:在tomcat的bin目录中的catalina.sh中#!/bin/sh的后面添加JAVA_HOMEexport JAVA_HOME=/usr/java/default 指向最新版本号的JDK
2018-01-04 14:19:02 5507
原创 spark快速大数据分析笔记-1
Spark快速大数据分析第一章-笔记Spark是一个用来实现快速而通用的集群计算的平台。Spark的核心是一个对由很多计算任务组成的,运行在多个工作机器或者是一个计算集群上的应用进行调度,分发以及监控的计算引擎。Spark Core实现了Spark的基本功能,包含任务调度,内存管理,错误恢复,于存储系统,交互等模块。Spark Core中还有对弹性分布式数据集(RDD)的API定义。R
2017-12-31 20:58:54 432
翻译 java性能监控工具MoSKito学习--MoSKito-Essential模块2
》 Producers 生产者What is producer? 什么是生产者?Producer 是一段代码用于和统计资源之间建立连接,资源可能是一个class, method, service, servlet 或者任何其他产生统计数据的东西) 并且在每次资源被激活后记录.想了解更多,可以越多MoSKito-Essential 概述和怎么样使用MoSKito Producers部分。
2017-12-31 19:51:12 504
翻译 mysql5.7官网直译数据类型--综述2
11.1.2 Date and Time Type Overview时间数据类型的摘要如下,关于时间类型的属性和存储要求的额外信息,请看11.3的日期和时间类型,11.8的数据类型存储要求。对于操作时间函数的描述请看12.7的日期和时间函数。对于DATE和DATETIME范围描述。"支持"意味着虽然更早的值也有效,但是不做保证。MYSQL允许小数秒对于TIME,DATETIME和TIM
2017-12-31 17:15:42 366
翻译 java性能监控工具MoSKito学习--MoSKito-Essential模块1
第三模块:MoSKito-Essential的模块1,MoSKito-CoreMosktio Core包含如下组件:>Core functionality: stat producing, different types of stats and collectors. 核心功能:stat产生,不同类型的stat,和收集>Support for logging 对日志的支持>S
2017-12-30 17:38:48 899
翻译 mysql5.7官网直译数据类型--综述1
Chapter 11 Data Types 数据类型11.1 Data Type Overview 数据类型总览11.2 Numeric Types 数字类型11.3 Date and Time Types 日期和时间类型11.4 String Types 字符串类型11.5 Spatial Data Types 空间数据类型11.6 The JSON Data Ty
2017-12-30 15:31:32 303
原创 jdk1.7HASHMAP源码关于PUT方法的完成--5个方法的解析。
首先第一步:public V put(K key, V value) { if (table == EMPTY_TABLE) { inflateTable(threshold); } if (key == null) return putForNullKey(value);
2017-12-28 11:00:45 544
翻译 java性能监控工具MoSKito学习--一步一步开始工作4
>Configuring LOG4J for MoSKitoMoSKito内嵌支持主流的日志框架,特别是log4j,java.util.logging和对于懒人们使用的System.outs.为了给StatsProducer添加一个日志,下面是需要的步骤:注意,MoSKito2.3.0用SLF4J取代了LOG4J.Create a logger创建一个logger.MoSKito说
2017-12-27 15:02:31 362
原创 3步走简单配置Javamelody监控服务应用sql执行状况
如果你的应用是通过springmvc+spring+maven+mybatis来构建的。而且你想要监控你应用中sql执行的情况,那么你只需要配置简单的三步就可以实现这个功能。从而知道自己的应用慢是否是sql的问题。当然除了监控sql你也同样可以查看系统的内存,线程,栈等占用空间和使用情况。第一步:通过maven依赖下载javamelody,在pom.xml依赖中添加如下依赖:dep
2017-12-26 15:48:25 4136 1
翻译 java性能监控工具MoSKito学习--一步一步开始工作3
>MoSKito-Essential Configuration Guide Moskito的配置指导从v2.x版本开始,MoSKito可以通过使用外部配置文件来完成配置。这个配置是基于ConfigeMe-使用JSON配置结构的语法来完成。MoSKito 配置是建立不同的配置对象,使得它更容易修改和维护。每一个对象都能够独立被配置,下面是典型的配置,不同的部分将会单独讨论。{
2017-12-24 15:02:34 1787 1
翻译 mysql5.7官网直译锁操作优化--并发添加,元数据锁,外部闭锁
8.11.3 Concurrent Inserts 并发插入MyISAM存储引擎支持并发插入从而来减少对读写对给出表的竞争:如果一张MyISAM表的数据文件没有漏洞存在(也就是在表中删除了中间的行),一个插入语句能够被执行用于添加一行到表的末尾在同一时间查询语句可以读取表中的数据。如果有多个插入语句,他们将被排队并且顺序执行,并发查询语句。并发插入的结果可能并不会立马可见。系统变量conc
2017-12-23 17:16:47 357
visual studio 2008 编写的计算器
2013-04-19
详细java学习课件
2012-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人