自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java8使用stream实现list中对象属性的合并(去重并求和)

前言需要对一个List中的对象进行唯一值属性去重,属性求和,对象假设为BillsNums,有id、nums、sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份。例如说:(“s1”, 1, 1),(“s1”,2,3),(“s2”,4,4), 求和并去重的话,就是(“s1”, 3, 4),(“s2”,4,4)对象与属性 1 2 3 4 5 6 7 8 9 10 11 12

2022-05-23 15:07:43 8575 2

原创 非阻塞 IO 和异步 IO

本文将介绍非阻塞 IO和异步 IO,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到异步非阻塞这个词。本文会先介绍并演示阻塞模式,然后引入非阻塞模式来对阻塞模式进行优化,最后再介绍 JDK7 引入的异步 IO,由于网上关于异步 IO 的介绍相对较少,所以这部分内容我会介绍得具体一些。希望看完本文,读者可以对非阻塞 IO 和异步 IO 的迷雾看得更清晰些,或者为初学者解开一丝丝疑惑也是好的。阻塞模式 IO我们已经介绍过使用 Java N.

2022-01-05 16:03:33 625

原创 非阻塞 IO 和异步 IO

本文将介绍非阻塞 IO和异步 IO,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到异步非阻塞这个词。本文会先介绍并演示阻塞模式,然后引入非阻塞模式来对阻塞模式进行优化,最后再介绍 JDK7 引入的异步 IO,由于网上关于异步 IO 的介绍相对较少,所以这部分内容我会介绍得具体一些。希望看完本文,读者可以对非阻塞 IO 和异步 IO 的迷雾看得更清晰些,或者为初学者解开一丝丝疑惑也是好的。阻塞模式 IO我们已经介绍过使用 Java N.

2022-01-05 16:00:11 311

原创 Hystrix工作原理

什么是服务器雪崩服务雪崩效应是一种因 服务提供者 的不可用导致 服务调用者 的不可用,并将不可用 逐渐放大 的过程.如果所示:1上图中, A为服务提供者, B为A的服务调用者, C和D是B的服务调用者. 当A的不可用,引起B的不可用,并将不可用逐渐放大C和D时, 服务雪崩就形成了.雪崩行成的原因大致可以分成三个阶段: 服务提供者不可用 原因有: 硬件故障: 硬件故障可能为硬件损坏造成的服务器主机宕机, 网络硬件故障造成的服务提供者的不可访问. 程序Bu

2020-07-22 17:09:08 234

转载 拜托!面试不要再问我Spring Cloud底层原理

毫无疑问,Spring Cloud 是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对 Spring Cloud 功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈 Spring Cloud 微服务架构的底层原理。实际上,Spring Cloud 是一个全家桶式的技术栈,它包含了很多组件。本文先从最核心的几个组件,也就是 Eureka、Ribbon、Feign、Hystrix、Zuul 入手,来剖析其底层的工作原理.

2020-07-22 17:06:04 103

原创 获取微信手机号码

access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需要使用access_token。微信开发需要用到的access_token,其实是分为两个种类的,一种是普通的access_token,另一种是网页授权access_token。普通的access_token,是微信开发者调用微信所提供的各种借口的一个凭证,有效时间为7200秒,也就是两个小时,而且一个公众号每天获取它的次数微信那边是有限制的,上限是2000次。使用范围:通过网页授权获得的access_to...

2020-07-10 20:24:38 6156 2

转载 Redis详解(六)------ RDB 持久化

Redis详解(六)------ RDB 持久化目录1、RDB 简介 2、触发方式 ①、自动触发 ②、手动触发 3、恢复数据 4、停止 RDB 持久化 5、RDB 的优势和劣势 6、RDB 自动保存的原理  前面我们说过,Redis 相对于Memcache 等其他的缓存产品,有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数...

2019-11-20 17:14:08 102

原创 网络IO和磁盘IO详解

网络IO和磁盘IO详解1. 缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间。 读操作:操作系统检查内核的缓冲区有没有需要的数据,如果已经缓存了,那么就直接从缓存中返回;否则从磁盘中读取,然后缓存在操作...

2019-11-20 17:09:11 851

原创 关于wkhtmltopdf支持表格

前言如果你有 Markdown 或者 HTML 转到 PDF 的需求, 有非常大的可能你选了一圈方案, 最后找到了大名鼎鼎的wkhtmltopdf. 但找到它之后并没有解决所有问题, 相反, 它会带来更多的问题.首先说一下它的优点:由于是基于 WebKit, 所以渲染结果和 Chrome( 包括其他基于 Chromium的浏览器几乎完全一致) 可以和前端公用一套 CSS 样式, 结果还...

2019-02-21 17:09:06 1687 2

转载 移动前端手机输入法自带emoji表情字符处理

今天,测试给我提了一个BUG,说移动端输入emoji表情无法提交。很早以前就有思考过,手机输入法里自带的emoji表情,应该是某些特殊字符。既然是字符,那应该都能提交才对,可是为啥会被卡住呢?搜了一下,才发现,原来emoji用到的字符是4字节的utf-16(utf-16有2字节和4字节两种编码),而我们的数据库是采用的utf-8,并且最大只允许3字节的字符。这样冲突就产生了,表单因为这些emoji

2017-12-26 16:37:30 2486

原创 学习linux命令su和sudo

出于安全考虑,我们往往不使用root登录,而用一般账号来管理,但有时一些权限不够,必须要用root用户,其实系统提供了两个命令su和sudo来解决这个问题,这里先介绍这两个命令的常见用法,然后对它们使用再进行下对比。  Su是简单用法 Su的用途是让用户暂时改变登入者的身份,变更时要输入所要变更用户的用户名和密码。 我觉得su应该是switch users的意思,如果切换到root用户,可

2016-08-03 17:16:38 314

转载 Mysql高并发优化

一、数据库结构的设计如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的。在一个系统分析、设计阶段,因为数据量较小,负荷较低。我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提

2016-03-23 10:48:47 304

原创 JVM参数设置、分析

不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同

2016-03-08 20:16:11 317

转载 IO - 同步,异步,阻塞,非阻塞

当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有

2016-01-18 11:41:48 195

原创 Nginx安装部署

Nginx安装部署Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低

2016-01-05 14:40:45 270

原创 比较好的网站

nigix安装,mysql安装http://www.runoob.com/linux/nginx-install-setup.html

2016-01-05 14:37:30 1056

原创 mysql存储引擎

MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。若要修改默认引擎,可以修改配置文件中的default-storage-engine。可以通过:show variables like 'default_storage_engine';查看当前数据库到默认引擎。命令:show engines和show variables

2015-12-31 17:17:28 236

原创 mysql命令

1查看数据库每个表的状态  show TABLE STATUS from cloudnews

2015-12-31 16:41:02 196

原创 Mongodb和mysql比较

与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在某些情况下,例 如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延 迟。他们需要的是一个“大约

2015-12-31 16:38:20 381

转载 长连接与短连接

1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。 2. 如何理解HTTP协议是无状态的

2015-12-24 11:30:09 236

原创 Imagemagic的安装

žImageMagick是一个图象处理软件。它可以编辑、显示包括JPEG、TIFF、PNM、PNG、GIF和PhotoCD在内的绝大多数当今最流行的图象格式。你可以改变图象尺寸、旋转、锐化、减少颜色或加入特殊效果到图象里,并且能够以另一种图象格式保存 安装步骤ž下载介质  例:ImageMagick-6.4.2-4.tar.gzž解压    tar zxvf

2015-12-21 09:06:34 1185

原创 面向站长和网站管理员的Web缓存加速指南[翻译] 原文(英文)地址: http://www.mnot.net/cache_docs/ 版权声明:署名-非商业性使用-禁止演绎 2.0 这是一篇知识性

面向站长和网站管理员的Web缓存加速指南原文(英文)地址: http://www.mnot.net/cache_docs/  版权声明:署名-非商业性使用-禁止演绎 2.0这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面

2015-12-16 15:28:07 838

原创 memcache和redis对比

1. Redis是什么这个问题的结果影响了我们怎么用Redis。如果你认为Redis是一个key value store, 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是它保存一些频繁访问的临时数据。Redis是REmote DIctionary Server的缩写,在Redis在官方网站的的副标题是A persistent key-value database

2015-12-11 15:37:18 260

原创 mongdb聚合操作

db.runCommand({group:{ns:"pubDocStatistic",$keyf:function(doc){return {pubDate:doc.pubDate.substr(0,10)};},initial:{num:0},$reduce:function(doc,prev){    prev.num++;},condition:{pubD

2015-12-08 11:24:51 296

转载 关于redis、memcache、mongoDB 的对比

从以下几个维度,对redis、memcache、mongoDB 做了对比,欢迎拍砖1、性能都比较高,性能对我们来说应该都不是瓶颈总体来讲,TPS方面redis和memcache差不多,要大于mongodb2、操作的便利性      memcache数据结构单一      redis丰富一些,数据操作方面,redis更好一些,较

2015-12-02 11:02:17 273

转载 MongoDB与MySQL的插入、查询性能测试

目录(?)[+]1. 背景介绍1.1  MongoDB的简单介绍在当今的数据库市场上,MySQL无疑是占有一席之地的。作为一个开源的关系型数据库,MySQL被大量应用在各大网站后台中,承担着信息存储的重要作用。2009年,甲骨文公司(Oracle)收购Sun公司,MySQL成为Oracle旗下产品。而MongoDB是一种文件导向的数据库管理系统,属于一种通称为NoS

2015-12-02 10:37:07 273

原创 mysql分表的3种方法

一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果。在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql

2015-12-01 17:42:43 362

原创 数据库的并发控制和封锁协议分析

一、引言目前主流的关系数据库通常都允许多个用户同时使用和共享,所以也都具有并发控制的机制,也就是控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,以保证数据的完整性。二、事务与并发控制的概念当多用户并发存取数据时,就会产生多个事务同时存取同一数据的情况,从而引起严重的数据错误和程序运行错误。那么我们来看,什么是事务及并发控制呢?事务就是用户定义的一个

2015-11-30 13:58:47 5667

原创 JMS简介安装ActiveMQ

最近看公司的项目中用到JMS,曾经写代码的时候也用过JMS来发送消息,但是用的东西都是老大封装好的,不知道究竟JMS是怎么一回事,这两天有空自己找了点资料了解了一下,但是我也是自学的小菜鸟,不能确定我下边写的demo完全可靠,如果有错误请大神们多多指点。1、JMS简介:JMS即Java Message Service,是Java 程序创建、发送、接收和读取企业消息传送系统的消息提供了一种常

2015-11-27 18:45:35 430

原创 MySQL锁定机制

前言为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析。 MySQL锁定机制简介数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享

2015-11-25 23:25:47 291

原创 系统吞吐量(TPS)、用户并发量、性能测试概念和公式

PS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素:  一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间        QPS(TPS):每秒

2015-11-12 14:39:22 470

转载 Spring定时任务的几种实现

分类: Spring2014-03-12 15:25 2982人阅读 评论(1) 收藏 举报目录(?)[+]        近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的

2015-11-09 17:01:43 254

原创 Java阻塞IO与非阻塞IO

阻塞式I/O:(传统的IO)以网络应用为例,在传统IO方式(阻塞IO)中需要监听一个ServerSocket,接受请求的连接为其提供服务(服务通常包括了处理请求并发送响应)下图是服务器的生命周期图,其中标有粗黑线条的部分表明会发生I/O阻塞。此方式在遇到多请求时,只能等待前面的请求完成后才能处理新的请求,所以通常在Java中处理阻塞I/O要用到线程(大量的线程)。代码如下

2015-11-09 14:55:10 8036 1

原创 JVM加载class文件的原理机制

JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类。        由于Java的跨平台性,经过编译的Java源程序并不是一个可执行程序,而是一个或多个类文件。当Java程序需要使用某个类时,JVM会确保这个类已经被加载、连接(验证、准备和解析)和初始化。类的加载是指把类的.cl

2015-11-09 10:19:43 383

原创 Linux Top 命令详解

查看多核CPU命令mpstat -P ALL 和 sar -P ALL说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txt top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中

2015-11-05 18:09:58 524

原创 linux 12个进程管理命令

执行中的程序在称作进程。当程序以可执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源、内存、安全属性和与之相关的状态。可以有多个进程关联到同一个程序,并同时执行不会互相干扰。操作系统会有效地管理和追踪所有运行着的进程。为了管理这些进程,用户应该能够:查看所有运行中的进程查看进程消耗资源定位个别进程并且对其执行指定操作改变进程的优先级杀死指定进程限制进程可用的系统资

2015-11-05 16:22:05 400

原创 tomcat远程调试

第一步、配置tomcat一、在windows系统中:打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行:set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=

2015-11-05 11:22:52 309

原创 Hibernate中cascade和inverse的作用

Inverse和cascade是Hibernate映射中最难掌握的两个属性。两者都在对象的关联操作中发挥作用。1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用,也就是只对one-to-many或many-to-many有效(因 为只有这两种关联关系包含集合,而one-to-one和many-to-one

2015-11-04 14:50:08 365

原创 hibernate抓取策略(fetch)

抓取策略(fetching strategy) 是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略。抓取策略可以在O/R映射的元数据中声明,也可以在特定的HQL 或条件查询(Criteria Query)中重载声明。只影响get load 方法,对hql是不影响的,除了有一个之外。 例如,经典的班级对学生是一对多

2015-10-30 19:44:42 272

转载 跟我一起云计算(5)——Shards

博客搬至http://blog.niubua.com/ 大数据讨论群:387084660 大数据算法:385010646 量化投资 413423481 hive shark impala 288047381 spark scala 464791668  机器学习与深度学习256154524  hadoop交流70139048  用户画像交流193467273跟我一起云计

2015-09-16 18:07:53 731

用 Hibernate 和 Spring 开发持久层.zip

用 Hibernate 和 Spring 开发持久层

2010-12-27

空空如也

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

TA关注的人

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