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. iOS基础 - SceneDelegate

    前言 1 - 自从 Xcode11 发布以来,当你使用新 XCode 创建一个新的 iOS 项目时 SceneDelegate 会被默认创建 2 - 在 iOS 13 后 SceneDelegate ...

  2. JIT和AOT的区别

    http://net-informations.com/faq/qk/jit.htm Compilers are tools that convert human readable text into ...

  3. yestoday once more

    夏日的光为百叶窗所驯服,褪去了令人刺痛的热烈.yestoday once more~ 耳机里传来那熟悉的旋律,恍惚间仿佛回到了十五年前的那个午后,老式收音机里放着同样的歌曲,对面办公桌旁某个少年正惶恐 ...

  4. linux系统安装谷歌浏览器设置开机自动启动并打开指定页面

      要在Linux系统上安装Google Chrome浏览器,可以按照以下步骤: 下载Google Chrome浏览器的安装包,你可以从Google的官方网站或者第三方下载站点上获取. 解压缩安装包并 ...

  5. Vulnhub 靶场 BEELZEBUB: 1

    Vulnhub 靶场 BEELZEBUB: 1 前期准备 靶机地址:https://www.vulnhub.com/entry/beelzebub-1,742/ kali攻击机ip:192.168.1 ...

  6. Hyperledger fabric 续篇

    前面我们如果进行顺利的话,环境已经可以成功运行,并且前端页面也可以正常显示,为自己鼓掌吧!!! 接下来,其实也是我自己想做一下尝试,还记得前面的一条查询车辆情况的指令吗? peer chaincode ...

  7. 第6课第4节_Binder系统_驱动情景分析_服务注册过程_分析

    Service_manager.c 8074 2017/6/30 首先从应用程序分析(Android) binder_loop(bs, svcmgr_handler) { readbuf[0] = B ...

  8. 解决“chrome正受到自动测试软件的控制”信息栏显示问题

    在使用Selenium WebDriver启动谷歌浏览器Chrome时,在新启动的浏览器地址栏下方经常会显示一行提示信息:"chrome正受到自动测试软件的控制",英文的就是&qu ...

  9. 045_List view button

    http://www.interactiveties.com/b_execute_javascript_button.php https://developer.salesforce.com/foru ...

  10. JS篇(006)-怎样添加、移除、移动、复制、创建和查找节点?

    答案: 1)创建新节点 createDocumentFragment() //创建一个 DOM 片段 createElement() //创建一个具体的元素 createTextNode() //创建 ...