IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SpringCloud心得(一) -> 正文阅读

[大数据]SpringCloud心得(一)

SpringCloud主要应用于微服务方向,来缓解服务器的压力,从而带来更方便的用户体验。通过这段时间的学习,我基本上可以熟练应用spring cloud进行一些简单的开发工作,下面就是我这段时间的学习心得:
1.eureka
eureka是微服务的根本,微服务的搭建都是在eureka的基础上的。各项服务将自身注册到eureka上来实现调用者的服务的共享。
其中eureka使用到的注解分为三个基本方面:
1.eureka服务器端
使用@EnableEurekaServer来表明当前的类为eureka服务器,其中的application.yml配置文件需要提供eureka的名称、端口号、是否将自己注册到注册中心(register-with-eureka)、是否自动拉取服务(fetch-register)等基本信息
使用到的maven依赖为

<dependency> 
	<groupId>org.springframework.cloud</groupId>
	 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> 
</dependency>

2.eureka服务提供端
使用@EnableDiscoveryClient注解开启客户端发现功能,并在配置文件中将自身端口号、名称以及eureka服务器端配置完成即可,即eureka: client: service-url: defaultZone: eurekServer的服务地址
使用到的maven依赖为:

<dependency> 
	<groupId>org.springframework.cloud</groupId> 
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 
</dependency>

3.eureka服务使用端
使用@EnableDiscoveryClient注解开启客户端发现功能,并在配置文件中将自身端口号、名称以及eureka服务器端配置完成即可,即eureka: client: service-url: defaultZone: eurekServer的服务地址
使用到的maven依赖为:

<dependency> 
	<groupId>org.springframework.cloud</groupId> 
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 
</dependency>

2.ribbon负载均衡
在使用多个相同服务时,为了避免有些服务频繁被访问而其余服务空闲的情况,我们可以使用ribbon来进行服务的负载均衡。
ribbon负载均衡可以在RestTemplate的配置方法上添加@LoadBalance注解。其中RestTemplate配置方法是用来获取服务名称、端口号等信息来实现eureka服务的调用的。而添加@LoadBalance注解就可以不再指定端口号,直接使用服务名称即可完成服务的调用。
ribbon负载均衡算法使用的是简单的轮询算法,即每个端口循环使用,我们也可以在配置文件中更改{服务名称}: ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule来进行算法的调节。
3.Hystrix服务降级
服务降级是为了防止服务器在大量访问时,因为某一个小的步骤出现差错导致服务整体无法进行。所以我们需要采取方法来对服务进行降级来确保服务的正常进行,至少给用户看到一个错误的结果。
使用Hystrix开启服务熔断需要使用@EnableCircuitBreaker注解来开启服务降级。其中,spring提供了一个集成三个注解的一个更为简洁的组合注解:@SpringCloudApplication,@SpringCloudApplication包含了@SpringBootApplication、@EnableDiscoveryClient和@EnableCircuitBreaker三个注解。我们在编写服务降级时需要在被降级的方法上添加@HystrixCommand注解,调用其中的fallbackMethod属性来指派降级后的方法。其中降级方法的参数和返回值必须和被降级方法保持一致。
当我们需要在某一个类上添加降级服务时,可以使用@DefaultProperties注解中的defaultFallback属性来指定默认的降级方法,就可以在当前类的方法降级后统一执行该降级方法。
为了规定超时时长,我们可以在配置文件中添加hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 时长(单位:ms)来规定服务请求后等待的时长,默认时长为1s。其余的熔断配置如下hystrix: command: default:circuitBreaker: errorThresholdPercentage: 50 # 触发熔断错误比例阈值,默认值50% sleepWindowInMilliseconds: 10000 # 熔断后休眠时长,默认值5秒 requestVolumeThreshold: 10 # 熔断触发最小请求次数,默认值是20
使用到的maven依赖为:

<dependency>
	 <groupId>org.springframework.cloud</groupId>
	  <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> 
</dependency>

4.Feign
Feign可以极大简化我们的代码,并且Feign还集成了负载均衡、服务降级等多种常用功能,方便我们进行开发。
Feign首先是简化了服务的调用:我们需要编写Feign的客户端,其中用到的注解有@FeignClient(“{代理服务的名称}”),并完成接口的编写,接口中需要写出需要代理的方法,以及相应的@GetMapping,之后再完成相关controller的编写即可。在主类中我们需要添加@EnableFeignClient注解用来开启Feign功能。因为Feign集成了Ribbon,所以无需我们进行负载均衡的相关设置。
当然我们也可以在配置文件中使用ribbon: ReadTimeout: 2000 # 读取超时时长 ConnectTimeout: 1000 # 建立链接的超时时长来进行相关配置的修改。
Feign对Hystrix的支持:默认情况下是关闭的,我们需要在配置文件中设置feign: hystrix: enabled: true # 开启Feign的熔断功能来打开Hystrix,开启服务降级。但是在Feign中我们需要编写一个降级类来实现服务降级,而不是某个单独的方法。我们编写的降级类需要使用@Compoent将权限交给spring来管理,降级类需要实现Feign接口。编写完成后需要在Feign接口中的@FeignClient注解中调用fallback属性来指定刚才编写的降级类。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 02:03:13  更:2022-01-14 02:04:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:07:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码