- 博客(287)
- 资源 (7)
- 收藏
- 关注
原创 解决 IDEA中Spring boot启动类注解@SpringBootApplication报红
创建工程后报红提示无法解析符号@SpringBootApplication,按Ctrl鼠标单击找不到所在类解决办法:删掉本地文件夹中Maven仓库 repository\org\springframework\boot 目录下的spring-boot-autoconfigure 文件夹,Idea工具重启,@SpringBootApplication报红问题解决...
2021-10-13 10:47:02
8100
3
转载 idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错
idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错找到 .idea\workspace.xml;如果找不到.idea是就更好显示目录,就能找到。找到<component name="PropertiesComponent">,在里面添加<property name="dynamic.classpath" value="t..
2021-05-17 16:43:10
6106
1
转载 springcloud(十)-Zuul微服务网关
为什么要使用微服务网关前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个微服务框架已经完成了。我们还是少考虑了一个问题,外部的应用如何来访问内部各种各样的微服务呢?如果让客户端直接与各个微服务通信,会有以下问题:客户端会多次请求不同的...
2019-09-03 11:07:16
369
转载 springcloud(十一)-Zuul聚合微服务
前言我们接着上一节。在许多场景下,外部请求需要查询Zuul后端的多个微服务。比如一个电影售票手机APP,在购票订单页上,既需要查询“电影微服务”获得电影相关信息,又需要查询“用户微服务”获得当前用户信息。如果让手机端直接请求各个微服务(即使使用Zuul进行转发),那么网络开销,流量耗费,耗费时长可能都无法令人满意。那么对于这种场景,可使用Zuul聚合微服务请求——手机APP发送一次请求给Zuu...
2019-09-03 10:37:30
290
转载 Docker的4种网络模式
我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:· host模式,使用--net=host指定。· container模式,使用--net=container:NAME_or_ID指定。· none模式,使用--net=none指定。· bridge模式,使用--net=bridge指定,默认设置。下...
2019-03-14 10:34:56
278
转载 JAVA学习(字符操作类Character、String、StringBuffer)(转)
在java中有三个类负责对字符的操作:Character、String、StringBuffer。其中Character类是对单个字符进行操作,String是对一个字符序列的操作,StringBuffer是对一串字符进行操作。 Character java中Character和char的区别:Character是类,char是基本数据类型.char可以自动包装成Char...
2019-02-26 15:42:53
1271
原创 JAVA常用的工具类使用
1、判断Object是否是String或者是Char类型(来自于json-lib,工具类:JSONUtils) /** * Tests if obj is a String or a char */ public static boolean isString( Object obj ) { if( (obj instanceof String)...
2019-02-26 15:37:13
295
转载 Spring Cloud Eureka REST 接口
Eureka 作为注册中心,其本质是存储了每个客户端的注册信息,Ribbon在转发的时候会获取注册中心的服务列表,然后根据对应的路由规则来选择一个服务给Feign来进行调用。如果我们不是Spring Cloud技术选型,也想用Eureka可以吗?完全可以如果不是Spring Cloud技术栈个人推荐用zk之类的会方便些,当然用Eureka也是可以的这样的话就涉及到如何注册信息,获取注册...
2018-12-11 19:16:48
350
转载 置TOMCAT及httpClient的keepalive以高效利用长连接
配置TOMCAT及httpClient的keepalive以高效利用长连接 总所周知http1.1(http1.0不是标准,依服务器而定)是支持长连接的,长连接能够保证服务器和客户端的socket能够高效利用,减少握手等额外的开销。httpClient在正常情况下会带上Connection: keep-alive表示我是支持长连接的,当完成一个请求后,视情况决定是否关闭连接。 正常情况下,服务...
2018-12-11 14:27:00
3018
转载 Hystrix使用说明,配置参数说明
一、什么情况下会触发fallback方法?二、fallback方法在什么情况下会抛出异常三、hystrix dashboard界面监控参数四、配置信息(default或HystrixCommandKey)最常用的几项超时时间(默认1000ms,单位:ms) (1)hystrix.command.default.execution.isolation.thread.ti...
2018-11-22 15:17:32
1265
转载 Hystrix 参数详解
hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKeyCommand PropertiesExecution相关的属性的配置: hystrix.command.default.execution.isolation.strategy 隔离策略,默认是Thread, 可选Thread|Semaph...
2018-11-21 11:14:35
242
转载 Hystrix-Dashboard仪表盘
Hystrix Dashboard,它主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题。下面通过一个例子来学习。一、新建一个Spring Cloud 项目,命名为hystrix-dashboard1.1在pom.xml引入相关的依赖<dependency> <groupI...
2018-11-16 10:43:19
289
转载 记一次feign的问题排查(短路、线程池、队列)
昨天开了一百个线程采用feign去请求第三方项目,结果报错,出现了短路,大概是下面这样的。(feign整合了hystrix并且自动打开了熔断器)Hystrix circuit short-circuited and is OPEN。。。。。百度了一下,几乎没人碰到这个问题,于是去谷歌了,发现还真有人碰到这个问题。引起这个问题的原因是在一个滚动窗口内,失败了二十个(默认),就会发生短路,...
2018-11-15 11:43:01
8014
转载 Http持久连接与HttpClient连接池
一、背景 HTTP协议是无状态的协议,即每一次请求都是互相独立的。因此它的最初实现是,每一个http请求都会打开一个tcp socket连接,当交互完毕后会关闭这个连接。 HTTP协议是全双工的协议,所以建立连接与断开连接是要经过三次握手与四次挥手的。显然在这种设计中,每次发送Http请求都会消耗很多的额外资源,即连接的建立与销毁。 于是,HTTP协议的也进行了发展,通过持久连接...
2018-11-08 10:55:46
915
转载 Feign 源码解析
解决两个问题:请求是怎么转到 Feign 的 Feign 是怎么工作的前者跟 Spring Boot 有关,但是也关系到了后者,即通过前者才能发现是创建了哪些 Bean 或者代理来处理请求。从注解开始看,使用 Feign 涉及到了两个注解,一个是@EnableFeignClients,用来开启 Feign,另一个是@FeignClient,用来标记要用 Feign 来拦截的请求接口。...
2018-11-07 17:39:42
244
转载 Spring @Conditional注解的使用
http://blog.csdn.net/mn960mn/article/details/51190590 spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置。下面来介绍如何使用Condition 首先写一个类 [java] view plain copypackage ...
2018-11-07 15:35:01
276
转载 Spring @Conditional注解 详细讲解及示例
前言:@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。@Conditional的定义://此注解可以标注在类和方法上@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME) @Documentedpubli...
2018-11-07 14:35:38
443
转载 Ribbon的饥饿加载(eager-load)模式
目前测试的时候发现在服务都成功启动的时候第一次访问会有报错的情况发生,但是之后又恢复正常访问通过查询相关文档,了解到要解决此问题那么让需要实例化的类提前创建,而不是在第一次调用的时候创建摘自DD的博客:主要是Ribbon进行客户端负载均衡的Client并不是在服务启动的时候就初始化好的,而是在调用的时候才会去创建相应的Client,所以第一次调用的耗时不仅仅包含发送HTTP请求的时间,...
2018-11-07 10:51:54
752
转载 Hystrix的threadPool属性解读
一 介绍Thread Pool Properties:用来控制Hystrix命令所属线程池的配置coreSize:该参数用来设置执行命令线程池的核心线程数,该值也是命令执行的最大并发量。maximumSize:该参数用来设置线程池的最大队列大小。queueSizeRejectionThreshold:该参数用来为队列设置拒绝阈值。通过该参数,即使队列没有达到最大值也能拒绝请求。...
2018-11-06 20:04:47
1201
转载 SrpingCloud的压测
Spring Cloud Feign 性能优化https://www.jianshu.com/p/fe1c4412de7fspringcloud与dubbo的性能对比https://blog.csdn.net/moonpure/article/details/80729558 Feign正确的使用姿势和性能优化注意事项https://www.jianshu.com/p/19...
2018-11-06 15:57:10
368
原创 使用Springboot打包为war部署于Tomcat7中报错
问题:使用Springboot打包为war部署于Tomcat7中报错java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager... 原因:Springboo...
2018-11-05 09:51:48
1795
1
转载 CentOS 7 安装 redis3.0.7 详细步骤
1、Redis源码获取 进入Redis官网获取Redis最新稳定版下载地址 或通过wget命令下载 Redis 源代码。2、Redis编译 通过tar -xvf redis-3.0.7.tar.gz命令解压下载Redis源码压缩包redis-3.0.7.tar.gz; 2、编译Redis。通过cd redis-3.0.7/进入Redis源码目录内,执行make编译Redis;...
2018-11-02 16:26:24
479
原创 IDEA使用Maven命令
1 点击"Edit Configurations"2 进入Run/Debug Configurations窗口,点击左上角的"+",在弹出的"Add New Configuration"列表中选择"maven".3.为新的configuration输入名称和执行的命令,点击确认4.配置完成后,新的configuration会成为默认的configuration,直接点击运行...
2018-11-01 20:20:25
817
原创 Spring Cloud随机端口
为Spring Cloud的应用实用随机端口非常简单,主要有两种方法:设置server.port=0,当应用启动的时候会自动的分配一个随机端口,但是该方式在注册到Consul的时候会一个问题:所有实例都使用了同样的实例名(如:Lenovo-test:hello-service:0),这导致只出现了一个实例。所以,我们还需要修改实例ID的定义,让每个实例的ID不同,比如使用随机数来配置实例ID:...
2018-11-01 19:37:30
1379
转载 process information unavailable 的解决办法
有时候在centos上查看java进程时,会遇到process information unavailable 的情况,如下图:不同账号之间kill进程时,可能会造成这种现象(比如:deploy用户启动了一个java进程,但是用root用户去kill,虽然杀掉了,但是查看进程时偶尔就会出现) 解决办法:cd /tmp 进到该目录,然后ls查看下,通常会遇到很多hsperfdata...
2018-11-01 11:30:52
11196
转载 tomcat 8.5.9.0 解决catalina.out过大的问题
先吐嘈一下tomcat这个项目,日志切割这么常见的功能,tomcat这种知名开源项目默认居然不开启,生产环境跑不了几天,磁盘就满了,而且很多网上流传的方法,比如修改conf/logging.properties文件,将级别设置成OFF,我试了好象并不管用(tomcat 8.5.9.0版本 + centos 6.5 + jdk1.8环境)正确姿势:1、下载 https://mirrors.t...
2018-11-01 11:22:47
802
转载 利用java8对设计模式的重构
java8中提供的很多新特性可以用来重构传统设计模式中的写法,下面是一些示例:一、策略模式上图是策略模式的类图,假设我们现在要保存订单,OrderService接口定义要做什么,而NoSqlSaveOrderStragegy以及MySqlSaveOrderStrategy则提供了二种策略,分别是保存到nosql数据库,以及传统的mysql关系型数据库,最后在OrderServiceEx...
2018-11-01 11:17:22
228
转载 maven学习(下)利用Profile构建不同环境的部署包
接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接、远程调用的ws地址等等。如果每个环境build前手动修改这些参数,显然太不fashion.maven早就考虑到了这些问题,...
2018-10-30 17:26:47
214
转载 SpringBoot生成的jar包后台执行
一、java -jar直接运行方式一java -jar app.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二 &java -jar app.jar &&代表在后台运行。特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。继续改进,如何让窗口关闭时,程序仍然运行?...
2018-10-30 15:15:40
390
转载 springboot jar 后台运行 sh
本文通过创建.sh文件启动jar,并在后台运行。假如需要运行的jar为business-callpush-1.1.jar,系统linux centos6.91、新建一个文件夹callpush 2、在callpush上新建bin目录3、将business-callpush-1.1.jar移到bin下4、在callpush目录下创建软连接 ln -s bin/busines...
2018-10-30 14:57:45
332
转载 记一次线上请求缓慢问题处理
9月的某天晚上,接到通知,线上环境请求非常慢,页面打开要1分钟,遂按照系统参数,数据库,应用,web服务器状态逐步排查的步骤,最终定位到问题并得以解决,此处做个检查流程梳理,供大家参考。问题描述:正式环境请求响应异常慢,页面打开需要1分钟左右时间等。第一步 系统参数检查 1 df -h 检查硬盘空间 重点看 Use这一栏,可以看到空间足够,硬盘空间ok2 free 检查内存使用...
2018-10-30 12:03:04
809
转载 如何使用jstack分析线程状态
背景记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?当然一个正常的程序员不会写出上述代码,这里只是为了让一个线程占用较高的cpu资源。top命令在linux环境下,可以通过top命令查看各个进程的cpu使用情况,默认按cpu使...
2018-10-30 11:48:04
257
转载 Linux查看某个进程的线程
线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发执行时成为一个高效的机制。在Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然...
2018-10-30 10:22:11
6024
转载 解读Raft(一 算法基础)
最近工作中讨论到了Raft协议相关的一些问题,正好之前读过多次Raft协议的那paper,所以趁着讨论做一次总结整理。 我会将Raft协议拆成四个部分去总结: 算法基础 选举和日志复制 安全性 节点变更 这是第一篇:《解读Raft(一 算法基础)》 什么是RAFT分布式系统除了提升整个体统的性能外还有一个重要特征就是提高系统的...
2018-10-30 09:39:24
216
转载 IDEA新建MAVEN项目时速度缓慢
原因IDEA根据maven archetype的本质,其实是执行mvn archetype:generate命令,该命令执行时,需要指定一个archetype-catalog.xml文件。该命令的参数-DarchetypeCatalog,可选值为:remote,internal ,local等,用来指定archetype-catalog.xml文件从哪里获取。默认为remote,即从...
2018-10-29 20:21:07
255
原创 Linux下查看/管理当前登录用户及用户操作历史记录
一、查看及管理当前登录用户1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:用户名称 用户的机器名称或tty号 远程主机地址 用户登录系统的时间 空闲时间(作用不大) 附加到tty(终端)的进程所用的时间(JCPU时间) 当前进程所用时间(PC...
2018-10-29 19:59:07
1628
1
转载 linux清空日志文件内容 (转)
随着系统运行时间越来越长,日志文件的大小也会随之变得越来越大。如果长期让这些历史日志保存在系统中,将会占用大量的磁盘空间。用户可以直接把这些日志文件删除,但删除日志文件可能会造成一些意想不到的后果。为了能释放磁盘空间的同时又不影响系统的运行,可以使用echo命令清空日志文件的内容,命令格式如下所示。 echo > 日志文件 例如要清空/var/log/message日志文件的内容,可以使...
2018-10-29 17:46:47
1013
转载 服务器是否支持断点续传
通常情况下,Web服务器(如Apache)会默认开启对断点续传的支持。因此,如果直接通过Web服务器来提供文件的下载,可以不必做特别的配置,即可享受到断点续传的好处。断点续传是在发起HTTP请求的时候加入RANGE头来告诉服务器客户端已经下载了多少字节。等所有这些请求都返回之后,再把得到的内容一块一块的拼接起来得到完整的资源。你可以通过以下的命令来测试一下。Linux 测试服务器是否支...
2018-10-29 17:43:46
990
转载 SAR命令
前面已经介绍了 vmstat和top命令的解析及使用,下面我们来学习一个更重要的命令sarsar命令可以通过参数单独查看系统某个局部的使用情况sar 命令行的常用格式:sar [options] [-A] [-o file] t [n]在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结...
2018-10-29 17:32:50
446
转载 Linux系统中的load average
1. load average 定义linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。通过系统命令"w"查看当前load average情况[appdeploy@CNSZ22PL0088:/home/appdeploy]$w 10:38:55 up 217 d...
2018-10-29 17:28:48
134
epel-release-6-8.noarch
2016-04-01
centos安装telnet插件与说明
2016-02-01
centos安装telnet使用
2015-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人