自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Daniel的博客

个人感悟和学习总结

原创 服务降级后的问题

今天看到一篇文章,大概就是例如一个博客论坛,调用后端接口故障了走到降级流程,而降级流程里面只是返回一个空的数据集合,那么页面显示就为空了.所有这边就讲到服务降级逻辑里面的数据拖底的问题,降级后默认返回前端的数据,可以使用redis或者cache缓存来处理,走到降级流程之后直接返回定义好的返回前端的数据,以免造成返回前端的数据为空,造成页面空白

2018-01-23 10:30:07 662

原创 Spring Cloud Zuul过滤器

前面实现了简单的zuul服务,那么这样的情况下任何知道地址的人都可以直接来访问接口那么这边可以通过zuul的过滤器来进行权限控制一 : 这边定义了一个Zuul过滤器,实现了在请求被路由之前检查请求头中是否有ACCESS_TOKEN参数,有就放行,没有就执行拦截二 : 定义一个类继承ZuulFilterpackage cn.sh.daniel.zuul;import com.netflix.zu

2018-01-19 11:56:10 298

原创 Ribbon的饥饿加载(eager-load)模式

目前测试的时候发现在服务都成功启动的时候第一次访问会有报错的情况发生,但是之后又恢复正常访问通过查询相关文档,了解到要解决此问题那么让需要实例化的类提前创建,而不是在第一次调用的时候创建摘自DD的博客:主要是Ribbon进行客户端负载均衡的Client并不是在服务启动的时候就初始化好的,而是在调用的时候才会去创建相应的Client,所以第一次调用的耗时不仅仅包含发送HTTP请求的时间,

2018-01-29 11:20:47 7958

原创 delete,truncate,drop的区别

一、delete1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。2、delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录

2018-01-26 10:27:17 174

原创 SQL优化

1: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾2: SELECT语句中避免使用 * 3: 减少查询数据库的次数,能合并的尽量合并操作4 :  用TRUNCATE替代DELETE5: 避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结

2018-01-26 10:17:26 155

转载 高并发访问数据库优化方法

一、服务器配置优化我们需要根据应用服务器的性能和并发访问量的大小来规划应用服务器的数量。有一个使用原则是:单台应用服务器的性能不一定要求最好,但是数量一定要足够,最好能有一定的冗余来保障服务器故障。特别是,在高并发访问峰期间,适当增加某些关键应用的服务器数量。比如在某些高峰查询业务上,可以使用多台服务器,以满足用户每小时上百万次的点击量。二、使用负载均衡技术负载均衡技术是解

2018-01-26 10:06:56 438

原创 linux系统配置jdk

执行步骤:1:在/usr/local/下建立java目录2:将相对应的版本的jdk上传到该目录下并解压3:执行vi /etc/profile命令4:在文件末尾加上export JAVA_HOME=/usr/local/java/jdk --此处的java_home为你的jdk的解压路径export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$J...

2018-01-24 10:19:38 105

原创 mybatis中#{}和${}的区别

#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号,例如上面传递endtime会自动转换成t.SENDTIME $将传入的数据直接显示生成在sql中,例如:排序传递一个id desc  ,那么最后生成的sql语句为 order by  id desc#方式能够很大程度防止sql注入,$方式无法防止Sql注入

2018-01-24 10:18:26 146

原创 mybatis-pagehelper简单使用分页

沿用之前的项目链接直接使用PageHelper传递页数和size就可以实现分页了

2018-01-23 15:04:38 212

原创 Spring boot整合mybatis

沿用上篇中使用mybatis generator生成的代码进行整合 打开链接1 : 修改application.yml配置数据库等信息server: port: 8888 spring: datasource: name: CloudDB url: jdbc:mysql://127.0.0.1:3306/cloud?useUnicode=true&charac

2018-01-23 14:51:14 130

原创 mybatis的代码生成器 mybatis-generator

工具:STS JDK1.8 MAVEN 生成步骤:1 : 新建一个spring-boot工程(脚手架都是基于spring-boot),2 : 选择相关依赖,这边添加的依赖方便后面进行spring-boot整合mybatis进行使用3 : 构建完成的项目结构如下这边将application.properties修改为application.yml使用yml

2018-01-23 13:52:14 158

转载 java 枚举的常见用法

用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW }  用法二:switchJDK1.6之前的switch语

2018-01-22 15:47:15 148

原创 Spring Cloud Zuul网关

前面已经简单介绍了搭建Eureka注册中心,Feign消费,Service提供者,那么外部调用的时候是直接走Feign来调用服务么?其实不然,后端接口并不会直接开方,而是通过一个统一网关服务,来映射请求的api,路由到相对应的服务.沿用之前的服务来完成Zuul的测试.一 : 新建一个boot工程命名为cloud-shop-gateway二 : 在pom中添加依赖 org.spring

2018-01-19 11:26:43 286

转载 Spring Cloud各组件超时总结

Ribbon的超时全局设置:ribbon: ReadTimeout: 60000 ConnectTimeout: 60000局部设置:service-id: ribbon: ReadTimeout: 1000 ConnectTimeout: 1000其中,service-id 是Ribbon所使用的虚拟主机名,一般和Eureka Server上注册的服务名称一致,即:与sprin

2018-01-19 10:53:22 1132

原创 Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient

Feign在默认情况下使用的是JDK原生的URLConnection发送HTTP请求,没有连接池,但是对每个地址会保持一个长连接,即利用HTTP的persistence connection 。我们可以用Apache的HTTP Client替换Feign原始的http client, 从而获取连接池、超时时间等与性能息息相关的控制能力。Spring Cloud从Brixtion.SR5版本开始支持

2018-01-19 10:33:41 11492 2

原创 这......腾讯云不厚道啊

尴尬,才买了一年的腾讯云没几天,就这样了? 最后只能已重装系统而告终!不知道是不是因为没买那些安全防护,故意给我弄的, 哎

2018-01-18 16:25:53 169

原创 Spring Cloud Feign 实现服务降级

当后端一个接口响应非常慢的时候,那么请求该接口的时候会被强制等待,直到返回或者超时结束.若在高负载的情况下,如果不做处理的话,这些问题会导致系统崩溃.Feign已经为我们集成了Hystrix,默认就会使用断路器包裹所有方法下面来看下简单的服务降级使用过程:继续使用前面搭建的Eureka,Feign,Service服务一 : 新建一个UserServiceFallBack类,实现UserServic

2018-01-18 14:49:14 6787 2

原创 Feign对压缩的支持

某些场景下,可能需要对请求和响应进行压缩,此时可以使用feign的压缩功能 Feign.compression.rquest.mime-types支持的媒体类型列表默认为text/xml ,application/json和Application/xmlMin-request-size 指定请求的最小阀值,默认为2048

2018-01-18 14:29:59 779

原创 Spring Cloud Feign 日志

有时间我们查问题的时候需要清楚的指定feign的整个调用过程,以及传递的和返回的参数.因此我们可以配置Feign的日志来显示整个过程.沿用之前的Eureka,Feign,Service服务一 : Feign日志几种类型Logger.level的值有如下选择: NONE:不记录任何日志(默认) BASIC:仅记录请求方法,url,响应状态码和执行时间 HEADERS:在basic的基础上,记录请求和

2018-01-18 14:21:39 560

原创 Spring Cloud Feign多参数传递以及注意的问题

这边沿用前面的Eureka,Feign,Service一 : 在服务提供者cloud-shop-userservice中新增几个方法/** * 保存用户 * 2018年1月18日 */ @PostMapping("/user") public String aveUser(@RequestBody User user) { logger.info("保存用户 :" +user.

2018-01-18 14:07:47 13281 7

原创 Spring Cloud Feign消费服务

一 : Feign简介 Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求,这整个调用过程和Dubbo的RPC非常类似。开发起来非常的优雅。二 : 新建spring starter project项目结果如下:三 : 新增po

2018-01-18 13:44:12 206

原创 将spring boot服务注册到Eureka注册中心

工具:JDK 8MAVENSTS沿用之前配置的Eureka注册中心具体步骤如下:一 : 新建boot项目file ---> new Spring starter project点击Next之后选择可以自己选择要引入的包,这边选择Eureka和webpom: org.springframework.boot spring-boot-starter-web org.springframe

2018-01-18 13:00:53 17821 3

原创 Eureka注册中心设置安全保护

前言 : 沿用前面搭建的高可用Eureka注册中心一 : pom.xml中新增依赖包 org.springframework.boot spring-boot-starter-security二 : 修改application.yml新增配置security:  user:    name: daniel-cloud-shop-eureka  #用户名    password: eu

2018-01-18 11:19:55 3836

原创 Eureka注册中心

构建高可用的Eureka注册中心:工具: JDK 1.8 STS MAVEN一 : 加入Eureka依赖 org.springframework.cloud spring-cloud-starter-eureka-server二 : 在应用Application主类上开启Eureka支持package cn.sh.daniel;import org.springframework.boo

2018-01-18 10:59:59 2039

原创 Spring cloud服务如何做到优雅下线

利用Spring Boot Actuato的管理端点本地搭建了一个HA的Eureka server注册中心:修改服务提供者的pom.xml添加依赖org.springframework.bootspring-boot-starter-actuator配置启用shutdownendpoints.shutdown.enabled=true本地启动

2018-01-17 10:05:12 6541 2

原创 画的简单的流程图

2018-01-10 15:57:12 151

原创 部署spring-boot工程jar包使其在后台运行

使用命令:java -jar Utrip.jar > log_utripi.file 2>&1 &  前面的是执行jar包启动,后面的让日志写到同级目录下的指定文件中 & 表示后台运行

2017-12-11 22:45:23 656

原创 自定义注解校验器

想必大家都使用过validation框架,例如下图框架已经给我们提供了不少的校验注解,那么如果我们有时候针对特殊情况需要自定义校验那么需要怎么做呢?例如:我们在生成订单号的时候会根据平台的自有规则去生成,那么在查询订单的时候我们可以自定义校验来对这个传递的订单号进行校验1:引入validationjar包2:新建一个annotationimport java.l

2017-11-23 13:51:33 2955

原创 编写restful接口时通过jsonview来控制输出json中字段的显示或者忽略

1:编写接口package com.sh.daniel.controller;import java.util.ArrayList;import java.util.List;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.

2017-11-22 14:25:18 1821

原创 使用thymeleaf模版的问题

thymeleaf模版对于前端代码的完整性检查特别严格,比如前端标签必须完整,闭合,否则访问页面的时候会一直报错,头疼解决方案:1:在pom.xml中添加一个类库net.sourceforge.nekohtmlnekohtml2:在配置thymeleaf模版的时候加上一个配置(application.properties)spring.thymeleaf.m

2017-11-17 10:08:22 268

原创 在spring-boot中使用swagger2来构建RESTful API文档

在spring-boot中使用swagger2来构建RESTful API文档,可以让使用者很清晰的看到相关接口的出入参,并且方便测试使用步骤:1:在pom文件中引入swagger2的依赖 io.springfox springfox-swagger2 2.2.2 io.springfox springfox-s

2017-09-25 13:59:42 165

转载 IDEA破解

1. 到网站 http://idea.lanyus.com/ 获取注册码。2.填入下面的license server:  http://intellij.mandroid.cn/  http://idea.imsxm.com/  http://idea.iteblog.com/key.php

2017-09-14 11:42:11 212

原创 linux下配置java环境变量

最近换了电脑所以一切的本地环境都要重新安装,这个蛮烦的呢!配置java环境变量:1:将下载下的包上传到虚拟机上2:解压3:cd jdk目录下,执行pwd 将显示的目录复制下来备用4:vim /etc/profire 修改这个文件,在最后一行加上(大小写要注意)export JAVA_HOME=/usr/share/jdk1.8 -----刚刚复制的那个目录

2017-08-31 13:56:40 151

原创 ES命令

1: 快速检查集群的健康状况GET /_cat/health?v epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent1502198242 2

2017-08-08 21:32:04 332

原创 阿里云配置遇到的一个问题

昨晚打开个人网站的地址突然发现连接不上,这就奇怪了!!这个项目是部署在阿里云上,阿里云服务器ECS,云数据库RDS版,感觉阿里云的配置还是有点复杂,对于新手要摸索一段时间.二话不说,打开tomcat的日志查看问题,日志中提示一个20000白名单错误,不明白怎么会有这个错误,这段时间也没动过数据库,既然是白名单问题,那么我去数据库配置添加ECS白名单喽上图可以看到已经配置了ECS

2017-08-02 14:39:38 243

原创 MyEclipse最简单的方式安装svn

在MyEclipse中安装svn有很多的方法,这边我说下最简单的方法,实践有效1:下载svn插件,解压2:在myeclipse的目录下新建一个自己的插件文件夹3:将解压的svn文件夹放入如下目录中4:在dropins文件夹下新建一个svn.link文件5:编辑svn.link文件    path=D:\\Myeclipse2017\\myPlugin

2017-07-28 11:07:37 155

原创 普通类中引用spring 容器管理的bean

今天遇到一个问题,在webservice接口中去注入spring管理的类的时候出现了空指针的问题,但是呢,这个webservice类并没有交给spring去做统一管理,那么要怎么注入到spring的bean呢?采用如下的方法WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); Csr

2017-07-21 16:54:18 2404

原创 修改别人的代码是一种找虐

前人留下的代码真的是没办法改,各种命名不规范,大小写不规范,说多了都是泪.特别有一点基本上例如:List list = new ArrayList()  我想说能不能把泛型类型给写上啊

2017-07-17 14:54:07 1164

原创 2017-7-10记录一个故障问题

最近几天邮件客服时不时的报给我一个邮件不能回复的故障,查看了日志情况如下:--- The error occurred while applying a parameter map. --- Check the P_A_KEYWORD_abatorgenerated_selectKeywords-InlineParameterMap. --- Check the statement (

2017-07-10 16:05:26 256

原创 整理一些corn表达式

CRON表达式         执行时间"*/5 * * * * ? "    每隔5秒执行一次"0 */1 * * * ? "   每隔1分钟执行一次"0 0 12 * * ?"    每天中午十二点触发"0 0 23 * * ?"    每天23点执行一次"0 0 1 * * ?"    每天凌晨1点执行一次"0 0 1 1 * ?"    每月1号凌晨1点执行一次

2017-06-26 11:21:11 595

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