• 等级
  • 126598 访问
  • 135 原创
  • 491 转发
  • 15356 排名
  • 26 评论
  • 44 获赞

HttpClient4.X 升级 入门 + http连接池使用

在一次服务器异常的排查过程当中(服务器异常排查的过程我会另起文章),我们决定使用HttpClient4.X替代HttpClient3.X或者HttpConnection。为什么使用HttpClient4?主要是HttpConnection没有连接池的概念,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。HttpClient3也有连接池的东西在里头,使用MultiT...

2019-04-24 12:10:57

HttpClient连接池抛出大量ConnectionPoolTimeoutException: Timeout waiting for connection异常排查

1错误信息Https请求工具类]发送POST请求(HTTP)错误,httpPost:org.apache.http.conn.ConnectionPoolTimeoutException:Timeoutwaitingforconnectionfrompoolatorg.apache.http.impl.conn.PoolingHttpClientConnecti...

2019-04-24 11:52:45

Spring事务传播行为详解

前言Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文...

2019-04-23 16:38:57

[Java] 将 boolean 转换为 int

唯一的方法:intmyInt=myBoolean?1:0;如果使用强制类型转换(int)myBoolean,会出现语法错误。

2019-04-18 15:48:55

Socket编程中 listen函数第二个形参backlog的作用

菜菜地写下心得...[高手批评,观者参考]最近一次作业,写一个socket程序,超简单的那种,就C/S架构,客户端发服务器端接,然后服务器把接到的东西在发回给客户端,TCP的,用到的方法无非就是socket()、bind()、listen()、accept()、connect()、send()、recv()、closesocket(),还有那WSAStartup()、WSACleanup...

2019-04-18 08:00:37

tomcat 与 nginx,apache的区别是什么?

作者:David链接:https://www.zhihu.com/question/32212996/answer/87524617来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。题主说的Apache,指的应该是Apache软件基金会下的一个项目——ApacheHTTPServerProject;Nginx同样也是一款开源的HTTP服务器软件(当然...

2019-04-16 12:20:28

MySQL分库、分表的问题

问题描述 为什么进行分表?分库? 一般多少数据量开始分表? 什么是数据库垂直拆分和水平拆分 回答为什么要进行分库业务发展,当单个数据库中的表越来越多,数据量越来越大的时候。数据的增删改查所消耗的资源就会增加。由于mysql是无法分布式部署(可能会有人说不是有主从吗?并不是,详细会在其他文章说明)的。==而单台服务器的资源,如CPU、磁盘、内存、IO等都是...

2019-04-09 20:58:00

@transactional注解在什么情况下会失效,为什么?

一,特性:1,一般在service里加@Transactional注解,不建议在接口上添加,加了此注解后此类会纳入spring事务管理中,每个业务方法执行时,都会开启一个事务,不过都是按照相同的管理机制。2,@Transactional注解只能应用到public修饰符上,其它修饰符不起作用,但不报错。3,默认情况下此注解会对unchecked异常进行回滚,对checked异常不回滚。那...

2019-04-09 20:32:09

两个进程同时访问同一个文件

对于多个进程打开同一文件的情况,每个进程都有它自己的文件表项(file对象),其中有它自己的文件位移量,所以对于多个进程读同一文件都能正确工作。但是,当多个进程写同一文件时,则可能产生预期不到的结果。(可以使用pread,pwrite)。总结:两个独立进程打开同一文件,对应不同的file对象,每个进程调用close只影响本进程的“打开文件计数”(file对象的引用计数)。可以先打开着...

2019-04-08 09:06:06

分布式事务

一、为什么要分布式事务二、数据一致性方案1、基于XA协议的两阶段提交方案交易中间件与数据库通过XA接口规范,使用两阶段提交来完成一个全局事务,XA规范的基础是两阶段提交协议。第一阶段是表决阶段,所有参与者都将本事务能否成功的信息反馈发给协调者;第二阶段是执行阶段,协调者根据所有参与者的反馈,通知所有参与者,步调一致地在所有分支上提交或者回滚。两阶段提交方案应用非...

2019-04-04 11:15:08

简单聊聊SOA和微服务

前两天和一个朋友聊天,他向我咨询如何从零开始构建一个健壮、强大的软件系统,聊着聊着他忽然问我,「听大家都在说微服务(下文中有的地方会使用MSA),还有人会提到SOA,那么他们的区别到底在哪里?」。我想了想,一时也列不出来一个详细的列表,只能跟他讲说其实他们在概念上是相似的。关于软件系统的架构设计,是一个太多人喜欢讨论的问题,尤其是对软件开发不了解的人士来说,总是被各种各样的概念绕来绕去。从更高...

2019-04-04 10:59:44

如何通俗易懂地解释什么是SOA?

作者:光太狼链接:https://www.zhihu.com/question/42061683/answer/251131634来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。对于SOA,感觉这个概念性的东西没那么容易理解,看了各位大神的解释感觉很多都说的很抽象,所以想尝试用自己的语言解释下,仅做参考。SOA粗暴理解:把系统按照实际业务,拆分...

2019-04-04 09:27:30

TCP连接大量CLOSE_WAIT状态问题排查

CLOSE_WAIT产生原因  close_wait是被动关闭连接是形成的,根据TCP状态机,服务器端收到客户端发送的FIN,TCP协议栈会自动发送ACK,链接进入close_wait状态。但如果服务器端不执行socket的close()操作,状态就不能由close_wait迁移到last_ack,则系统中会存在很多close_wait状态的连接,如下图所示:可能的原因如下:...

2019-04-03 21:25:28

蓄水池抽样算法(Reservoir Sampling)

蓄水池抽样算法(ReservoirSampling)许多年以后,当听说蓄水池抽样算法时,邱simple将会想起,那个小学数学老师带他做“小明对水池边加水边放水,求何时能加满水”应用题的下午。一、问题我是在一次失败的面试经历中听说蓄水池算法的。之后上网搜了搜,知道是一个数据抽样算法,寥寥几行,却暗藏玄机。主要用来解决如下问题。给定一个数据流,数据流长度N很大,且N直到处理完所有数据...

2019-04-03 21:24:08

[LeetCode] Maximal Square 最大正方形

Givena2Dbinarymatrixfilledwith0'sand1's,findthelargestsquarecontainingall1'sandreturnitsarea.Forexample,giventhefollowingmatrix:10100101111111110010...

2019-04-03 21:23:44

sqrt

求取平方根classSolution{public:intsqrt(intx){if(x<=0){return0;}longres=x;while(res*res>x){res=(res+x/res)/2;...

2019-04-03 21:23:24

redis 问题

0.redis单线程问题单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。1.为什么说redis能够快速执行(1)绝大部分请求是纯粹的内存操作(非常快速)(2)采用单线程,避免了不必要的上下文切换和竞争条件(3)非阻塞IO-IO多路复用...

2019-04-03 15:54:51

Redis实现CAS的乐观锁

对于经常开发Web的Coder们,经常会有这样的需求,就是在多机的分布式环境下,有时候需要限制多台机器上的请求修改同一份资源。对于单机的环境下,我们通常可以用同步或者锁去避免多线程下的竞态条件。以java为例,我们可以用synchronized或者ReentrantLock,去做资源访问的同步。但这是JVM和操作系统提供给我们的特性,但是对于分布式环境下我们没有这些便利条件。所以我们需要引入一个外...

2019-04-03 15:26:58

redis事务

什么是Redis事务?和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制。在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石。相信对有关系型数据库开发经验的开发者而言这一概念并不陌生,即便如此,我们还是会简要的列出Redis中事务的实现特征:1、在事务中的所有命令都将会被串行化的顺序执行,事务执行...

2019-04-03 15:24:51

Redis事务(transaction)

事务(transaction)Note本文档翻译自:http://redis.io/topics/transactions。MULTI、EXEC、DISCARD和WATCH是Redis事务的基础。事务可以一次执行多个命令,并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户...

2019-04-03 15:23:47

江上渔者21号

关注
  • 嵌入式/硕士
  • 中国 河北省 唐山市
奖章
  • 持之以恒