feign是api
需要注册到eureka
调用微服务中的接口时,直接调用feign中的即可,可以理解成代理
需要注册,不然发现不了,不然feign的端口号为啥没在相应的微服务中写呢而是在里面写了eureka的地址。
貌似hystrix也是可以直接写在feign中的。
下面是项目(服务)注册过程:
1、首先在配置文件里面配置项目名称,以及配置eureka
spring.application.name=biz-service-0
server.port=8001
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
2、然后启动项目,项目启动后,会发现注册的项目的服务的名字
3、然后可以调用里面的接口:
下面是hystrix(熔断):
熔断其实就是避免阻塞,当出现部分阻塞时直接给用户自定义的响应
ribbon
总结:Ribbon其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。
pandas
Spring Cloud Zuul 简介
Zuul 是Netflix 提供的一个开源组件,致力于在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。也有很多公司使用它来作为网关的重要组成部分。Spring Cloud 体系收录的该模块,主要用于提供动态路由、监控、安全控制、限流配额等,可以将内部微服务API同意暴露。
@feignclient方式注解需要写服务名
服务名一定要存在,请仔细检查
配置好后可以直接用feign的端口号访问接口
有人说直接可以 使用响应微服务的端口号直接访问啊为啥还要使用feign来中介
主要是,可以通过这个feign来预包装一些业务逻辑,比如说检测参数是否正确,同时还可以避免直接暴露原服务,可以原服务来做内网啦
整理整体结构图
使用ftp查看7074位置
整理总体逻辑,搞懂每个模块的意义
feign,组织调用微服务前的接口,并通过feign来间接调用
eureka,用来管理每个微服务,应该是只有使用了eureka注册的服务才能使用feigncompoent来扫描到(这个有待实验)
microservice: 微服务需要指定eureka的地址来把自己注册到服务中心,让feign去发现,微服务需要制定服务名,可以连接数据库等等操作
zuul,路由,用来限制连接的跳转等等访问,或者是提前注入好一些参数,例如ip什么的
服务注册中心(eureka)、服务提供者(microservice)、服务消费者(feign)
zuul调用流程:
1、zuul注册到注册中心
2、在zuul里面配置路由的路径(hmall的):
zuul.routes.hmall.path=/hmall/**
zuul.routes.hmall.serviceId=apiclient
3、在feign里编写需要调用的接口:
4、在hmall里编写需要最终调用的接口(生产者)
需要启动的服务:
hmall、eureka、feign、zuul,总共四个服务,不需要在乎启动顺序,主要是看
eureka里,服务都有没有注册成功。。。
http://localhost:8764/productListClient
http://localhost:8760/hmall/productListClient