07 2018 档案
摘要:背景 在业务发展过程中,会出现一些需要延时处理的场景,比如: a.订单下单之后超过30分钟用户未支付,需要取消订单b.订单一些评论,如果48h用户未对商家评论,系统会自动产生一条默认评论c.点我达订单下单后,超过一定时间订单未派出,需要超时取消订单等。。。处理这类需求,比较直接简单的方式就是定时任务
阅读全文
摘要:前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细
阅读全文
摘要:redis redis redis redis redis redis redis redis 2 2 10 月初,Redis 搞了个大新闻。别紧张,是个好消息:Redis 引入了名为 stream 的新数据类型和对应的命令,大概会在年底正式发布到 4.x 版本中。像引入新数据类型这样的变化在 Re
阅读全文
摘要:摘自CSDN:::::http://blog.csdn.net/hguisu/article/details/6155636 1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不
阅读全文
摘要:前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,
阅读全文
摘要:引言 为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,
阅读全文
摘要:引言 该文是对《分布式之数据库和缓存双写一致性方案解析》,一文的补充。博主在该文中,提到了这么一句话 应该没人问我,为什么没有先更新缓存,再更新数据库这种策略。 博主当时觉得,这种更新策略比较简单,没必要多做说明,结果太多人留言给博主,问我为什么不说这套方案?好吧,博主先跟大家道个歉,是我的问题。所
阅读全文
摘要:Cloneable接口是一个空接口,仅用于标记对象,Cloneable接口里面是没有clone()方法,的clone()方法是Object类里面的方法!默认实现是一个Native方法 1 protected native Object clone() throws CloneNotSupported
阅读全文
摘要:数组和链表将对象插入指定位置时,大致可以分为两个部分: 1、找到要插入元素的位置 2、进行插入操作 可以得到式子:找到位置所需时间 + 插入所需时间 = 将对象插入指定位置所需总时间 由此可以先假设几个值: 找到插入元素的位置涉及的变量: 要插入的位置为z 获取一个对象引用所需时间m 进行插入操作涉
阅读全文
摘要:spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入。今天就和大家一起来学习一下 依赖注入的基本概念 依赖注入(Dependecy Injection),也称为IoC(Invert of Control),是一种有别于传统的面向对象开发的思想,主要用于对应用进行解耦。简
阅读全文
摘要:要解决这个问题首先要了解什仫是中位数,所谓的中位数就是在一组有序的数字中找到中间的那个数字。如果数字的个数是奇数则直接返回中间的那个数,如果数字的个数是偶数此时这组数据的中位数有两个,取中间两个数的平均值即可。 想法一、不论用什仫排序算法使得该组数据有序,直接取中间值即可。 这种只要你掌握常见的排序
阅读全文
摘要:0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,
阅读全文
摘要:糊涂窗口综合症和Nagle算法 TCP/IP详解系列,关于tcp拥塞控制和数据流的地方讲的不细致,或许是涉及概念/算法太多,作者略去了一些对初学者来说比较陌生的细节吧。比如SWS未说明是什么就开始介绍其避免方法,还和nagle扯在了一起,直觉告诉我二者一定有猫腻,边搜索一下,果然很有收获。今天贴在这
阅读全文
摘要:首先看一张图片: 虚线表示服务端的状态转移,实现表示客户端的状态转移。 初始的close状态并不是真是的状态,只是为了方便描述开始和终止状态而构造出来的。 从服务端的状态转移开始说: 服务端打开后处于listen状态,等待客户端的连接请求。当服务端收到客户端发来的SYN时,服务端回复SYN和ACK进
阅读全文
摘要:相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一
阅读全文
摘要:TCP提供了可靠的传输服务,这是通过下列方式提供的: 分块发送:应用数据被分割成TCP认为最适合发送的数据块。由TCP传递给IP的信息单位称为报文段或段(segment) 定时确认重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
阅读全文
摘要:TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数
阅读全文
摘要:explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。简单讲,它的作用就是分析查询性能。 explain关键字的使用方法很简单,就是把它放在select查询语句的前面。 mysql查看是否使用索引,简单的看type类型就可以。如果它
阅读全文
摘要:1、经过测试发现当聚集索引新建或者重建时,会按照逻辑顺序重新排列数据页和数据页内的数据行的物理顺序。 2、但修改表时,无论是聚集索引还是堆的数据页都是按自然顺序向后插入数据,页面上的偏移量可以证明。因为数据库的最小读取单元是页,所以页内的物理顺序无关紧要,只需要维护好页内数据的逻辑顺序。 聚集表中插
阅读全文
摘要:本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方 首先:先假设有一张表,表的数据有10W条数据,其中有一条数据是nickname='css',如果要拿这条数据的话需要些的sql是 SELECT * FROM award WHERE n
阅读全文
摘要:转:原文链接已失效,自动跳转其他不可描述网站,删除原文地址。 看到一篇非常全面的SQL优化文章,在开发的工作中往往不考虑性能上的缺失(在一开始的时候数据量不大也看不出速度上的区别)。但写的越多越应该规范一下写法。 数据库的优化问题 一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查
阅读全文
摘要:JDK提供的几种线程池 newFixedThreadPool创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。 newCachedThreadPool创建一个可缓存的线程池。这种类型的线程池特点是: 1).工作
阅读全文
摘要:hi,all 最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。 前段时间因为系统代码问题,造成性能瓶颈,于是就dump了一份stack出来进行分析。 hi,all 最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统j
阅读全文
摘要:功能问题,通过日志,单步调试相对比较好定位。 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。 58到家架构部,运维部,58速运技术部联合进行了一次线上服务CPU问题排查实战演练,同学们反馈有收获,特将实战演练的试题和答案公布出来,希望对大家也有帮助。
阅读全文
摘要:浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法: 1 public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地
阅读全文
摘要:Spring Framework 的核心组件有三个: Spring Core,Spring Context 和 Spring Beans,它们奠定了 Spring 的基础并撑起了 Spring 的框架结构。Spring 的其它功能特性例如 Web、AOP、JDBC 等都是在其基础上发展实现的。 I.
阅读全文
摘要:SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处
阅读全文
摘要:什么是Bean? Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象。 Spring 容器会自动完成@bean对象的实例化。 创建应用对象之间的协作关系的行为称为:装配(wiring),这就是依赖注入的本质。 Spring 三种配置方案 1.在XML中进行显示配置2.使
阅读全文
摘要:Bean在Spring和SpringMVC中无所不在,将这个概念内化很重要,下面分享一下我的想法: 一、Bean是啥 1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化); 2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性; 3、规律:凡是子
阅读全文
摘要:Spring 中bean 的生命周期短暂吗? 在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,对单线程的程序说并不会有
阅读全文
摘要:HashMap与HashTable原理及数据结构 hash表结构个人理解 hash表结构,以计算出的hashcode或者在hashcode基础上加工一个hash值,再通过一个散列算法 获取到对应的数组地址映射.然后将值存储到该映射地址上,存储所在的集合称为hash表 hash表结构 散列法:元素特征
阅读全文
摘要:HashMap 与HashTable的区别 HashMap与Hashtable的区别是面试中经常遇到的一个问题。这个问题看似简单,但如果深究进去,也能了解到不少知识。本文对两者从来源,特性,算法等多个方面进行对比总结。力争多角度,全方位的展示二者的不同,做到此问题的终结版。 1 作者 Hashtab
阅读全文
摘要:参考文档 参考文档 http://jameswxx.iteye.com/blog/2091971 1.1. 控制台使用 RocketMQ 提供有控制台及一系列控制台命令,用于管理员对主题,集群,broker 等信息的管理; 登录控制台 首先进入RocketMQ 工程,进入/RocketMQ/bin
阅读全文
摘要:环境是vmvare+ubuntu 1、http://rocketmq.apache.org/docs/quick-start/ 按照官网来启动mqnamesrv和mqbroker报错 错误如下 There is insufficient memory for the Java Runtime Env
阅读全文
摘要:Hash碰撞冲突 我们知道,对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰撞冲突。如下将介绍如何处理冲突,当然其前提是一致性hash。 1.开放地址法 开放地执法有一个公式:
阅读全文
摘要:BigEndian(大端):低字节在高内存地址 LittleEndian(小端):低字节在低内存地址 也就是看低字节在高内存地址还是低内存地址,也就是看低字节在前还是高字节在前,低字节在前自然是小端,高字节在前就是大端。 所谓大小端,是指字节存储或传输时的顺序。 注:最小寻址单位是指特定的计算机硬件
阅读全文
摘要:一、配置 更改下面配置中的JAVA_HOME路径为你的路径。 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64 export JRE_HOME=${JAVA_HOME}/jre export C
阅读全文
摘要:转载请注明来源:http://blog.csdn.net/loongshawn/article/details/51086876 相关文章: 《RocketMQ 消息队列单机部署及使用》 《 java编写简单消息队列。实现高德坐标变形服务》 0 RocketMQ简单介绍 0.1 介绍 RocketM
阅读全文
摘要:参见note:https://www.zybuluo.com/SailorXiao/note/136014 case现场 线上发现一台机器内存负载很重,top后发现一个redis进程占了大量的内存,TOP内容如下: 27190 root 20 0 18.6g 18g 600 S 0.3 59.2 9
阅读全文
摘要:链接:https://www.zhihu.com/question/50806354/answer/139653085 spring cloud +docker 当然没有问题,只是当我们搭建集群实现高可用的时候,觉得k8s对于我们的情况更适用(我们多半的应用都是非Jvm程序),但是可能最后还是会二者
阅读全文
摘要:转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客 错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服
阅读全文
摘要:Redis 数据结构简介 Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。 下面来对这5种数据结构类型作简单的介绍: 结构类型结构存储的值结构的读写能力 String
阅读全文
摘要:最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下 127.0.0.1:6379> keys * 1) "\xac\xed\x0
阅读全文
摘要:redis的启动方式1.直接启动 进入redis根目录,执行命令: #加上‘&’号使redis以后台程序方式运行 1 ./redis-server & 2.通过指定配置文件启动 可以为redis服务启动指定配置文件,例如配置为/etc/redis/6379.conf 进入redis根目录,输入命令:
阅读全文
摘要:EntityManager EntityManager 是用来对实体Bean 进行操作的辅助类。他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean。实体Bean 被EntityManager 管理时,EntityManager
阅读全文
摘要:SpringBoot是伴随着Spring4.0诞生的,继承了Spring的优点,一经推出,引起了巨大的反向;目前Spring Boot的版本为2.1.0,需要Java7及Spring Framework4.1.5以上的支持。如果想在Java6下使用它,需要一些额外的设置。 Spring Boot的优
阅读全文
摘要:在上个月我们知道 Eureka 2.0 闭源了,但其实对国内的用户影响甚小,一方面国内大都使用的是 Eureka 1.X 系列,另一方面 Spring Cloud 支持很多服务发现的软件,Eureka 只是其中之一,下面是 Spring Cloud 支持的服务发现软件以及特性对比: Featuree
阅读全文
摘要:工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理。这篇文章会讲述Consul是如何使用Gossip来做集群成员管理和消息广播的。 Consul使用Gossip协议来管理集群中的成员关系,以及把消息广播到集群中。而这些Gossip的特性是利用Serf这
阅读全文
摘要:工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理。在前一篇文章中,我介绍了Raft算法。这篇文章会讲讲Consul是如何使用Raft算法来实现分布式一致性的。 Consul中的Raft 只有以server模式运行的Consul节点,才会被认为是Raf
阅读全文
摘要:工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理。在前几篇文章介绍完了Consul用到的两个关键性东西Raft和Gossip之后,这篇文章会讲述Consul的整体架构。本文基于一篇别的译文,并做了一些改进和完善。 术语表 代理(agent): 代理是
阅读全文
摘要:原文地址-石匠的Blog: http://www.bugclosed.com/post/5 原文地址-石匠的Blog: http://www.bugclosed.com/post/5 原文地址-石匠的Blog: http://www.bugclosed.com/post/5 原文地址-石匠的Blog
阅读全文
摘要:CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 CAP原则是NOSQL数据库的基石。Consistency(一致性)。 Availability(可用性
阅读全文
摘要:consul 与 eureka Eureka是一个服务发现工具。该体系结构主要是客户端/服务器,每个数据中心有一组Eureka服务器,通常每个可用区域一个。通常Eureka的客户使用嵌入式SDK来注册和发现服务。对于非本地集成的客户,使用功能区边框等透过Eureka透明地发现服务。 Eureka提供
阅读全文
摘要:1.什么是服务发现? 服务发现组件记录了(大规模)分布式系统中所有服务的信息,人们或者其它服务可以据此找到这些服务。 DNS 就是一个简单的例子。 当然,复杂系统的服务发现组件要提供更多的功能,例如,服务元数据存储、健康监控、多种查询和实时更新等。 服务发现是支撑大规模 SOA 的核心服务。 2.服
阅读全文
摘要:Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cloud在微服务的架构中都做了哪些事情?Spring Cloud提供的这些功能对微服务的架构提供了怎样
阅读全文
摘要:微服务 microservice 微服务 microservice 微服务 microservice 微服务 microservice 微服务 microservice 微服务 microservice 微服务 microservice 微服务 microservice 6 6 前情概要:微服务化改
阅读全文
摘要:使用SpringBoot提供的@Repository接口,可以完成曾经需要大量代码编写和配置文件定制工作。这些以前让新手程序员头疼,让有经验的程序员引以为傲的配置,由于框架的不断完善,变得不那么重要,同时,也提升了程序员的工作效率。 本文介绍的是如何通过springboot操作MongoDB。 一.
阅读全文
摘要:HashMap的扩容机制 resize() 虽然在hashmap的原理里面有这段,但是这个单独拿出来讲rehash或者resize()也是极好的。 什么时候扩容:当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值(知道这个阈字怎么念吗?不念fa值,念yu值四声) 即当前数组的长度乘以
阅读全文
摘要:多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的。 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括: Java线程具
阅读全文
摘要:谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请
阅读全文
摘要:使用场景: 方法处理到某一步,需要将信息交给另一个线程去处理!! 第一种:最简单的Runnable public void test(String msg){ System.out.println(Thread.currentThread().getName()+":"+msg); Runnable
阅读全文
摘要:面试的时候闻到了Hashmap的扩容机制,之前只看到了Hasmap的实现机制,补一下基础知识,讲的非常好 原文链接: http://www.iteye.com/topic/539465 Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的
阅读全文
摘要:附录:https://www.jianshu.com/p/95a9a82d7a1c 前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,
阅读全文
摘要:在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定. 在 Spring JDBC 框架中, 绑定 SQL 参数的另一种选择是使用具名参数(named parameter). 那么什么是具名参数? 具
阅读全文
摘要:之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我
阅读全文
摘要:1. 三大性质简介 在并发编程中分析线程安全的问题时往往需要切入点,那就是两大核心:JMM抽象内存模型以及happens-before规则(在这篇文章中已经经过了),三条性质:原子性,有序性和可见性。关于synchronized和volatile已经讨论过了,就想着将并发编程中这两大神器在 原子性,
阅读全文
摘要:阅读技术文章可以说是我们程序员的日常之一,Peak 君每天也会进行定量的阅读。特写一篇小文分享下心得,介绍下过去几年,在纠正阅读习惯上所做的一些努力和取得的成果,或许可以帮助一些朋友,节省少许阅读时间,提升一点学习效率。 差不多两年前,我开始搭建 Android 相关的知识体系。最开始的想法是从基础
阅读全文
摘要:今天准备整理下微信的收藏夹,因为我发现好像在里面已经收藏了太多文章。这些收藏的文章并不是已经读过觉得不错故而收藏的,而是全没读过的。而其中的很大部份都是所谓的技术干货型文章,因为这类文章一方面比较长,另一方面比较费脑,所以我总是习惯在碰到的时候先收藏下来,再稍候找时间读之。 但没想到的是,现在供应这
阅读全文
摘要:黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙。 这段描写出自《倚天屠龙记》第三十八回。 “九阴神抓”本是《九阴真经》中的上乘武功,但当初梅超风夫妇由于拿到的《九阴真经》不完整,学不到里面的内功心法,硬是把这门上乘武功练
阅读全文
摘要:你的朋友圈里总有一些人具有某种特殊的技能点。比如我的一位铁哥们——波仔——就是这样的人。 波仔,江湖人送外号——波哥,是我认识的程序员里面最能跑的。国内的马拉松赛事,他几乎一次不落地参加。只要哪个城市举办马拉松比赛,不管多远,他都一路飞奔过去。这不,前两天刚冒雨跑完了无锡的马拉松。虽然淋得跟落汤鸡似
阅读全文
摘要:任何一位工程师都不可能了解所有领域的技术知识;任何一个团队也不可能包含所有类型的专业人才。而一个完整的产品被开发出来,或者一个系统被构建出来,这个过程都会用到种类繁多的技术,一般来说总会有一部分超出当前团队所能掌握的现有经验。这个矛盾怎么解决呢?这就需要工程师来进行技术攻关了。 没错,工程师的真正价
阅读全文
摘要:本文翻译自 Thinking Clearly About Performance 这是我三年前读到的一篇关于性能问题的好文,读完后还觉不过瘾,怕理解的不够遂又翻译了一遍,这也是当年我的第一次翻译。 这几年来每次碰到性能问题,我都会想起这篇文章,它并不像很多其他关于性能问题的文章,告诉你利用什么工具怎
阅读全文
摘要:我先讲一个小故事,以前在外企工作时的一个亲身经历。 当时我所在的team,负责手机上多媒体Library方面的开发。有一天,一个具有最高等级的bug被转到了我的手上。这个bug非常诡异,光是重现它就需要花很长时间。在公司内部的issue追踪系统上,测试人员描述了详尽的重现步骤,大概意思是说,用某个指
阅读全文
摘要:一般在项目中使用properties配置文件的时候都将相关的properties文件放在src目录下,在将该app打包生成jar后,相应的properties配置文件生... 一般在项目中使用properties配置文件的时候都将相关的properties文件放在src目录下,在将该app打包生成j
阅读全文
摘要:转眼间,2018年的十二分之一都快过完了,忙于各类事情,博客也都快一个月没更新了。今天我们继续来学习Springboot对象持久化。 首先JPA是Java持久化API,定义了一系列对象持久化的标准,而hibernate是当前非常流行的对象持久化开源框架,Spring boot就默认集成了这种框架,加
阅读全文
摘要:我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手。 第一方面:开发速度的对比 就开发速度而言,Hibernate的
阅读全文
摘要:Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来
阅读全文
摘要:内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可
阅读全文
摘要:性能分析工具jstatjmapjhatjstack 性能分析工具jstatjmapjhatjstack 前提概要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每
阅读全文
摘要:java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消
阅读全文
摘要:今天在安装软件的时候出现了Package has no installation candidate的问题,如: # apt-get install <packagename>Reading package lists... DoneBuilding dependency tree... DoneP
阅读全文
摘要:SpringBoot的一个好处就是通过注解可以轻松获取前端页面的参数,之后尅将参数经过一系列处理传送到后台数据库,前端时间正好用到。大致分为一下几种: 1.指定前端URL请求参数名称与方法名称一致,这种方式简单来说就是URL请求格式中参数需要与方法的参数名称对应上,举个例子,这么一个URL请求:ht
阅读全文
摘要:一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数) 月(0~11) 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(
阅读全文
摘要:命令格式 jstat命令命令格式: jstat [Options] vmid [interval] [count] 参数说明: Options,选项,我们一般使用 -gcutil 查看gc情况vmid,VM的进程号,即当前运行的java进程号interval,间隔时间,单位为秒或者毫秒count,打
阅读全文
摘要:nohup java -jar /xxx/xxx/xxx.jar >/dev/null 2>&1 & 关键在于最后的 >/dev/null 2>&1 部分,/dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海 >/dev/null 表示将标准输出信息
阅读全文
摘要:1、首先先回忆自身项目的编码格式,即在本地进行编码时使用的编码格式。UTF-82、检测tomcat的设置问题,在web.xml和server中的设置:server.xml中: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="
阅读全文
摘要:1、安装ntpdate,执行以下命令 1、安装ntpdate,执行以下命令 # yum install ntpdate -y 2、手工同步网络时间,执行以下命令,将从time.nist.gov同步时间 # ntpdate 0.asia.pool.ntp.org 若上面的时间服务器不可用,也可以选择以
阅读全文
摘要:今早看到一台机器时间对不上,本以为系统时间与网络北京时间不同步,就在终端命令执行网络时间同步 [root@localhost ~]# ntpdate time.windows.com 执行完之后,在执行终端命令,查看时间还是一样,其实EDT和CST是有区别的,时区不一样 EDT:指美国东部夏令时间,
阅读全文
摘要:Istio官方文档中文版 http://istio.doczh.cn/ https://istio.io/docs/concepts/what-is-istio/goals.html 为什么要使用Istio? 在从单体应用程序向分布式微服务架构的转型过程中,开发人员和运维人员面临诸多挑战,使用Ist
阅读全文
摘要:万字解读:Service Mesh服务网格新生代--Istio 官网地址:https://preliminary.istio.io/zh/docs/concepts/security/ Service Mesh新秀,初出茅庐便声势浩荡,前有Google,IBM和Lyft倾情奉献,后有业界大佬俯首膜拜
阅读全文
摘要:本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一
阅读全文
摘要:摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度。这里总结下对Spark的认识、虚拟机Spark安装、Spark开发环境搭建及编写第一个scala程序、运行第一个Spark程序。 1.Spark是什么 Spark是一个快速且通用的集群计算平台 2.Spa
阅读全文
摘要:1、 查找历史版本 使用git log命令查看所有的历史版本,获取你git的某个历史版本的id 假设查到历史版本的id是fae6966548e3ae76cfa7f38a461c438cf75ba965。 2、 恢复到历史版本 $ git reset --hard fae6966548e3ae76cf
阅读全文
摘要:MongoDB Sharding架构下连接数很容易达到很高,这里连接数分为几个概念:tcp 连接数 netstat可以统计的,一般这个是最高.如果mongod/mongos在同一台服务器,更明显。参考命令:netstat -ant|awk '{print $5}' |awk -F: '{print
阅读全文
摘要:使用 MongoDB 时,可能会遇到因为 mongod 连接数用满了,导致客户端无法连接的问题。mongod的最大连接数通过 net.maxIncomingConnections 指定,默认值为1000000,相当于没有限制,生产环境强烈建议根据实际需求配置,以避免客户端误用导致 mongod 负载
阅读全文
摘要:一. MongoDB连接数 在Linux平台下,无论是64位或者32位的MongoDB默认最大连接数都是819,WIN平台不知道,估计也没有人在 WIN平台下使用MongoDB做生产环境 [root@localhost mongodb-3.0.4]# ./bin/mongoMongoDB shell
阅读全文
摘要:本文针对的问题是“Ubuntu 安装中文语言包”“Ubuntu Server中文问题”,“Ubuntu更改语言环境”,“Ubuntu locale的设定”,“cannot change locale (zh_CN.UTF-8)”,“Linux中文乱码”,“Linux字符集的修改”,“Linux乱码的
阅读全文
摘要:在启动整个spring boot项目时,出现错误: Could not resolve placeholder 原因:没有指定好配置文件,因为src/main/resources下有多个配置文件,例如application-dev.properties, boss.properties等。 解决办法
阅读全文
摘要:ConcurrentHashMap融合了Hashtable和HashMap二者的优势。 Hashtable是做了线程同步,HashMap未考虑同步。所以HashMap在单线程下效率较高,Hashtable在多线程下同步操作能保证程序的正确性。 但是Hashtable每次执行同步操作都需要锁住整个结构
阅读全文
摘要:mongo是基于内存的数据库,应尽量将工作集中的数据全部加载到内存中,即内存应大于工作集 本文译自Chad Tindel的英文博客: http://www.mongodb.com/blog/post/capacity-planning-and-hardware-provisioning-mongod
阅读全文
摘要:http://yalung929.blog.163.com/blog/static/203898225201212981731971/ http://www.fuzhijie.me/?p=741 引 言: top命令作为Linux下最常用的性能分析工具之一,可以监控、收集进程的CPU、IO、内存使用
阅读全文
摘要:http://itbilu.com/database/mongo/E1tWQz4_e.html 索引是提高查询查询效率最有效的手段。索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引的存储位置在内存中,所在
阅读全文
摘要:一、问题描述:Python版本是3.6.3的,在Windows下使用matplotlib绘图可以,但是在ssh远程绘图的时候报错了,错误是:RuntimeError: Invalid DISPLAY variable。 二、原因:matplotlib的默认backend是TkAgg,而FltAgg、
阅读全文
摘要:理解: 1,Java编译器(即编译成class文件时) 用的是unicode字符集。 2,乱码主要是由于不同的字符集相互转换导致的,理论上各个字符的编码规则是不同的,是不能相互转换的,所以根本解决乱码的方法就是不要转换编码方式,编码方式前 后统一。 3,ASCII、GB2312、GBK、GB1803
阅读全文
摘要:@Transactional 事务管理的目的 在出现异常的情况下,保证数据的一致性;数据提交操作回滚至异常发生前的状态 事务管理的方式: Spring(Spring Framework 提供对事务管理的抽象接口) 支持两种事务管理方式: 编程式事务管理:使用TransactionTemplate或P
阅读全文
摘要:golanggoroutine协程池Groutine Pool高并发 golanggoroutine协程池Groutine Pool高并发 并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带 『高并发』光环的富二代编程语言,它的并发(并
阅读全文
摘要:最近在学习过程中用到了稍微复杂点的json数据需要将json数据解析出来,这里就截取一部分作为例子 1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。 2.下载jar包 http://
阅读全文
摘要:最近项目中要用json,闲暇时间,对json进行下总结。 1.JsonNode 项目中用到的jar包 import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMap
阅读全文
摘要:获取当前时间戳 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); 获取当前时间 SimpleDateFormat df =
阅读全文
摘要:Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个东西,必须采用某种方法,比如,简单点的,float四个字节,前两个字节表示整数位,后两个字节表示小数
阅读全文
摘要:int -> String int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i);这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345";int i;第一种方法:i
阅读全文
摘要:请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知
阅读全文
摘要:在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配置足以满足正常的功能开发。 如果需要修改自定义修改默认配置,spring boot 提供了很简便的方
阅读全文
摘要:Appendix A. Common application properties Prev Part X. Appendices Next URl链接:https://docs.spring.io/spring-boot/docs/current/reference/html/common-app
阅读全文
摘要:引言 在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别 定时任务有明确的触发时间,延时
阅读全文