第一步:
创建注册中心项目,引入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. 折腾Java设计模式之命令模式

    博客原文地址 折腾Java设计模式之命令模式 命令模式 wiki上的描述 Encapsulate a request as an object, thereby allowing for the pa ...

  2. js函数前面的+,!

    +function(){}(); 这里的加号,也可以替换成!,~等其他一元操作符,其效果相当于: (function() { console.log("Foo!"); })(); ...

  3. Python全栈之路(目录) - 含资料(持续更新)

    一. Python全栈之路 - 目录 Python基础 Python进阶 网络编程 并发编程 前端 数据库 Python Web框架之Django 前端框架之Vue Linux Flask+智能玩具 ...

  4. 把vux中的@font-face为base64格式的字体信息解码成可用的字体文件

    在最近移动端项目中用到了vux,感觉用着还习惯,当把vux使用到PC端的时候出现了IE浏览器出现,这样的错误信息: CSS3114: @font-face 未能完成 OpenType 嵌入权限检查.权 ...

  5. CSS-蜂窝状展示区域(多个六边形)的一种实现方式

    网上已经有很多关于正六边形的CSS画法,主要是利用一个矩形和前后的两个三角形组合而成. 之前在看四维图新的官网的时候,发现了一种六边形的画法,比较适合多排六边形组合成蜂窝状的展示区域(注:四维图新现在 ...

  6. ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 使用Visual Studio Code开发基于解决方案(sln+csproj)的项目 Visual ...

  7. MongoDB 3.6版本关于bind_ip设置

    2017年下半年新发布的MongoDB 3.6版本在安全性上做了很大提升,主要归结为两点: 1.将将bind_ip 默认值修改为了localhost: 2. 在db.createUser()和 db. ...

  8. MongoDB的常用命令和增查改删

    数据库操作 Mongodb MySQL 查询库 show databases | show dbs show databases 选中库 use databaseName use databaseNa ...

  9. 企业业务数据处理用“work”还是“MQ”

    近期公司在做架构梳理已经项目架构方向,不知不觉就引起了使用“work”跑数据还是用“MQ”进行跑数据的争论! 对于争论这件事在各行各业都有,其实我觉得针对“争论”这个词的根源在于一件事情有很多解决方案 ...

  10. Extjs 在Grid单元中格添加Tooltip提示

    Grid 中的单元格添加Tooltip 的效果 Ext.QuickTips.init(); //必须要… columns: [ { text: 'Name', dataIndex: 'name' }, ...