强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

【前言】

随着业务不断的扩展以及开发团队的不断壮大,单体服务已经满足我们现在项目的需求;于是乎我们在新做的项目中果断采用了微服务,与此同时将我们的老项目逐步往微服务方向上改造;

在技术选型中,根据我们的需求以及未来发展的趋势,我们选择了SpringCloud全家桶同时对其中几个组件做了替换,比如:配置中心采用携程的Apollo,调用链监控采用了点评的Cat等等;后续文章会逐步讲解;

今天为大家分享的是自己在做Feign的验证时的一个经典案例,以此来快速上手Feign;

【实战】

大家提起Feign潜意识里认为要配合Eureka注册中心来使用,有些项目正处在改造的初期或项目中之前用的注册中心不是Eureka;没关系,其实Feign单独也可以使用;

          一、项目目录结构

parent(pom) :父Pom,jar包统一版本管理,聚合Pom;

---api:API工程服务提供方暴露服务被消费方依赖;

---consumer:服务消费方;

---provider:服务提供方;

          二、重要代码

1、API接口

package com.feign.api;import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@FeignClient(name = "provider", url = "http://localhost:8081")
public interface GetNumApi {@RequestMapping(value = "/getNum", method = RequestMethod.GET)int getRandomInt();
}

2、消费者调用

package com.feign.consumer.controller;import com.feign.api.GetNumApi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RestController
public class testController {@Autowiredprivate GetNumApi restFulService;@RequestMapping(value = "/consumer/getNum", method = RequestMethod.GET)public int getRandomInt() {return restFulService.getRandomInt();}}

3、消费者启动类

package com.feign.consumer;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication(scanBasePackages = {"com.feign.consumer"})
@EnableFeignClients(basePackages = {"com.feign.api"})
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}}

          三、效果展示

          访问http://localhost:8080/consumer/getNum

          四、本案例的代码

我的github---https://github.com/dangnianchuntian/springcloud

【总结】

1、不断的实践,不断的完善;

2、快速做出案例,深入思去思考,比如:本案例中不用Eureka等服务中心有什么优势同时有什么不足?Feign相比与httpclient有什么优势和不足?模块划分是否合理?如何在以后的升级中管理好版本?

只使用Feign不引入Eureka相关推荐

  1. Client引入Eureka报Completed shut down of DiscoveryClient问题原因及解决方式

    大家好我是yangerkong!今天跟大家分享在搭建cloud项目中集成eureka client时遇到的问题. client引入Eureka启动报Completed shut down of Dis ...

  2. 微服务01SpringCloud Eureka Ribbon Nacos Feign Gateway服务网关

    微服务技术栈导学 SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构.这些架构之间有怎样的差别呢? 1.0.学 ...

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

    一.常用的模块 1.Eureka Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于 ...

  4. springcloud+springboot+Eureka+Feign+Ribbon+Hystrix+Zuul

    Springcloud集成Eureka Eureka服务端和客户端 本实例采用springboot,eureka和feign/ribbon,hystrix,zuul,mybatis,redis 1. ...

  5. Eureka注册发现及Feign调用示例

    Eureka注册发现及Feign调用示例 Eureka服务端搭建 引入依赖: <parent><groupId>org.springframework.boot</gro ...

  6. 【学习笔记】Eureka服务治理代码实例、相关配置和原理机制详解

    文章目录 代码示例 启动一个服务注册中心 注册服务提供者 高可用注册中心 服务的发现与消费 Eureka的一些配置 服务注册类配置 服务实例类配置 实例名配置 端点配置 Eureka服务治理基础架构原 ...

  7. Spring Cloud微服务系列文,服务调用框架Feign

    之前博文的案例中,我们是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可以通过注解等方式来绑定参数,或者以声明的方式来指定请求返回类型是JSON.    这种 ...

  8. eureka 集群失败的原因_Eureka集群的那些坑

    今天遇到一个Eureka集群的一个坑. 问题现场类似是这样的:两台Eureka组成的服务注册中心集群,两台服务提供方server1.server2,两个服务调用方client1.client2. 正常 ...

  9. 二、Eureka服务注册与发现

    SpringCloud系列目录: 一.SpringCloud简介 二.Eureka服务注册与发现 三.Eureka注册与发现之Eureka Comsumer 四.Eureka.Server Provi ...

最新文章

  1. PHP的上传文件思路及其代码
  2. INFO:安装包文件共享(Shared Files)设置注意事项
  3. 【Java】接口(interface)VS抽象类
  4. 如何用c语言调用c++做成的动态链接库
  5. 源码pub:C#实现IPv6地址的二进制输出
  6. java wait() notify_Java的wait(), notify()和notifyAll()使用小结
  7. Cross-entropy 和 Binary cross-entropy
  8. Sun java认证考试真题答案及部分解析(一)
  9. 计算机辅助审计在外汇,外汇管理领域计算机辅助审计
  10. (KNN)K-近邻算法介绍和 Facebook签到位置预测案例应用
  11. 大数据基础概念(三)
  12. element-ui按需引入报错 Error: Cannot find module ‘babel-preset-es2015‘
  13. oracle控制文件的复用,ORACLE 10g ASM 控制文件多路复用
  14. 希尔排序的思路及实现解析
  15. 关于客户机服务器与微内核结构操作系统,第1章 操作系统概述1
  16. 阿里携“骑呗”入局共享单车,好戏即将开始
  17. 微软亚洲研究院推出“人立方”人物关系搜索
  18. 计算机word软件学后的总结,计算机office教学总结范文
  19. matlab中gui界面如何保存为图片,如何保存MATLAB GUI界面中的图片
  20. islide 安装 PPT崩溃问题

热门文章

  1. 微信到底做没做精准广告投放? | 技术头条
  2. 谁说程序员的老婆和代码不可兼得?!
  3. sp烘焙流程_烘焙工作流程图
  4. 字节跳动社招面试记录,java异常处理关键字
  5. Linux-Can't create socket: Too many open files
  6. g18 android 4.4,cm11出了最新的android4.4完美的附网址
  7. oracle数据库字段的值加一_天天面试--数据库乐观锁和悲观锁
  8. rbac权限管理5张表_thinkphp框架下基于rbac的后台程序
  9. mysql数据库分析结果与结论_mysql数据库show processlist结果分析
  10. linux3.8内核下载,linux 3.8内核usbmouse代码注释