第一步:
创建注册中心项目,引入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)的更多相关文章

  1. SpringCloud微服务(基于Eureka+Feign+Hystrix+Zuul)

    一.搭建注册中心 1.1.创建一个cloud-service项目 1.2:POM文件依赖 1 <?xml version="1.0" encoding="UTF-8 ...

  2. Spring Cloud微服务实战:手把手带你整合eureka&zuul&feign&hystrix

    转载自:https://www.jianshu.com/p/cab8f83b0f0e 代码实现:https://gitee.com/ccsoftlucifer/springCloud_Eureka_z ...

  3. Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul)

    Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul) 1.Eureka Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是 ...

  4. Spring Cloud 整合 Feign 的原理

    前言 在 上篇 介绍了 Feign 的核心实现原理,在文末也提到了会再介绍其和 Spring Cloud 的整合原理,Spring 具有很强的扩展性,会把一些常用的解决方案通过 starter 的方式 ...

  5. Feign Hystrix

    1.Feign整合Hystrix 添加依赖 编写接口与实现回退 1.1.调用者引入依赖 <!-- Feign --> <dependency> <groupId>o ...

  6. springcloud(七) feign + Hystrix 整合 、

    之前几章演示的熔断,降级 都是 RestTemplate + Ribbon 和 RestTemplate + Hystrix  ,但是在实际开发并不是这样,实际开发中都是 Feign 远程接口调用. ...

  7. Feign + Hystrix 服务熔断和服务降级

    本机IP为  192.168.1.102 1.    新建 Maven 项目   feign 2.   pom.xml <project xmlns="http://maven.apa ...

  8. SpringCloud之Eureka注册中心原理及其搭建

    一.Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCl ...

  9. Feign 系列(03)Feign 工作原理

    目录 Feign 系列(03)Feign 工作原理 1. Feign 是如何设计的 2. Feign 动态代理 2.1 ReflectiveFeign 构建 2.2 生成代理对象 2.3 Method ...

随机推荐

  1. Linux 安装composer

    wget https://getcomposer.org/installer //下载一个脚本文件 php installer //php执行下这个php脚本(虚拟机我没装环境.以下截图有操作流程) ...

  2. 36.QT-解决无边框界面拖动卡屏问题(附带源码)

    1.简介 看到很多才学QT的人都会问为啥无边框拖动为啥会花屏? 那是因为你每次拖动的过程中都一直在调用move()函数让QT重新绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重新改变坐标了, ...

  3. 【Java】List遍历时删除元素的正确方式

    当要删除ArrayList里面的某个元素,一不注意就容易出bug.今天就给大家说一下在ArrayList循环遍历并删除元素的问题.首先请看下面的例子: import java.util.ArrayLi ...

  4. HTML代码片段

    按钮类 后退.前进按钮 返回按钮 几种刷新按钮 警告框显示源代码 链接按钮 打开新窗口 打印 新窗口延迟打开 背景色变换 表单类 点击清空文字 关闭输入法 链接 双击打开链接 超链接鼠标形状 页面 不 ...

  5. asp.net core参数保护之自定义要保护的参数类型

    asp.net core参数保护之自定义要保护的参数类型 Intro 为了实现 asp.net core 下的参数保护,扩展了asp.net core 中 DataProtection,可以自动化的保 ...

  6. 前后端交互实现(nginx,json,以及datatable的问题相关)

    1.同源问题解决 首先,在同一个域下搭建网络域名访问,需要nginx软件,下载之后修改部分配置 然后再终端下cmd  nginx.exe命令,或者打开nginx.exe文件,会运行nginx一闪而过, ...

  7. ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门

    一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...

  8. Xml文档规则

    Xml文档规则: 名字中不能包含空格 名字不能以数字或标点符号开头 左尖括号 < 后不可以有空格 起始和结束标签的大小写必须一致(严格区分大小写) XML文件中出现的第一个元素是根元素 XML文 ...

  9. Python列表之班荆道故

    列表list初识 列表是python的基础数据类型之一 ,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: list列表的定义: list_ = []list_1 = [&qu ...

  10. c/c++ linux epoll系列1 创建epoll

    linux epoll系列1 创建epoll 据说select和poll的弱点是,随着连接(socket)的增加,性能会直线下降. epoll不会随着连接(socket)的增加,性能直线下降. 知识点 ...