自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用layui左侧菜单点击跳转后变成选中状态

我们在开发后台时候,会选择使用layui,为我们大大提供了方便,当我们点击左侧菜单时候,会变成选中状态这是layui系统默认提供给我们的,但是当我们给菜单项里添加了 URL后就没这么顺利了,我们点击后,页面会重新刷新,刷新后选中状态就没有了,当然,可以考虑使用iframe,但是iframe使用起来总是不那么灵活,通过调试台我们可以看到,选中状态其实就是父级标签多了一个class属性这样的话...

2019-10-12 11:02:46 6256 4

转载 欢迎使用CSDN-markdown编辑器Linux 解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or d

转载:http://blog.csdn.net/c233728461/article/details/52679558CentOS7中执行[plain] view plain copyservice iptables start/stop会报错Failed to start iptables.service: Unit iptables.service failed to load: No ...

2019-08-06 14:51:56 239

原创 Spring Cloud与微服务构建(八)熔断器Hystrix 8.5 在RestTemplate和Ribbon上使用熔断器

本节以案例的形式讲解如何在RestTemplate和Ribbon作为服务消费者时使用Hystrix熔断器。本节的案例在上一章的案例基础之上进行改造。在上一章的eureka-ribbon-cliennt工程中,我们使用RestTemplate调用了eureka-client的“/hi”API接口,并用Ribbon做了负载均衡,本节在此基础上加Hystrix熔断器的功能。首先在工程pom文件中引用H...

2019-06-17 10:45:05 269

原创 Spring Cloud与微服务构建(八)熔断器Hystrix 8.4 Hystrix的工作机制

首先,当服务的某个API接口的失败次数在一定时间内小于设定的阈值时,熔断器处于关闭状态,该API接口正常提供服务。当该API接口处理请求的失败次数大于设定的阈值时,Hystrix判定该API接口出现了故障,打开熔断器,这时请求该API接口会执行快速失败的逻辑(即fallback回退的逻辑),不执行业务逻辑,请求的线程不会处于阻塞状态。处于打开状态的熔断器,一段时间后会处于半打开状态,并将一定数量的...

2019-06-17 09:56:28 142

原创 Spring Cloud与微服务构建(八)熔断器Hystrix 8.3 Hystrix的设计原则

总的来说,Hystrix的设计原则如下。防止单个服务的故障耗尽整个服务的Servlet容器(例如Tomcat)的线程资源。快速失败机制,如果某个服务出现了故障,则调用该服务的请求快速失败,而不是线程等待。提供回退(fallback)方案,在请求发生故障时,提供设定好的回退方案。使用熔断机制,防止故障扩散到其他服务。提供熔断器的监控组件Hystrix Dashboard,可以实时监控熔断...

2019-06-17 09:49:07 136

原创 Spring Cloud与微服务构建(八)熔断器Hystrix 8.2 Hystrix解决了什么问题

在复杂的分布式系统中,可能几十个服务相互依赖,这些服务由于某些原因,例如机房的不可靠性、网络服务商的不可靠性等,导致某个服务不可用。如果系统不隔离该不可用的服务,可能会导致整个系统不可用。例如,对于依赖30个服务的应用程序,每个服务的正常运行时间为99.99%,对于单个服务来说,99.99%的可用是非常完美的。有99.99的30次方 = 99.7%的可正常运行时间和0.3%的不可用时间,那么1...

2019-06-17 09:45:22 130

原创 Spring Cloud与微服务构建(八)熔断器Hystrix 8.1什么是Hystrix

前两章讲述了如何使用RestTemplate和Feign云消费服务,并详细地讲述了Ribbon做负载均衡的原理和Feign的工作原理。本章将讲述如何在用RestTemplate和Feign消费服务时使用熔断器Hystrix,将从以下7个方面进行讲解。什么是Hystrix。Hystrix解决了什么问题。Hystrix的工作原理。如何在RestTemplate和Ribbon作为服务消费者时使...

2019-06-12 14:14:27 106

原创 Spring Cloud与微服务构建(七)声明式调用Feign 7.6 Feign是如何实现负载均衡的

FeignRibbonClientAutoConfiguration类配置了client.default的类型(包括HttpURLConnection、OkHttp和HttpClient),最终向容器注入的是Client的实现类LoadBalancerFeignClient,即负载均衡客户端。查看LoadalancerFeignClient类中的execute方法,即执行请求的方法,代码如下: ...

2019-06-12 14:08:17 154

原创 Spring Cloud与微服务构建(七)声明式调用Feign 7.5 在Feign中使用HttpClient和OkHttp

在Feign中,Client是一个非常重要的组件,Feign最终发送Request请求以及接收Response响应都是由Client组件完成的。Client在Feign源码中是一个接口,在默认的情况下,Client的实现类是Client。Default,Client.Default是由HttpURLConnection来实现网络请求的。另外Client还支持HttpClient和OkhHttp来进...

2019-06-12 13:56:32 1001

原创 Spring Cloud与微服务构建(七)声明式调用Feign 7.4 从源码的角度讲解Feign的工作原理

Feign是一个伪Java Http客户端,Feign不做任何的请求处理。Feign通过处理注解生成Request模板,从而简化了Http API的开发。开发人员可以使用注解的方式定制Request API模板。在发送Http Request请求之前,Feign通过处理注解的方式替换掉Request模板中的参数,生成真正的Request,并交给Java Http客户端去处理。利用这种方式,开发者...

2019-06-12 11:20:41 123

原创 Spring Cloud与微服务构建(七)声明式调用Feign 7.3 FeignClient的配置

Feign Client默认的配置类为FeignClientsConfiguration,这个类在spring-cloud-netflix-core的jar包下。打开这个类,可以发现这个类注入了很多Feign相关的配置Bean,包括FeignRetryer、FeignLoggerFactor和FormattiongConversionService等。另外,Decoder、Encoder和Cont...

2019-06-10 13:51:57 310

原创 Spring Cloud与微服务构建(七)声明式调用Feign 7.2 FeignClient详解

为了深入理解Feign,下面将从源码的角度来讲解Feign。首先来查看FeignClient注解@FeignClient的源码,其代码如下:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FeignClient { @AliasFor("name")...

2019-06-10 13:40:13 121

原创 Spring Cloud与微服务构建(七)声明式调用Feign 7.1 写一个Feign客户端

在上一章中,讲解了如何使用RestTemplate来消费服务,如何结合Ribbon在消费服务时做负载均衡。本章将全面讲解Feign,包括如何使用Reign来远程调试其他服务、FeignClient的各项详细配置,并从源码的角度深入讲解Feign。Feign受Retrofit、JAXRS-2.0和WebSocket影响,采用了声明式API接口的风格,将Java Http客户端绑定到它内部。Feig...

2019-06-10 11:38:19 146

原创 Spring Cloud与微服务构建(六)负载均衡Ribbon 6.5 源码解析 Ribbon

为了深入理解Ribbon,现在从源码的角度来讲解Ribbon,看它如何和Eureka相结合,并如何和RestTemplate相结合来做负载均衡。首先,跟踪LoadBalancerClient的源码,它是一个接口类,继承了ServiceInstanceChooser,它的实现类为RibbonLoadBalanceClient。LoadBalancerClient是一个负载均衡的客户端,有如下3种方...

2019-06-05 17:51:43 122

原创 Spring Cloud与微服务构建(六)负载均衡Ribbon 6.4 LoadBalanceClient 简介

负载均衡器的核心类为LoadBalancerCient,LoadBalancerClient可以获取负载均衡的服务提供者的实例信息。为了演示,在RibbonController重新写一个接口“/testRibbon”,通过LoadBalancerClient去选择一个eureka-client的服务实例的信息,并将该信息返回,代码如下: @Autowired private Loa...

2019-06-04 11:56:21 547

原创 Spring Cloud与微服务构建(六)负载均衡Ribbon 6.3 使用RestTemplate和Ribbon来消费服务

本案例是在5.2节案例的基础上进行改造的,先回顾一下5.2节中的代码结构,它包括一个服务注册中心eureka-server、一个服务提供者eureka-client。eureka-client向eureka-server注册服务,并且eureka-client提供了一个“/hi”API接口,用于提供服务。启动eureka-server,端口为8761。启动两个eureka-client实例,端口...

2019-06-04 11:21:31 130

原创 Spring Cloud与微服务构建(六)负载均衡Ribbon 6.2 Ribbon简介

负载均衡是指将负载分摊到多个执行单元上,常见的负载均衡有两种方式。一种是独立进程单元,通过负载均衡策略,将请求转发到不同的执行单元上,例如Nginx。另一种是将负载均衡逻辑以代码的形式封装到服务消费者的客户端上,服务消费者客户端维护了一份服务提供者的信息列表,有了信息列表,通过负载均衡策略将请求分摊给多个服务提供者,从而达到负载均衡的目的。Ribbon是 Netflix公司开源的一个负载均衡的组...

2019-06-03 14:47:54 157

原创 Spring Cloud与微服务构建(六)负载均衡Ribbon 6.1 RestTemplate简介

上一章讲述了服务注册和发现组件 Eureka,同时追踪源码深入讲解了 Eureka的机制,最后通过案例讲解了如何构建高可用的 Eureka Server。本章讲解如何使用 Rest Template和 Ribbon相结合作为服务消费者去消费服务,同时从源码的角度来深入讲解 Ribbon。RestTemplate是 Spring Resource中一个访问第三方 RESTful API接口的网络请...

2019-06-03 14:41:13 117

原创 Spring Cloud与微服务构建(五)服务注册和发现Eureka 5.5构建高可用的Eureka Server集群

在实际的项目中,可能几十个或者几百个的微服务实例,这时Eureka Server承担了非常高的负载。由于Eureka Server在微服务架构中有着举足轻重的作用,所以需要对Eureka Server进行高可用的集群。本节以实战的方式介绍如何构建高可用的Eureka Server集群,本节例子在5.2节案例的基础上进行改造。首先更改eureka-server的配置文件application.y...

2019-05-30 11:30:04 142

原创 Spring Cloud与微服务构建(五)服务注册和发现Eureka 5.4源码解析Eureka

5.4.1 Eureka的一些概念(1) Register服务注册当 Eureka Client向 Eureka Server注册时, Eureka Client提供自身的元数据,比如IP地址、端口、运行状况指标的Url、主页地址等信息。(2) Renew服务续约Eureka Client在默认的情况下会每隔30秒发送一次心跳来进行服务续约。通过服务续约来告知 Eureka Server该...

2019-05-30 09:13:44 116

原创 Spring Cloud与微服务构建(五)服务注册和发现Eureka 5.3 编写Eureka Client

在主Maven工程中创建一个新的Module工程命名为eureka-client,该工程作为Eureka Client的工程向服务注册中心Eureka server 注册。eureka-client工程创建完之后在其pom文件中引入相关的依赖,其pom文件继承了主工程的pom文件,并且需要引入Eureka Client客户端所需的依赖spring-cloud-starter-eureka,引入We...

2019-05-29 19:40:51 145

原创 Spring Cloud与微服务构建(五)服务注册和发现Eureka 5.2 编写Eureka Server

由于本案例有多个Spring Boot工程, 为了方便管理,采用Maven多Module的结构,所以需要创建一个Maven主工程。需要说明的是,本书中所有的案例都将采用这种Maven多Module的结构。本案例最终完整项目的结构如下:|_chapter5-2 |_eureka-client |_eureka-server |_pom.xml创建完主Maven工程之后,在主Maven的p...

2019-05-29 19:09:46 119

原创 Spring Cloud与微服务构建(五)服务注册和发现Eureka 5.1 Eureka简介

“Eureka”来源于古希腊词汇,意为“发现了”在软件领域, Eureka是 Netflix在线影片公司开源的一个服务注册与发现的组件,和其他 Netflix公司的服务组件(例如负载均、断器、网关等)一起,被 Spring Cloud社区整合为 A Spring Cloud Netflix模块。本章将从以下4个方面来讲解服务注册与发现模块 Eureka。Eureka简介。编写一个 Eur...

2019-05-29 18:03:28 133

原创 Spring Cloud与微服务构建(四)开发框架Spring Boot 4.7 Spring Boot整合Swagger2,搭建Restful API在线文档

Swagger,中文“拽”的意思,它是一个功能强大的在线API文档的框架,目前它的版本为2.X,所以称为Swagger2。Swagger2提供了在线文档的查阅和测试功能。利用Swagger2很容易构建RESTful风格的API,在Spring Boot中集成Swagger2,在本案例中需要以下5个步骤。(1)引入依赖在工程的pom文件中引入依赖,包括springfox-swagger2和spr...

2019-05-29 17:43:37 150

原创 Spring Cloud与微服务构建(四)开发框架Spring Boot 4.6 Spring Boot整合Redis

4.6.1 Redis简介Redis是一个开源的、先进的key-value存储系统,可用于构建高性能的存储系统。Redis支持数据结构有字符串、哈希、列表、集合、排序集合、位图、超文本等。NoSQL(Not Only SQL)泛指非关系型的数据库。Redis是一种NoSQL,Redis具有很多的优点,例如读写非常快速,支持丰富的数据类型,所有的操作都是原子的。4.6.2 Redis的安装(1...

2019-05-29 15:50:35 123

原创 Spring Cloud与微服务构建(四)开发框架Spring Boot 4.5 Spring Boot整合JPA

JPA全称为JAVA Persistence API,它是一个数据持久化的类和方法的集合。JPA的目标是制定一个很多数据库供应商实现的API,开发人员可以通过编码实现该API。目前,在Java项目开发中提到JPA一般是指用Hibernate的实现,因为在Java的ORM框架中,只有Hibernate实现得最好。本节以案例的形式来讲述如何在Spring Boot工程中使用JPA。另外,案例使用的数据...

2019-05-28 17:55:20 155

原创 Spring Cloud与微服务构建(四)开发框架Spring Boot 4.4 运行状态监控Actuator

Spring Boot的Actuator 提供了运行状态监控的功能,Actuator的监控数据可以通过REST、远程shell和JMX方式获得。我们首先来通过REST方式查看Actuator的节点的方法,这种是最常见且简单的方法。在工程的pom文件中引入Actuator的起步依赖spring-boot-starter-actuator,代码清单如下: <dependency...

2019-05-28 16:45:35 257

原创 Spring Cloud与微服务构建(四)开发框架Spring Boot 4.3 Spring Boot配置文件详解

Spring Boot采用了构建生产就绪Spring应用程序的观点,旨在让程序快速启动和运行。在一般情况下,不需要做太多的配置就能让Spring Boot程序正常运行。在一些特殊的情况下,我们需要修改一些配置,或者需要有自己的配置。4.3.1 自定义属性在用IDEA创建一个Spring Boot工程时,系统默认会在src/main/java/resources目录下创建一个配置文件applic...

2019-05-28 14:54:30 133

原创 Spring Cloud与微服务构建(四)开发框架Spring Boot 4.2 用IDEA构建Spring Boot工程

打开“IDEA”-“new Project”-“Spring Initializr”-填写“group”和"artifact"-勾选“web”(开启web功能)-单击“下一步”。IDEA会自动下载Spring Boot工程的模板。4.2.1 项目结构创建完工程后,工程的目录结构如下:-src -main -java -package -SpringbootAppl...

2019-05-28 11:57:41 123

原创 Spring Cloud与微服务构建(四)开发框架Spring Boot 4.1 Spring Boot简介

41 Spring Boot简介Spring Boot是由 Pivotal团队开发的 Spring框架,采用了生产就绪的观点,旨在简化配置,致力于快速开发。 Spring Boot框架提供了自动装配和起步依赖,使开发人员不需要配置各种xml文件。通过这种方式,极大地提高了程序的开发速度。因此, Spring Boot被认为是新一代的Web开发框架。在过去的 Spring开发中,需要引入大量的x...

2019-05-28 11:26:35 240

原创 Spring Cloud与微服务构建(三)构建微服务的准备 3.3 构建工具Maven的使用

3.3.1 Maven简介Apache Maven是一款软件项目管理的开源工具,是基于工程对象模型(Pom)的概念而设计的。 Maven可以管理项目构建的整个生命周期,包括清理( Clean)、编译( Compile)、打包( Package)、测试(Test)等环节。同时 Maven提供了非常丰富的插件,使得构建项目和管理项目变得简单。构建一个项目所需要的流程如下(1)生成源码(2)从源码...

2019-05-28 11:16:41 182

原创 Spring Cloud与微服务构建(三)构建微服务的准备 3.2 IDEA的安装

对于习惯了使用 Eclipse或者 My Eclipse的开发者来说,可能不愿意换新的IDEA,因为需要花时间去学习,还要去适应新的开发工具。个人觉得,IDEA比 Eclipse系列好用很多,它带来了不一样的开发体验,主要体现在以下5个方面。有对用户更加友好的界面,有更加护眼的黑色主题,感觉更高端大气。比 Eclipse更加智能,主要体现在代码的补全方面。更加友好的代码提示功能置 Mav...

2019-05-28 10:20:05 204

原创 Spring Cloud与微服务构建(三)构建微服务的准备 3.1 JDK的安装

子曰:“工欲善其事,必先利其器”。说的是做好一件事,准备工作是非常重要的。本章和下一章主要介绍构建微服务前的准备工作,本章介绍开发环境的搭建,下一章讲解开发框架Spring Boot的入门。搭建的环境包括DK的安装、开发工具的安装,以及项目的构建工具常见的开发 Spring Cloud项目的工具包括 MyEclipse, IntellJ Idea(简称IDEA),强烈推荐使用IDEA作为开发工具。...

2019-05-28 09:43:34 749

原创 Spring Cloud与微服务构建(二)Spring Cloud简介 2.5 Spring Cloud 与 Kubernetes 比较

Spring Cloud是一个构建微服务的框架,而 Kubernetes是通过对运行的容器的编排来实现建微服务的。两者从构建微服务的角度和实现方式有很大的不同,但它们提供了构建微服务所需的全部功能。从提供的微服务所需的功能上看,两者不分上下,如表微服务关注点Spring CloudKubernetes配置管理ConfigKubernetes ConfigMap...

2019-05-28 09:07:41 177

原创 Spring Cloud与微服务构建(二)Spring Cloud简介 2.5 Kubernetes简介

Kubernetes是一个容器集群管理系统,为容器化的应用程序提供部署运行、维护、扩展、资源调度、服务发现等功能。Kubernetes是 Google运行Borg大规模系统达15年之久的一个经验总结。 Kubernetes结合了社区的最佳创意和实践,旨在帮助开发人员将容器打包、动态编排,同时帮助各大公司向微服务方向进行技术演进。它具有以下特点Planet scale(大容量):使用 Kub...

2019-05-27 17:12:43 194

原创 Spring Cloud与微服务构建(二)Spring Cloud简介 2.4 Spring Cloud 与 Dubbo比较

首先从微服务关注点来比较Spring Cloud和Dubbo两大服务框架,如表微服务关注点Spring CloudDubbo配置管理Config—服务发现Eureka、Consul、ZookeeperZookeeper负载均衡Ribbon自带网关Zuul—分布式追踪Spring Cloud Sleuth—容错Hystrix...

2019-05-27 17:01:17 134

原创 Spring Cloud与微服务构建(二)Spring Cloud简介 2.3 Dubbo简介

Dubbo是例里已巴开源的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,Dubbo广泛用于阿里巴巴的各大站点,有很多互联网公司也在使用这个框架,它包含如下核心内容。RPC远程调用:封装了长连接NIO框架,如Netty、Mina等,采用的是多线程模式。集群容错:提供了基于接口方法的远程调用的功能,并实现了负载均衡策略、失败容错等功能。服务发现:...

2019-05-27 16:42:45 133

原创 Spring Cloud与微服务构建(二)Spring Cloud简介 2.2 Spring Cloud

2.2.1简介Spring Cloud是基于 Spring Boot.的。 Spring Boot是由 Pivotal团队提供的全新Web框架,它主要的特点就是简化了开发和部署的过程,简化了 Spring复杂的配置和依赖管理,通过起步依赖和内置 Servlet容器能够使开发者迅速搭起一个web工程。所以 Spring Cloud在开发部署上继承了 Spring Boot的一些优点,提高其在开发和...

2019-05-27 16:28:04 378

原创 Spring Cloud与微服务构建(二)Spring Cloud简介 2.1 微服务应该具备的功能

Spring CLoud作为Java语言的微服务框架,它依赖于Spring Boot,有快速开发、持续交付和容易部署等特点。Spring Cloud的组件非常多,涉及微服务的方方面面,并在开源社区Spring和Netflix、Pivotal两大公司的推动下越来越完善。微服务,可以拆分为“微”和“服务”二词。“微”即小的意思,那到底多小才算“微”呢?可能不同的团队有不同的答案。从参与微服务的人数来...

2019-05-27 16:07:44 393

原创 Spring Cloud与微服务构建(一)微服务简介 1.5 微服务的设计原则

软件设计就好比建筑设计。Architect这个词在建筑学中是“建筑师”的意思,而在软件领域里则是“架构师”的意思,可见它们确实有相似之处。无论是建筑师还是架构师,他们都希望把作品设计出自己的特色,并且更愿意把创造出来的东西被称为艺术品。然而现实却是,那建筑设计和软件设计有非常大的区别。建筑师设计并建造出来的建筑往往很难有变化,除非拆了重建。而架构师设计出来的软件系统,为了满足产品的业务发展,在它的...

2019-05-27 14:59:38 249

Java面试宝典.rar

java高级开发面试题大全,囊括MQ、dubbo、JVM、kafka、Linux、Memcache、MongoDB、MySQL、并发、Nginx

2019-06-04

空空如也

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

TA关注的人

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