0%

SpringBoot 国际化配置

一、配置LocaleResolver

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Configuration
public class LocaleConfig extends WebMvcConfigurerAdapter{

@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
// 默认语言
slr.setDefaultLocale(Locale.CHINA);
return slr;
}

@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
// 参数名
lci.setParamName("lang");
return lci;
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
super.addInterceptors(registry);
}

}
阅读全文 »

一、概述

先了解下含义

1、BIOS

BIOS是一组固化到主板中一个ROM芯片上的程序,它可以从CMOS中读写系统设置的具体信息,它可以对主板上的键盘、鼠标、外部接口、频率、电源、磁盘驱动器等方面进行参数控制和调整。我们常用的调整硬盘或U盘的启动顺序,电源管理的设置或者一些超频设置。都是在BIOS中完成的。

2、UEFI

UEFI:全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。
这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。可以说UEFI是BIOS的升级版,从上世纪九十年代就开始开发。
UEFI运行于32或64位模式,它突破了传统16位代码的寻址能力,达到处理器的最大寻址,克服了BIOS代码运行缓慢的弊端

阅读全文 »

Zuul 过滤器

Zuul大部分功能都是通过过滤器来实现的。Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期。

  • PRE:这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。
  • ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfilx Ribbon请求微服务。
  • POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。
  • ERROR:在其他阶段发生错误时执行该过滤器。
阅读全文 »

一、Zuul 的回退

Zuul 本身就有断路器的功能
很简单只需自定义一个ZuulFallbackProvider即可,在实现这个ZuulFallbackProvider的getRoute()方法中定义你的服务名称。下面是简单的示例
我这个是producer这个微服务的fallback

阅读全文 »

举个栗子,在一个大型的购物网站中,以微服务架构进行拆分,会分为很多种服务,比如购物车、订单服务、评论服务、库存服务、用户服务等等,服务相互之间调用,那么就会产生很多个链接地址,如果有成百上千个服务之间进行调用,那么维护起来是很麻烦的,所以根据环境需要就产生了服务网关。
什么是服务网关,简单的说它就是一个中转站或者叫转发器,我们每次请求只需要去网关即可,而不需要去具体的服务请求,为了方便理解,看下面两张图


下面是加了网关API之后

阅读全文 »

在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,最终导致自身服务的瘫痪。这就是传说中的雪崩效应 或者叫 级联失败

为了解决这种服务之间的级联失败,所以产生了一种模式叫做断路器模式

什么是断路器

阅读全文 »

Eureka 高可用

前面讲的例子,都离不开Eureka服务,如果说eureka 突然宕机了,那是不是所有的服务都没法用了。所以我们怎么也得弄几台才行啊
我们看看官方文档的例子:

阅读全文 »

Feign

Feign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单。我们只需要使用Feign来创建一个接口并用注解来配置它既可完成。它具备可插拔的注解支持,包括Feign注解和JAX-RS注解。Feign也支持可插拔的编码器和解码器。Spring Cloud为Feign增加了对Spring MVC注解的支持,还整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现。

Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去调用,而 Feign 是一个使用起来更加方便的 HTTP 客戶端,使用起来就像是调用自身工程的方法,而感觉不到是调用远程方法

阅读全文 »