Spring Cloud 入门教程7、服务网关(Zuul)

一、前言1、什么是服务网关?服务网关也就是API网关,服务网关可以作为服务的统一入口,提供身份校验、动态路由、负载均衡、安全管理、统计、监控、流量管理、灰度发布、压力测试等功能 服务网关/API网关并不是微服务体系所特有的,而是微服务流行起来之后,服务网关基本上成了微服务架构的标配。服务网关通常用于向客户端或者合作伙伴应用提供统一的服务接入方式,例如:App网关、开放平台(OpenAPI)等等。...

阅读全文

Spring Cloud 入门教程6、Hystrix Dashboard监控数据聚合(Turbine)

一、前言1、什么是Turbine?Turbine是Netflix开源的将Server-Sent Event(SSE)的JSON数据流聚合成单个流的工具。我们可以通过Turbine将Hystrix生产的监控数据(JSON)合并到一个流中,方便我们对存在多个实例的应用进行监控。 Turbine can be used with any data source that fits the supp...

阅读全文

Spring Cloud 入门教程5、服务容错监控:Hystrix Dashboard

一、前言1、Hystrix Dashboard的作用?上一篇我们介绍了Hystrix的基础使用,我们可以通过Hystrix做到依赖隔离和熔断等操作。但是只有工具的使用而没有监控,我们就无法在第一时间发现出现问题的依赖,也不能判断服务整体的健康状态/运行状态。所以我们还要做好相关的监控工作。 Hystrix提供了监控页面,本篇主要介绍如何使用Hystrix Dashboard对服务的容错情况进行监...

阅读全文

Spring Cloud 入门教程4、服务容错保护:断路器(Hystrix)

一、前言1、为什么需要断路器在分布式架构中,一个应用依赖多个服务是非常常见的,如果其中一个依赖由于延迟过高发生阻塞,调用该依赖服务的线程就会阻塞,如果相关业务的QPS较高,就可能产生大量阻塞,从而导致该应用/服务由于服务器资源被耗尽而拖垮。 另外,故障也会在应用之间传递,如果故障服务的上游依赖较多,可能会引起服务的雪崩效应。就跟数据瘫痪,会引起依赖该数据库的应用瘫痪是一样的道理。 所以,为了应...

阅读全文

Spring Cloud 入门教程3、服务消费者(Feign)

一、前言1、什么是FeignFeign是基于Ribbon封装的HTTP Client工具包,Feign的目标是简化HTTP Client。Feign也确实做到了这一点,使用Feign发起HTTP请求只需要定义好接口并且配置好相应的注解即可完成对对应接口的绑定。 Spring Cloud基于Feign封装了Spring Cloud Feign(OpenFeign),同Ribbon一样,主要是方便结...

阅读全文

Spring Cloud 入门教程2、服务消费者(Ribbon)

一、前言1、什么是RibbonRibbon是Netflix开源的实现了负载均衡等功能的RPC客户端。支持HTTP、TCP、UDP协议,且有一定的容错、缓存等机制。 Spring Cloud基于Ribbon封装了Spring Cloud Ribbon,方便结合Eureka、Consul等服务治理框架使用。Ribbon的主要作用是:从服务器端拿到对应服务列表后以负载均衡的方式访问对应服务。 从...

阅读全文

Spring Cloud 入门教程:聊聊Spring Cloud

一、 Spring Cloud 是什么?Spring Cloud 是将分布式系统中一系列基础框架/工具进行整合的框架。其中包含:服务注册与发现、服务网关、熔断器、配置中心、消息中心、服务链路追踪等等。 Spring Cloud 并没有重复造轮子,Spring Cloud只是依赖于Spring Boot屏蔽掉了各个框架复杂的配置。所有的组件就相当于Spring Cloud的插件,开发人员可以根据自...

阅读全文

Spring Boot应用 打包与部署指南

一、前言 Spring Boot的打包与部署有何特点? Java Web应用在Spring Boot之前,通常是打包成war(Web application ARchive)包,结合Tomcat来完成部署。 对于Spring Boot,Spring官方的建议是将Spring Boot应用打包成一个fat jar(Java ARchive),通过java命令来启动运行。这个fat jar会把T...

阅读全文

Thymeleaf使用技巧:使用片段(fragment)实现母版页(Layout)功能

一、前言 为什么要使用模板页(Layout) 网站中往往有通用的布局,比如导航、底部等等,这些页面中共用的部分,就需要放在母版页(Layout)里面。这样每个页面只用关注本页面要完成的功能/内容即可。提高了开发效率,也降低了公共部分的维护成本。 如果你还未使用过Thymeleaf,可以先阅读:使用Spring Boot+Thymeleaf模板引擎开发Web应用 二、实现方式 母版页代码(...

阅读全文

Spring Boot入门教程3-1、使用Spring Boot+Freemarker模板引擎开发Web应用

一、前言 为什么要使用模板引擎? 在最早的Java Web应用中,最为广泛使用的就是JSP,但是JSP已经是陈旧的技术了,ken.io觉得JSP主要有三个问题:1、视图代码不能与Java代码完全分离,如果再JSP页面写Java代码维护成本高2、无法实现页面继承工程,实现模板页的方式蹩脚3、由于一些已知问题,Spring Boot官方不建议,比如:Spring Boot+JSP打成jar包会有问...

阅读全文