自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

青藤光年的博客

知道的越多,越发现自己的渺小

  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 RabbitMQ系列一介绍与安装

什么是MQMQ就是Message Queue,也就是消息队列,是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信。消息队列的目的就是实现应用的异步和解耦。现在成熟的MQ有很多种,比如Apache的ActiveMQ、阿里的RocketMQ(已经捐献给了Apache)、...

2018-09-30 16:28:09 374

原创 Spring Cloud系列(三十)Config客户端—Finchley版本

URI指定配置中心Spring Cloud Config客户端在启动的时候,默认会从工程的classpath中加载配置信息并启动应用。只有当我们配置spring.cloud.config.uri的时候,客户端才会尝试连接Spring Cloud Config 的服务端来获取远程配置信息并初始化Spring 环境配置。同时,我们必须将该参数配置在bootstrap.properties或者boo...

2018-09-30 11:15:36 2063

原创 Spring Cloud系列(二十九)高可用配置中心—Finchley版本

本文转载自:Spring Cloud构建微服务架构(四)分布式配置中心(续)--翟永超传统作法通常在生产环境,Config Server与服务注册中心一样,我们也需要将其扩展为高可用的集群。在之前实现的config-server基础上来实现高可用非常简单,不需要我们为这些服务端做任何额外的配置,只需要遵守一个配置规则:将所有的Config Server都指向同一个Git仓库,这样所有的配置...

2018-09-29 16:40:22 597

转载 Spring Cloud系列(二十八) Config服务端详解—Finchley版本

在上一篇文章实现了基本结构的配置管理服务端和客户端,同时讲解了一些配置的基本原理。现在总结一下它是如何运作起来的。其中主要包含下面几个要素。远程Git仓库:用来存储配置文件,上一篇文章我存储了应用名为repo的多环境配置文件:repo-{profile}.properties。 Config Server:这是一个分布式配置中心,即config-server-vFinchley.RC2工程,...

2018-09-29 15:56:39 1209

原创 Tomcat多域名,多端口配置

如果想一个Web应用可以被多个端口访问,只需要在server.xml添加如下配置就可以。<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding= "utf-8" maxHttpHeaderSize="10

2018-09-27 17:21:07 1162

原创 通过Tomcat发布Web项目到互联网

如果要将Web项目发布到互联网,必须准备一台服务器,推荐阿里云,性能好,学生的话更优惠。另外还需要购买域名,也可以在阿里云买,并将域名解析指向我们布置服务的服务器空间IP。第一步,先搭建环境,在服务器安装jdk、配置环境变量、安装Tomcat、安装Mysql数据库。注意:记得打开端口的防火墙。第二步,将项目打成war包放到Tomcat的webapps目录下,启动Tomcat的startup...

2018-09-27 15:07:15 4442

原创 配置Tomcat解决Url带中文参数乱码问题

我的Tomcat版本是Tomcat7,其他版本配置的方式基本一样。首先打开Tomcat安装目录,打开conf文件夹。打开server.xml,在大概71行的位置在Connector标签添加属性 URIEncoding= "utf-8"这样就可以了。...

2018-09-27 14:47:53 4570

原创 Apache和Tomcat的区别

作为一个Java开发,Tomcat在工作中是避免不了要使用的,而使用Tomcat的时候总会出现Apache,到底Apache和Tomcat是什么关系?1.明确两个概念Apache是Web服务器,和它类似的还有常说的Nginx,而Tomcat是应用服务器,更明确地说Tomcat只是一个servlet容器,可以认为它是Apache的扩展,但是可以独立于Apache运行。2.两者的相同点...

2018-09-27 14:29:21 8919 1

原创 POI解析Excel,解决长数字变成科学计数法或double的问题

项目里需要用到POI解析Excel,在处理时碰见了以下两个问题: 遇到数字类型时,虽然Excel中设置为文本类型,但是POI的Cell类型依然会变为数字类型,而且当数字比较长的时候,读取出来的结果还会变成科学计数法的形式。 数字无论是否为小数还是整型,当使用cell.getNumbericCellValue()来读取内单元格内容的时候,都会统一当成Double类型来处理,整数后面会...

2018-09-27 13:20:47 4482 3

转载 Spring Cloud系列(二十七) 分布式配置中心Spring Cloud Config—Finchley版本

Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源...

2018-09-25 18:33:44 659

原创 创建GitHub仓库并与本地Git绑定

Git是Linux之父Linus Torvalds(互联网大佬)编写的一个版本控制软件。目前我们接触的与Git有关系的有三种,分别是Git、GitHub以及GitLab。Git就是最原始的分布式版本控制系统,是开源的。GitHub与Git不同的是,Git是一个单独的软件,而GitHub是一个网站。众所周知,GitHub是目前最大的版本控制社区网站,用户可以在上面申请账号,并创建自己版本仓库...

2018-09-24 16:54:32 1370

原创 通过Zuul网关实现文件上传

在Spring Cloud系列(二十六) Zuul过滤器详解(Finchley.RC2版本)提到了Zuul上传文件的问题。这里整理一下:上传文件含有中文名,需要为上传路径添加 /zuul 前缀(当前版本貌似已经修复,不需要添加 /zuul 前缀也可以) 对于小文件(1M以内)上传无需任何处理,对于大文件(10M以上)上传,需要为上传路径添加 /zuul 前缀,也可以使用 zuul.servl...

2018-09-21 13:02:41 5915 5

转载 Spring Cloud系列(二十六) Zuul过滤器详解(Finchley.RC2版本)

Zuul核心过滤器通过前两篇对Zuul的介绍,我们对于Zuul的有了一个大概的印象:它包含了对请求的路由和过滤两个功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础;而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。然而实际上,路由功能在真正运行时,它的路由映射和请求转发都是由几个不同的过滤器完成的。其中,路由映射主要通过...

2018-09-20 18:29:22 1153

原创 Spring Cloud系列(二十五) Zuul配置Hystrix和Ribbon(Finchley.RC2版本)

Hystrix和Ribbon配置由于Spring Cloud Zuul包含了对Hystrix和Ribbon的依赖,所以Zuul拥有线程隔离和断路器的自我保护功能,以及对客户端的负载均衡能力。但是,需要注意在使用path和url的映射关系来配置路由规则时,对于路由转发的请求不会采用HystrixCommand来包装,所以这类路由请求没有线程隔离和断路器的保护以及负载均衡的能力。所以使用Zuu...

2018-09-19 19:17:01 6728

原创 @EnableDiscoveryClient和@EnableEurekaClient的区别

如果你在网上查找Spring Cloud 的资料,会发现有的客户端注解使用@EnableDiscoveryClient注解有的使用@EnableEurekaClient注解,现在来看看二者有什么区别:看一下@EnableEurekaClient的源码/** * Convenience annotation for clients to enable Eureka discovery c...

2018-09-19 14:39:59 4748

转载 Spring Cloud系列(二十四) 路由详解(Finchley.RC2版本)

传统路由配置传统路由配置就是不需要依赖服务发现机制,通过在配置文件中具体指定每个路由表达式与服务实例的映射关系来实现API网关对外请求的路由。单实例配置通过zuul.routes.<route>.path与zuul.routes.<route>.url的方式进行配置,比如:zuul.routes.api-a.path= /api-a/**zuul.rou...

2018-09-18 19:38:06 1096

原创 eclipse 未响应 initRemoteEditJob

方法一:1)重启eclipse2)重新指定一个新的workspace3)  加载完毕关掉eclipse,重启并切换回之前的workspace(不是百分百有效)方法二:1)关闭eclipse ;2)删除workspace目录下.metadata\.plugins\org.eclipse.core.resources\.root\.indexes文件夹3)重启eclip...

2018-09-18 10:29:41 973

转载 bootstrap-select插件实现下拉框搜索功能

工作上要用到在下拉框内实现搜索功能,原生的select标签是不能输入的,所以最终找到了bootstrap-select插件,功能十分强大,支持搜索,多选,分组选中等。本文摘取自:JS组件系列——再推荐一款好用的bootstrap-select组件,亲测还不错bootstrap框架下下拉框select搜索功能官方文档bootstrap-select开源地址:https://g...

2018-09-17 15:48:57 6936 1

转载 Spring Cloud系列(二十三) API网关服务Spring Cloud Zuul(Finchley.RC2版本)

为什么使用Spring Cloud Zuul?通过前几章的介绍,我们对于Spring Cloud Netflix 下的核心组件已经了解了大半,利用这些组件我们已经可以构建一个简单的微服务架构系统,比如通过使用Spring Cloud Eureka实现高可用的服务注册中心以及实现微服务的注册与发现;通过Spring Cloud Ribbon或Feign实现服务间负载均衡的接口调用;同时,为了...

2018-09-15 19:14:44 817

原创 js下载Excel

现在前端一直习惯直接使用ajax做页面局部刷新,但是用它来做文件下载是不行的,因为它的响应类型没有流文件,可以通过以下方式实现:第一种:通过get请求的方式实现下载window.open("http:localhost:8080/v1/download/sheetdata");这种方式就是通过get请求访问一个URL,参数都拼在url后面来实现。这种方式简单,但是每次都会瞬间打开一个...

2018-09-15 16:08:44 7862 1

原创 Spring Boot 设置允许跨域请求

在Spring Boot项目中添加配置类import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import or...

2018-09-15 15:48:05 561

原创 Spring Cloud系列(二十二) Spring Cloud Feign配置详解(Finchley.RC2版本)

版本说明<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> <r

2018-09-12 16:17:14 6592 1

原创 Spring Cloud系列(二十一) Spring Cloud Feign快速入门(Finchley.RC2版本)

前面已经相信介绍了Spring Cloud Ribbon 和 Spring Cloud Hystrix,了解了如何在微服务架构中实现客户端负载均衡的服务调用以及如何通过断路器来保护微服务应用。这两者将被作为基础工具类框架广泛地应用在各个微服务实现中,不仅包括我们自身的业务类微服务,也包括一些基础设施类微服务(比如网关)。而且这两个组件几乎都是同时出现的,那么我们是否可以有更高层次的封装来整合这两个...

2018-09-11 15:01:25 827 2

原创 mysql获取最近一天的数据

获取从昨天到现在的数据,你可能习惯性的这么写了:select * from user where date >= CURDATE()-1事实上这样写是不对也不规范的,MySQL官网也没有说日期可以直接加减。我们应该用DATE_SUB()函数来实现这个功能select * from user where date >= DATE_SUB(CURDATE(),INTERVA...

2018-09-10 17:57:14 6954

原创 fastjson 把null属性转成空字符串

在使用FastJson解析数据的时候,如果API中返回的实体类中某个属性是null值的话,该属性是会被过滤掉的。但是往往这个属性我们需要它不被过滤掉,更希望它转成空字符串等形式来展示。这个时候可以使用FastJson的serialzeFeatures属性来实现这个效果。很简单,只需要在实体类的属性上加上注解@JSONField(serialzeFeatures= {Serialize...

2018-09-10 17:46:05 9278 1

原创 Spring Cloud系列(二十) Turbine集群监控(Finchley.RC2版本)

通过Turbine可以汇集监控信息,并将聚合后的信息提供给Hystrix Dashboard来集中展示和监控。这里盗个图,当我们使用Turbine和Hystrix Dashboard整合时,系统架构是这样的:Turbine集群监控第一步,创建标准的Spring Boot过程,命名turbine-vFinchley.RC2,勾选如下依赖:此时的pom文件<de...

2018-09-10 13:13:12 720

原创 Spring Cloud系列(十九) Hystrix仪表盘(Finchley.RC2版本)

在之前关于Hystrix的介绍中,多次提到了关于请求命令的度量指标的判断。这些度量指标都是HystrixCommand和HystrixObservableCommand实例在执行过程中记录的重要信息,它们除了在Hystrix断路器实现中使用之外,对于系统运维也有非常大的帮助。这些指标信息会以“滚动时间窗”和“桶”结合的方式进行汇总,并在内存中驻留一段时间,以供内部或外部进行查询使用,Hystrix...

2018-09-05 13:58:13 2569 1

原创 Spring Cloud系列(十八) Hystrix配置详解(Finchley.RC2版本)

在之前介绍Hystrix的使用方法时,已经涉及过一下Hystrix属性的配置,我们可以根据实现HystrixCommand的不同方式将配制方法分为如下两类。①通过继承的方式实现,可用Setter对象来对请求命令的属性进行设置,比如下面的例子:public UserCommand() { super(Setter.withGroupKey(HystrixCommandGroupKey.F...

2018-09-04 21:28:09 4134

原创 Spring Cloud系列(十七) Hystrix请求合并(Finchley.RC2版本)

微服务架构中的依赖通常通过远程调用实现,而远程调用最常见的问题就是通信消耗与连接数占用。在高并发情况下,因通信次数增多,将出现排队等待与响应延迟的情况。为了优化这两个问题,Hystrix提供了HystrixCollapser来实现请求的合并,以减少通信消耗的线程数的占用。HystrixCollapser实现了在HystrixCommand之前放置一个合并处理器,将处于一个很短的时间窗(默认10...

2018-09-04 21:16:36 577

原创 Spring Cloud系列(十六) Hystrix请求缓存(Finchley.RC2版本)

Hystrix提供了请求缓存的功能,在高并发的场景下,我们可以方便的开启和使用请求缓存来优化系统,达到减轻高并发时的请求线程消耗、降低请求响应时间的效果。开启请求缓存功能通过继承的方式实现Hystrix请求缓存很简单,只需要在实现HystrixCommand或者HystrixObservableCommand时,重写getCacheKey()方法来开启请求缓存。比如public cl...

2018-09-04 21:12:32 576

原创 Spring Cloud系列(四) Eureka配置详解(Finchley.RC2版本)

在Eureka的服务治理体系中,主要分为服务端和客户端两个不同的角色,服务端为服务注册中心,客户端为提供各个接口的微服务应用,这里介绍一下Eureka的配置。Eureka服务端配置在实际应用中,我们所做的配置内容都是对客户端进行的操作,而Eureka服务端更像一个现成的产品,大多数情况下我们不需要修改它的配置。如果你想了解的话,可以去这个类中查看org.springframewor...

2018-09-01 16:57:16 1102

原创 Spring Cloud系列(十五) Hystrix服务降级、异常处理、线程池划分(Finchley.RC2版本)

服务降级在继承HystrixCommand时,通过重写getFallback()方法来实现服务的降级处理逻辑,当run()执行过程中出现错误、超时、线程池拒绝、断路器熔断等情况时会执行此方法内的逻辑。具体代码在上面可以找到。在继承HystrixObservableCommand时,通过重写resumeWithFallback()方法来实现服务降级逻辑,该方法会返回Observable对...

2018-09-01 13:27:26 809

空空如也

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

TA关注的人

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