自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(200)
  • 收藏
  • 关注

转载 Software caused connection abort: recv failed 说明

caused connection abort: recv failed,百度了一下发现如下说明: software caused connection abort: recv failedjava.net.SocketException: Software caused connection abort: recv failedat java.net.SocketInputStream.sock...

2018-07-05 16:26:45 66751 4

转载 为什么分布式一定要有消息队列?

1、为什么要使用消息队列?分析:一个用消息队列的人,不知道为啥用,这就有点尴尬。没有复习这点,很容易被问蒙,然后就开始胡扯了。回答:这个问题,咱只答三个最主要的应用场景(不可否认还有其他的,但是只答三个主要的),即以下六个字:解耦、异步、削峰(1)解耦传统模式:传统模式的缺点:系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻...

2018-06-08 17:16:00 9377 2

原创 Centos #service vsftpd start 提示:Redirecting to /bin/systemctl start vsftpd.service

估计是使用的是Centos7或者 Fedora高版本。启用服务变化了。执行命令使用:#systemctl start vsftpd.service

2018-01-05 14:28:37 17185 1

原创 重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwo

一般这个错误是由密码错误引起,解决的办法自然就是重置密码。假设我们使用的是root账户。1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:#vim /etc/my.cnf(注:windows下修改的是my.ini)在文档内搜索mysqld定位到[mysqld]文本段:/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)在[mysqld]后面任意一行

2018-01-02 16:43:32 12477

转载 为什么说jsp是servlet?JSP是如何转换成servlet的?

JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。    由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,这的确让人不胜其烦。JSP的出现弥补了这种

2017-10-13 10:01:19 11756

原创 日期格式的正则表达式

日期的格式多种多样,有如:"yyyy-MM-dd HH:mm:ss"、"yyyy/MM/dd HH:mm:ss"、"yyyyMMdd HH:mm:ss"等,当然也有的只记录到天。

2023-04-07 15:26:01 4507 1

原创 vue中将后台返回的数字转换成对应的文字

vue中将后台返回的数字转换成对应的文字

2023-02-23 14:00:46 3090

原创 windows11改老版右键显示

windows11改老版右键显示

2023-02-03 11:56:04 683

原创 eclipse快捷键

如果你重命名的是类中的一个属性,你可以点击alt+shift+r两次,这会呼叫出源码处理对话框,可以实现get及set方法的自动重命名。新版Eclipse的 修改建 议做的很不错,可以帮你解决很多问题,如方法中的缺失参数,throw/catch exception,未执行的方法等等。我们经常会遇到看代码时Ctrl+左键,层层跟踪,然后迷失在代码中的情况,这时只需要按“Alt+左方向键”就可以退回到上次阅读的位置,同理,按“Alt+右方向键”会前进到刚才退回的阅读位置,就像浏览器的前进和后退按钮一样。

2023-01-30 14:19:03 3964

原创 Oracle中的xmltype使用简介

Oracle中的xmltype使用简介

2022-07-12 18:00:26 2253

原创 CopyOnWriteArrayList的原理与应用

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。CopyOnWrite容器非常有用,可以在非常多的并发场景中使用到。一. 什么是CopyOnWrite容器

2022-04-12 11:43:29 625

原创 IDEA中Git的使用

工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七:小张获取小袁提交的分支场景八:小张把分支合并到主干下面来看以上各场景在IDEA中对应的操作。场

2022-02-08 16:06:22 806

原创 微服务(Microservices)

本文内容微服务 微服务风格的特性 组件化(Componentization )与服务(Services) 围绕业务功能的组织 产品不是项目 强化终端及弱化通道 分散治理 分散数据管理 基础设施自动化 容错性设计 设计改进 微服务是未来吗 其它 微服务系统多大 微服务与SOA 多语言多选择 实践标准和强制标准 让做对事更容易 断路器circuit breaker和产品中现有的代码 同步是有害的 参考资料微服务“微...

2022-01-26 21:45:37 539

原创 开发FTP不要使用sun.net.ftp.ftpClient

在开发一个web应用过程中,需要开发一个服务使用ftp功能将数据传输一个网外的ftp服务器。最初使用sun.net.ftp.ftpClient类,但是遇到问题,在网内测试没有问题,向网外传时报告失败。开发环境如下:web服务:tomcat 5.5.28OS平台:Linux 5java: 1.5失败报告:port命令失败,试试用pasv代替。代码如下:Java代码 TelnetOutputStreamos=null; FileInputStreamin=nu...

2021-12-29 15:32:37 299

原创 anaconda中创建虚拟环境

1、用conda创建Python虚拟环境(在conda prompt环境下完成)conda create -n environment_name python=X.X(注:该命令只适用于Windows环境;“environment_name”是要创建的环境名;“python=X.X”是选择的Python版本)2、激活虚拟环境(在conda prompt环境下完成)activate your_env_nameWindows: activate your_env_name(虚拟环境名称)3、

2021-12-22 14:52:28 564

原创 IntelliJ IDEA 常用快捷键

说IDEA对新手来说难,可能其中一个原因就是快捷键组合多而且复杂但是它也很全,基本所有功能都可以通过快捷键来完成,可以这么说,如果你掌握了所有IDEA的快捷键使用,那么你完全可以丢掉鼠标,而且不影响开发效率。一、Ctrl 快捷键Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光

2021-12-21 22:46:49 82

原创 Java并发关键字-synchronized

synchronized简介在学习知识前,我们先来看一个现象:开启了10个线程,每个线程都累加了1000000次,如果结果正确的话自然而然总数就应该是10 * 1000000 = 10000000。可就运行多次结果都不是这个数,而且每次运行结果都不一样。这是为什么了?有什么解决方案了?这就是我们今天要聊的事情。我们已经了解了Java内存模型的一些知识,并且已经知道出现线程安全的主要来源于JMM的设计,主要集中在主内存和线程的工作内存而导致的内存可见性问题,以及重排序导致的问题,进一步知道了hap

2021-11-22 11:34:24 128

原创 as-if-serial规则和happens-before规则的区别

为了在不改变程序执行结果的前提下,尽可能地提高程序执行的并行度,我们需要了解as-if-serial规则和happens-before规则文章目录as-if-serial规则happens-before规则happens-before定义具体规则as-if-serial与happens-before的区别as-if-serial规则as-if-serial语义的意思指:不管怎么重排序(编译器和处理器为了提高并行度),(单线程)程序的执行结果不能被改变。编译器,runtime 和处理器都必须

2021-11-22 10:35:04 383

原创 进击的NIO!Reactor模式!

思维导图思维导图一、Reactor模式介绍本文主要参考Doug Lea(大神)的《Scalable IO in Java》中讲述的Reactor模式。原文地址:http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf有兴趣的可以看看这本书,受益匪浅!1.1 什么是Reactor模式Reactor模式一般翻译成"反应器模式",也有人称为"分发者模式"。它是将客户端请求提交到一个或者多个服务处理程序的设计模式。工作原理是由一个线程来接收所有的请求

2021-10-19 17:02:09 153

原创 NIO从入门到踹门

思维导图思维导图学如逆水行舟,不进则退NIO概述1.1 定义java.nio全称java non-blocking IO,是指JDK1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络(来源于百度百科)。1.2 为什么使用NIO在上面的描述中提到,是在JDK1.4以上的版本才提供NIO,那在之前使用的是什么呢?答案很简单,就是BIO(阻塞式IO),也就是我们常用的IO流

2021-10-19 16:08:58 285 1

原创 ZooKeeper - 一个可靠、可扩展的分布式协调系统

ZooKeeper是一个高可用且可靠的协调系统。分布式应用程序使用 ZooKeeper 来存储和调解更新的关键配置信息。ZooKeeper 可用于领导选举、组成员资格和配置维护。另外可以使用ZooKeeper用于事件通知、锁定和作为优先队列机制。它是分布式系统的一种中枢神经系统,其中大脑的作用由协调服务扮演,轴突是网络,过程是被监控和控制的身体部位,事件是用于传递信息的激素和神经递质。每个复杂的分布式应用程序都需要某种协调和编排系统,因此雅虎的 ZooKeeper 人员决定构建一个好的应用程序并将其开源供所

2021-10-13 16:58:10 305

转载 超详细的Guava RateLimiter限流原理解析

限流是保护高并发系统的三把利器之一,另外两个是缓存和降级。限流在很多场景中用来限制并发和请求量,比如说秒杀抢购,保护自身系统和下游系统不被巨型流量冲垮等。限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务或进行流量整形。常用的限流方式和场景有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如nginx的limitconn模块,用来限制瞬时并发连接数,Java的Semaphore也可以实现)、限制时间窗口内的平均速率(如Gu

2021-10-09 14:42:33 1235

原创 Socket原理讲解

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.什么是TCP/IP、UDP?2.Socket在哪里呢?3.Socket是什么呢?4.你会使用它们吗?什么是TCP/IP、UDP?TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,...

2021-09-09 10:31:41 166

原创 Oracle数据库的实例、表空间、用户、表之间关系

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。Oracle有一个很大的内存快,成为全局区(SGA)。一

2021-08-31 11:59:05 798

原创 详解Redis中两种持久化机制RDB和AOF

HTTPS简介超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议。具体介绍以前先来介绍一下以前常见的HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文,因此使用HTTP协议传输隐私信息非常不安全。HTTP使用80端口通讯,而HTTPS占用443端口通讯。在计算机网络上,HTTPS经

2021-08-27 15:18:35 93

原创 o(1), o(n), o(logn), o(nlogn)

由于平时接触算法比较少,今天看资料看到了o(1),都不知道是什么意思,百度之后才知道是什么意思。 描述算法复杂度时,常用o(1), o(n), o(logn), o(nlogn)表示对应算法的时间复杂度,是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。比如时间复杂度为O(n),就代表数据量增大几倍,耗时也增大几倍。比如常见的遍历算法。再...

2021-08-27 14:53:02 95

原创 NIO和Epoll的实现原理

什么是NIO  NIO又叫New/Non-blocking IO,这个概念基本人人都听过,但是不一定每个人都懂他它的运行的原理。  这里我们来探讨这个问题,先用一个例子解释一下BIO到底阻塞了哪里。/** * 这是一个单线程BIOServer * @author endless * @create 2020-03-23 */public class BioServerDemo { public static void main(String[] args) throws IOE

2021-08-25 10:03:35 197

原创 MySQL存储引擎MyISAM与InnoDB区别总结整理

1、MySQL默认存储引擎的变迁在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。2、MyISAM与InnoDB存储引擎的主要特点MyISAM存储引擎的特点是:表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心;以下是MySQL 5.7 MyISAM存储引擎的版本特性:InnoDB存储引擎的特点是:行级锁、事务安全(

2021-07-07 16:18:23 704

原创 HttpClient 4.3连接池参数配置及源码解读

以下是本文的目录大纲: 一、HttpClient连接池、请求参数含义 二、执行原理及源码解读 1、创建HttpClient,执行request 2、连接池管理 2.1、连接池结构 2.2、分配连接 & 建立连接 2.3、回收连接 & 保持连接 2.4、instream.close()、response.close()、httpclie...

2021-05-07 17:40:01 2498

原创 使用HttpClient4.5 PoolingHttpClientConnectionManager 提交Http请求

使用连接池的好处大家都知道http连接是基于tcp的,而tcp创建连接需要三次握手,断开连接四次挥手,如果我们不使用连接池,那么每发出一个请求,就需要三次握手和四次挥手,而三次握手和四次挥手都是耗资源的操作。试想如果频繁的发出请求,性能是不是会是个瓶颈。所以HttpClient在4之后就出现了连接池的概念,当请求结束并不是直接断开连接,而是返回给连接池方便下次调用。代码示例 private static PoolingHttpClientConnectionManager clientCon..

2021-05-07 16:18:30 518

原创 wireshark抓包详细图文教程

wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler,其他协议比如TCP,UDP 就用wireshark.

2021-04-27 11:39:52 2067

原创 Java证书安装及多个Java应用间的根证书交叉信任

在一套Java产品环境中,常常会存在不同的Java应用,相互之间会通过HttpClient模拟HTTP访问对方,这时就涉及到浏览器所不会用到的特殊的过程:根证书的交叉信任。最后面会讲为什么浏览器和Java应用服务器的通信不需要交叉导入根证书(公钥)。制作密钥库文件假设有2个Java应用, app1和app2,用户访问的地址为https://app1.xwiz.cn 和 https://app2.xwiz.cn。首先分别为这两个主机应用创建密钥库JKS和证书请求CSR keyto.

2021-04-26 17:13:47 1108

原创 Springboot配置使用ssl,使用https

SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。SSL协议分为两层,SSL记录协议建立在TCP之上,为高层协议提供数据封装、压缩、加密等基本功能支持。SSL握手协议建立在SSL记录协议之上,用户实际数据传输开始前进行身份验证、协商加密算法、交换加密秘钥。1.生成证书,可以使自签名或者从SSL证书授权中心获得的。JDK中key

2021-04-26 17:10:16 280

原创 HTTPS 与 SSL 证书概要

HTTPS简介超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议。具体介绍以前先来介绍一下以前常见的HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文,因此使用HTTP协议传输隐私信息非常不安全。HTTP使用80端口通讯,而HTTPS占用443端口通讯。在计算机网络上,HTTPS经

2021-04-26 16:55:22 203

原创 JDK自带工具keytool生成ssl证书

前言:因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全。百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具:keytool,外加看了同事的心得体会,自己总结了一下具体的使用方法和使用过程中发现的问题及解决办法。1:什么是HTTPS?HTTPS其实是有两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块,并且会进行身份的验证。问题:Firebug和p...

2021-04-26 16:52:15 2065 1

原创 Java加密套件强度限制引起的SSL handshake_failure

通过Java代码使用HttpURLConnection去连接https系统时候总是报错handshake_failure。而使用浏览器访问一切正常。记录下诊断的过程。HttpURLConnection的调用非常简单。 HttpURLConnection connection = (HttpURLConnection)m_url.openConnection();connection.setRequestMethod("GET");connection.setAllowUs.

2021-04-26 16:32:12 2347 3

原创 linux 下查看机器cpu是几核的

几个cpumore /proc/cpuinfo |grep "physical id"|uniq|wc -l每个cpu是几核(假设cpu配置相同)more /proc/cpuinfo |grep "physical id"|grep "0"|wc -lcat /proc/cpuinfo | grep processor1. 查看物理CPU的个数#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l2. 查看逻辑CPU的个数.

2021-04-26 11:30:47 1233

原创 JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms 堆内存的初始大小,默认为物理内存的1/64-Xmx 堆内存的最大大小,默认为物理内存的1/4-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn-Xss 设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成

2021-04-26 11:16:46 207

原创 Jvm 参数xms和xmx是否必须设置相等

最近申请了几台机器专门用来运行Kafka Streams应用,发现经常发生OOM导致应用挂掉,原因是启动的时候指定了-Xms2G -Xmx2G,所以16G内存的机器没启几个应用内存就被占满了,尽管这些程序只是空跑。查了一下一般都建议-Xms和-Xmx设置为相等,那么能不能设置为不一样呢?先了解一下-Xms和-Xmx的含义-Xms初始堆的大小,也是堆大小的最小值,默认值是总共的物理内存/64(且小于1G),默认情况下,当堆中可用内存小于40%(这个值可以用-XX: MinHeapFreeRat

2021-04-26 11:13:44 2451

原创 linux下使用free命令查看实际内存占用(可用内存)

先执行一条简单的命令[root@server ~]# free -m total used free shared buffers cachedMem: 879 313 566 0 46 193-/+ buffers/cache: 74 805Swap: 204...

2021-04-26 11:09:08 2209

空空如也

空空如也

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

TA关注的人

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