一、搭建eureka服务端


idea智能创建eureka客户端和服务端
我们创建的是单机版的服务端配置文件如下

server:port: 8761
eureka:server:enable-self-preservation: falseinstance:hostname: localhostclient:#声明自己是服务端registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

在springboot的启动类上面加上@EnableEurekaServer注解

启动服务,在浏览器输入http://localhost:8761/,即可看见注册中心的页面

二、搭建eureka客户端

新建一个eureka客户端的项目,并且在服务端注册,完成之后,即可在注册中心的页面看见多了一个服务

配置文件

server:port: 8772#指定注册中心地址
eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/

#服务的名称
spring:
application:
name: product-servic
表名向8761这个端口的服务注册
在springboot的启动类上面加上@EnableEurekaClientr注解,表名是客户端
然后和springmvc的玩法一样,写三层架构

接口

public interface ProductService {List<Product> listProduct();Product findById(long id);}

实现类

public class ProductServiceImpl implements ProductService {private static final Map<Long, Product> daoMap = new HashMap<Long, Product>();static {Product p1 = new Product(1, "iphonex", 9999);Product p2 = new Product(2, "xiaomi", 7777);daoMap.put(p1.getId(),p1);daoMap.put(p2.getId(),p2);}@Overridepublic List<Product> listProduct() {Collection<Product> collection = daoMap.values();List<Product> list = new ArrayList<>(collection);return list;}@Overridepublic Product findById(long id) {Product product = daoMap.get(id);return product;}
}

controller,这里注意/api/product/find,后面的feign调用会用到

@RestController
@RequestMapping("/api/product/")
public class ProductController {@Autowiredprivate ProductService productService;@RequestMapping("list")public Object list(){return productService.listProduct();}@RequestMapping("find")public Object findById(@RequestParam("id") int id){return productService.findById(id);}}

浏览器输入
http://localhost:8772/api/product/find?id=1
然后就可以在之前注册中心页面看到多了一个服务

三、通过feign实现对eureka客户端的调用


同样idea智能创建feign客户端项目
在springboot启动类加上
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients
注解
配置文件

eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
server:port: 8765
spring:application:name: service-feign

同样表示往注册中心注册该服务

@FeignClient(value = "product-servic")
public interface SchedualServiceHi {@RequestMapping(value = "/api/product/find",method = RequestMethod.GET)String sayHiFromClientOne(@RequestParam(value = "id") long id);
}

这里的product-servic和前面erueka客户端的服务名一致
/api/product/find
@RequestParam(value = “id”) long id
这个路径和参数也要和前面erueka客户端的一致

这个服务的端口是8765
浏览器输入
http://localhost:8765/api/product/find?id=2
我们可以看到内容和
http://localhost:8772/api/product/find?id=2
这个页面的内容是一样的
说明feign成功调用了erueka客户端的服务

再看看注册中心的页面发现也多了一个服务

四、总结、收

一次简单的微服务调用就这样完成了,真实的项目肯定还要做一些权限的配置。
自己按照步骤操作的时候肯定会遇到各种配置问题,利用搜索引擎解决就好了。
我贴两个自己遇到的坑
当时项目无法启动加了这个些配置就好了

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.7</source><target>1.7</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><!--跳过项目运行测试用例--><skipTests>true</skipTests></configuration></plugin>

feign项目缺少这两个配置,导致我卡了半天

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

个人也是第一次写springcloud的demo,第一次写博客

要是觉得有帮助,欢迎给个赞鼓励鼓励呗~

简单上手springcloud,eureka加fengin实现服务调用相关推荐

  1. 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)

    转:https://blog.csdn.net/forezp/article/details/69808079 最新版本: 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign ...

  2. SpringCloud实战5-Feign声明式服务调用

    SpringCloud实战5-Feign声明式服务调用 在前面的文章中可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还 ...

  3. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81040925 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...

  4. SpringCloud[04]Ribbon负载均衡服务调用

    文章目录 Ribbon负载均衡服务调用 1. 概述 1. Ribbon是什么 2. Ribbon能做什么 2. Ribbon负载均衡演示 1. 架构说明 2. Ribbon的POM依赖 3. Rest ...

  5. 最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    一.spring cloud简介 鉴于<史上最简单的Spring Cloud教程>很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Boot版本2.0.3.RELEAS ...

  6. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)(转)

    http://blog.csdn.net/forezp/article/details/70148833 版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http:// ...

  7. 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81040965 本文出自方志朋的博客 上一篇文章,讲述了如何通过RestTemplate+R ...

  8. SpringCloud OpenFeign 远程HTTP服务调用用法与原理

    在 openFeign 未出现前,Spring 提供了 RestTemplate 作为远程服务调用的客户端,提供了多种便捷访问远程 Http 服务的方法,能够大大提高客户端的编写效率.由于文章内容会使 ...

  9. SpringCloud(3)---最简单的 SpringCloud 教程

    史上最简单的 SpringCloud 教程 案例全部采用Spring Boot 1.5.x ,Spring Cloud版本为Dalston.RELEASE 码农下载:https://git.oschi ...

最新文章

  1. 第二十一课.粒子滤波器
  2. Recurrent Neural Networks Tutorial, Part 1 – Introduction to RNNs
  3. SparkSQL 将统计结果保存到Mysql
  4. org.apache.hadoop.hbase.ClockOutOfSyncException
  5. C/S、B/S的区别
  6. iPhone 12 Pro Max机模曝光:有乔布斯内味儿了
  7. 输入法 java_使用 Utf7ime 输入法实现中文输入 Windows+Java 平台(完整步骤版)
  8. oracle insert 触发器无效_分享一个超实用的Zabbix监控Oracle用户无效对象手册
  9. sql server作业_SQL Server作业性能–报告
  10. java thread类_Java多线程原理及Thread类详解
  11. java线程池一创建就立马有线程了么_Java 线程池二之Executors创建的五种线程池及使用注意...
  12. NSIS 安装打包安装程序
  13. 怎样看python源代码-如何查看python源代码
  14. 嵌入式软件设计层级划分概念
  15. Jmeter HTTP Proxy Server 代理录制 IE无法录制到请求的问题解决
  16. VUE项目引入公共样式的styl文件
  17. Java类的声明详解
  18. 大学计算机基础与计算思维习题,大学计算机基础与计算思维客观题及答案.doc...
  19. eclipse常用快捷方式
  20. 11月20日 如何在场景开启Debug,自定义AI任务,EQS,创建自己的环境任务,使用Pawn环境检测来检测周围的环境,让AI动作更顺滑(动画混合

热门文章

  1. 基于Element,快速开发Vue项目
  2. 聚二甲基硅氧烷消泡剂选好了,但他们的效果是一样?
  3. 国画技法视频教学网址指南
  4. 这几个好用的去图片水印免费软件,你们知道吗?
  5. 什么是进制中的低位、高位
  6. 可视化例子(11)——ECharts line3D制作三维折线图
  7. PPT排版套路,这些你都知道吗
  8. 王祖贤素颜现身疑整形 明星整容前后对比照惨不忍睹
  9. wf 《计算机专业英语》,IE(Industrial Engineer)专业英语
  10. 易模3D建模教程| 20min教会你人像3D建模