深入Eureka/Feign/Hystrix原理学习(1)
第一步:
	创建注册中心项目,引入cloud discovery相关依赖。
	①在pom文件中引入相关依赖。
	②在启动类上加上@EnableEurekaServer注解,标注这是一个注
册中心。
	③在application.yml配置文件中进行相关配置:配置端口
server:port:7776,配置注册中心的地址http://localhost:7776/euraka
等。
	④在启动项目后,直接在浏览器输入localhost:7776就可以访问
eureka的管理界面。
注意:pom文件中spring boot和spring cloud的版本要相对应,如果是较
低版本的spring cloud,比如Dalston.SR4,对应的spring boot版本是
1.5.6.
第二步:
	创建客户端,发布服务。对于注册中心而言,所有的连接对象都
是客户端。
	①引依赖。
	②配置yml:给项目取名,便于其他工程发现,
spring:application:name:dm-user-provider这就是取名。将服务注册到
注册中心去,需要指定注册中心的地址:eureka:client:service-
url:defaultZone:http://localhost:7776/eureka.同样需要进行端口配
置server:port:8080.
	③在启动类上加上@EnableDiscoveryClient注解,在启动时就会
去读取配置文件中的信息,按照Eureka客户端的要求加载数据。
	④启动项目后就可以在eureka的管理界面中看到发布的服务。
三板斧:依赖,配置文件,注解。
Eureka的自我保护机制默认是开启的,是为了保证某些暂时不可用的服务
节点不会被激进地清理掉。因为有些服务暂时不可用不代表这些服务是无
效的。
第三步:
	对注册中心的管理界面进行安全控制。
	使用spring-boot-starter-security进行权限控制,让注册中心
的服务更加安全。
	①首先在pom文件中引入security依赖。
	②在配置文件中进行配置:启用-
security:basic:enabled:true.配置用户名密码-
security:user:name:root/security:user:password:123456.
	③在进行权限控制后,客户端访问注册中心时需要在访问url中
进行如下配置:http://root:123456@localhost:7776/eureka.
第四步:
	新建项目,对注册中心存在的服务进行调用。
	①需要额外引入spring-cloud-starter-feign依赖,解决服务调
用的问题。
	②在配置文件中进行配置:spring:application:name:dm-user
-consumer.标注这是服务的调用方。server:port:8081.要保证端口不要
重复。
	③在启动类中加上注解:@EnableDiscovery注解将服务注册到注
册中心。@EnableFeignClients注解用于从注册中心中调用服务。
	④在业务处理类也就是和Service接口上加上@FeignClient注解
,指定要从注册中心调用的服务的名称,@FeignClient(name="dm-user-
provider").注意,接口中方法的定义格式要与provider中的方法一致,
比如提供方的方法上加了@RequestMapping
(value="/login",method=RequestMethod.GET)。就相当于告诉Feign组件
,要调用的服务长这个模样,Feign从而好创建一个实现类去调用服务。
	⑤在调用方的Controller类中就可以通过@Autowired注解直接注
入提供方的服务。
第五步:
	公共模块的使用场景,被多个客户端共同使用的模块都定义到公
共模块中,比如javaBean等。Common项目无需注册到注册中心。
其他项目或者是模块想要使用Common模块,需要在pom文件中引入Common
的依赖,先install一下Common项目。
第六步:
	熔断器hystrix配置。feign:hrstrix:enabled:true.如果服务调
用出错时的处理方案:通常做法是定义一个类,在服务调用出错时执行这
个类中的方法,一般命名为**Fallback,同时需要implements正常调用的
那个接口。并且需要在该类上添加@Compnent注解,纳入spring容器管理
。在@FeignClient注解中追加fallback=**Fallback.class。就类似于一
个备胎,在出错时顶上去。
深入Eureka/Feign/Hystrix原理学习(1)的更多相关文章
- SpringCloud微服务(基于Eureka+Feign+Hystrix+Zuul)
		一.搭建注册中心 1.1.创建一个cloud-service项目 1.2:POM文件依赖 1 <?xml version="1.0" encoding="UTF-8 ... 
- Spring Cloud微服务实战:手把手带你整合eureka&zuul&feign&hystrix
		转载自:https://www.jianshu.com/p/cab8f83b0f0e 代码实现:https://gitee.com/ccsoftlucifer/springCloud_Eureka_z ... 
- Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul)
		Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul) 1.Eureka Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是 ... 
- Spring Cloud 整合 Feign 的原理
		前言 在 上篇 介绍了 Feign 的核心实现原理,在文末也提到了会再介绍其和 Spring Cloud 的整合原理,Spring 具有很强的扩展性,会把一些常用的解决方案通过 starter 的方式 ... 
- Feign Hystrix
		1.Feign整合Hystrix 添加依赖 编写接口与实现回退 1.1.调用者引入依赖 <!-- Feign --> <dependency> <groupId>o ... 
- springcloud(七)  feign + Hystrix 整合 、
		之前几章演示的熔断,降级 都是 RestTemplate + Ribbon 和 RestTemplate + Hystrix ,但是在实际开发并不是这样,实际开发中都是 Feign 远程接口调用. ... 
- Feign + Hystrix 服务熔断和服务降级
		本机IP为 192.168.1.102 1. 新建 Maven 项目 feign 2. pom.xml <project xmlns="http://maven.apa ... 
- SpringCloud之Eureka注册中心原理及其搭建
		一.Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCl ... 
- Feign 系列(03)Feign 工作原理
		目录 Feign 系列(03)Feign 工作原理 1. Feign 是如何设计的 2. Feign 动态代理 2.1 ReflectiveFeign 构建 2.2 生成代理对象 2.3 Method ... 
随机推荐
- [争什么! 掺在一起做撒尿牛丸啊! 笨蛋]ASP.NET Core 2.0 + EF6 + Linux +MySql混搭
			好消息!特好消息!同时使用ASP.NET Core 2.0和.NET Framework类库还能运行在linux上的方法来啦! 是的,你没有看错!ASP.NET Core 2.0,.NET Frame ... 
- [PHP]命令执行函数的区别
			<?php $cmd="ps aux|grep php-fpm"; $res=exec($cmd,$o); var_dump($o);//数组形式返回,每行一个元素 var_ ... 
- break,return和continue三者区别(Java)
			一.break用于完全结束一个循环,跳出循环体. 不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码. class Demo3 { public static v ... 
- Makedown
			目录 Makedown 介绍 Markdown的语法 Makedown 介绍 Makedown的创建者是John Gruber Q:什么是markdown呢? markdown和html类似是mark ... 
- JS实现图片base64转blob对象,压缩图片,预览图片,图片旋转到正确角度
			base64转blob对象 /** 将base64转换为文件对象 * @param {String} base64 base64字符串 * */ var convertBase64ToBlob = f ... 
- 震惊!Vector两行代码求逆序对,六行代码过普通平衡树
			Vector两行代码求逆序对 背景:济南集训Day7上午T2,出了一道逆序对的裸题,SB的我没看出是逆序对来,于是现场推了一个很刁钻的求逆序对的方法 首先我们想一下冒泡排序的过程,我们不难发现,对于每 ... 
- [ SHELL编程 ] 字符串空格和文件空行删除
			1.删除字符串中空格 (1)删除行首空格 (2)删除行尾空格 (3)删除前.后空格,不删除中间空格 (4) 删除字符串中所有空格 echo " 123 567 " | sed 's ... 
- C#从SqlServer数据库读写文件源码
			如下的资料是关于C#从SqlServer数据库读写文件的内容,希望能对码农们有一些用. <%@ Page Language="C#" %> <script run ... 
- jest 自动化测试
			概述 jest 是 facebook 开源的,用来进行单元测试的框架,可以测试 javascipt 和 react. 单元测试各种好处已经被说烂了,这里就不多扯了.重点要说的是,使用 jest, 可以 ... 
- Log4j分级别存储日志到数据库
			首先先创建三张表,按照自己的需求创建 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE lo ... 
