git:https://github.com/bmdcheng/product_server

git:https://github.com/bmdcheng/order_server

1.需要创建两个项目注册到eureka,然后来进行调用展示效果

2.首先创建product_server

3.选择相应的依赖

4.编写一个controller,用于提供服务

package com.example.product_server_test.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; @RestController
@RequestMapping("/api/product")
public class ProductController { @RequestMapping("findAll")
public Object findAll(){
return getData();
} /**
* 模拟数据
* @return
*/
public List<Map<String,Object>> getData(){
List<Map<String,Object>> list = new ArrayList<>(); for (int i =0;10<i;i++){
Map<String,Object> map = new HashMap<String,Object>();
map.put("id", String.valueOf(i));
map.put("Name", "商品"+i);
map.put("price", i*100);
map.put("weight", i*200);
list.add(map);
}
return list;
} }

4.修改product_server的的配置文件application.yml

server:
port: 8771
#指定注册中心
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
#服务的名称
spring:
application:
name: product-service-test

5.启动应用,然后到eureka中查看注册的produc_server,http://localhost:8761/

6.再创建一个order_server,用ribbon调用product_server

7.勾选对应的依赖,小知识点,当spring boot版本过高时,就用不了ribbon了,所以调低一点springboot版本就可以选择ribbon依赖了

8.修改order_server中的启动类增加如下代码


@Bean
//@Bean 将该对象交由spring ioc管理
@LoadBalanced
//@增加负载均衡策略
public RestTemplate restTemplate(){
return new RestTemplate();
}
 

9.修改application.yml配置文件

server:
port: 8781
#指定注册中心
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
#服务的名称
spring:
application:
name: order-service

10.写一个controller

package com.example.order_server_test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate; import java.util.List; @RestController
@RequestMapping("/api/order")
public class controller { @Autowired
private RestTemplate restTemplate; @RequestMapping("/findAllProduct")
public Object findAllProduct(){
List list = restTemplate.getForObject("http://product-service/api/product/findAll", List.class); return list;
}
}

11.然后在页面使用连接访问

http://localhost:8781/api/order/findAllProduct

12.看到结果了,完事。

13.总结一下流程

  创建服务提供方,引入web,eureka-client,修改配置文件,设置服务的端口,服务的名称,注册中心的地址。

  创建服务消费方,引入web,eureka-client,ribbon依赖,修改配置文件,设置服务的端口,服务的名称,注册中心的地址,使用@LoadBalanced注解,然后使用restTemplate调连接,拿返回值

  

使用idea从零编写SpringCloud项目-Ribbo的更多相关文章

  1. 从零构建Java项目(Maven+SpringBoot+Git) #02 奥斯丁项目

    前两天我说要写个项目来持续迭代,有好多小伙伴都表示支持和鼓励,项目的第一篇这不就来了么~我给项目取了个名字,英文名叫做:austin,中文名叫做:奥斯丁 名字倒没有什么特别的含义,我单纯觉得这个名字好 ...

  2. 从零搭建一个SpringCloud项目之Feign搭建

    从零搭建一个SpringCloud项目之Feign搭建 工程简述 目的:实现trade服务通过feign调用user服务的功能.因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要 ...

  3. CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL

    CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL +BIT祝威+悄悄在此留下版了个权的信息说: 开始 本文用step by step的方式,讲述如何使 ...

  4. docker初体验:Docker部署SpringCloud项目eureka-server

    Docker部署SpringCloud项目eureka-server 1 创建eureka-server工程 创建父工程cloud-demo,其pom.xml如下: <?xml version= ...

  5. 在Android上编写模块化项目(翻译)

    来源博客:Wang Jie's Blog 本文链接:http://blog.wangjiegulu.com/2018/02/13/writing_a_modular_project_on_androi ...

  6. idea创建springcloud项目图文教程(EurekaServer注册中心)

    http://blog.csdn.net/hcmony/article/details/77854999 idea创建springcloud项目图文教程(EurekaServer注册中心)(六) 1, ...

  7. SpringCloud项目,接口调用返回http 500 - Internal Server Error的错误

    今天上班的时候,自己正在参与的Spring Cloud项目出现了问题,原本上周五还正常的项目突然所有接口调用都是返回http 500的错误. 项目的状态是在Eureka上可以看到对应微服务是在线状态, ...

  8. 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目

    在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的spr ...

  9. Nacos(四):SpringCloud项目中接入Nacos作为配置中心

    前言 通过前两篇文章: Nacos(二):Nacos与OpenFeign的对接使用 Nacos(三):SpringCloud项目中接入Nacos作为注册中心 相信大家已经对Nacos作为注册中心的基本 ...

  10. springcloud项目配置拓展从本地config目录加载

    本文受阿里开源的Nacos启发,应用启动后从Nacos服务加载配置到应用中,想着本地开发的时候加载配置能否从本地存储中加载,这样也能加快开发效率 首先我们来看下SpringCloud项目应用Nacos ...

随机推荐

  1. 疾速瓜牛 Linux三剑客 之 sed学习与应用

    sed, 是stream editor的缩写,顾名思义,就是个非交互式行编辑器,有以下特点: 它能执行与编辑器 vi 和 ex 相同的编辑任务 sed 编辑器没有提供交互式使用方式,使用者只能在命令行 ...

  2. 【OBS Studio】使用 VLC 视频源播放视频报错:Unhandled exception: c0000005

    使用 OBS Studio 和 VLC media player 可以实现视频播放列表的推流,参考『OBS如何添加播放列表?』. 但是使用过程中发现使用 VLC 视频源播放视频时,一个视频播放完切换下 ...

  3. 修改文件时mmap如何处理

    拷贝二进制(elf)文件 在拷贝二进制文件的时候,如果文件是一个可执行文件,并且有一个进程在运行这个可执行文件,那么拷贝的时候会出现"文本忙"(ETXTBSY)的错误提示,并且拷贝 ...

  4. 解决-装了WPS后Windows无法预览word、Excel、PPT等的问题

    https://www.bilibili.com/read/cv10469054/ https://www.cnblogs.com/qq3285862072/p/15097970.html Windo ...

  5. unity 变体 随手记

    1 #pragma multi_compile AAA BBB#pragma multi_compile CCC DDDAAA CCCAAA DDDBBB CCCBBB DDD------------ ...

  6. HDLbits—— 3-input look-up-table

    // a 3-input look-up-table // In this question, you will design a circuit for an 8x1 memory, // wher ...

  7. background-repeat属性(背景平铺)

    background-repeat属性(背景平铺) 默认情况下,如果一幅背景图像不足以占满整个容器时,就会在水平方向和垂直方向重复,以填满整个容器.然而,有时候却希望背景图像只出现一次,或只在某个方向 ...

  8. 2022-3-18内部群每日三题-清辉PMP

    1.在评估项目活动现状的会议中,团队发现存在一些影响可交付成果的风险.项目经理应该怎么做? A.跟踪已发现的风险,识别和分析新风险,并评估整个项目的风险过程有效性 B.记录风险管理信息用于经验教训 C ...

  9. zk api连接超时问题 org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for

    遇到 org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss fo ...

  10. Docker学习——Kubernetes(八)

    在线阅读:GitBook 下载:pdf Kubernetes 是 Google 团队发起并维护的基于 Docker 的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心. 建于 Doc ...