笔记

2、微服务调用方式之ribbon实战 订单调用商品服务
    简介:实战电商项目 订单服务 调用商品服务获取商品信息
        1、创建order_service项目
        2、开发伪下单接口
        3、使用ribbon. (类似httpClient,URLConnection)

启动类增加注解
              @Bean
              @LoadBalanced
              public RestTemplate restTemplate() {
                   return new RestTemplate();
              }
        4、根据名称进行调用商品,获取商品详情

开始

商品的服务的controller里面注入端口号。

就会获取到配置文件的这里的端口号

把一个对象里面的属性拷贝到另一个对象里面。然后把数据方便加上端口号



再启动一个8772的节点

启动的另外一个节点

注册中心默认是启动的

开发OrderService



初始化中




注册中心,这是一个client

最终选择了这三个依赖




order这个服务也需要往注册中心去注册,所以需要服务发现。pom.xml这里eureka-client已经引入了。

ribbon,封装了http请求,客户端的负载均衡

创建domain的包下面新建实体类ProductOrder.java

定义这几个属性,然后生成getter和setter

新建OrderController


新建Service层

service层和service的实现类



开发下单接口

这里完善后,还差一个商品的详情,就需要去调用商品的服务

可能会去用HttpClient或者是UrlConnection去调用。这样普通的http调用不能去调用集群和负载均衡的策略

使用ribbon

所以这里要用ribbon去调用。
启动类里面加注释

在启动类里面引入

注入restTemplate,然后调用方法

在Eureka里面有个product-servie

在商品的微服务里面配置了服务的名称就是product-service

订单的服务配置文件修改格式为yml

然后增加订单的配置文件的配置。端口改为8781。然后服务名称为order-service


controller里面进行调用

启动订单的服务,进行测试

调用订单的服务

打印出了商品的信息

再次刷新页面,请求数据。再次的端口请求的是8772。因为商品的服务开了两个端口

客户端随即选择了要调用的服务端。这是客户端的负载均衡

每次刷新端口都不一致

商品服务再开一个8773的节点

Eureka里面可以看到注册了三个Product的服务节点

多刷新几次,但是这里访问的还是8771和8772的 并没有访问到8773的节点

调用的时候是跟注册中心定时去拿的地址,需要等一会的一段。定时拿到了新的服务地址就可以了

注意的地方

启动类里面加上了restTemplte这里要加上负载均衡的注解。@LoadBalanced

小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务的更多相关文章

  1. 小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务

    笔记 5.微服务调用方式之feign 实战 订单调用商品服务     简介:改造电商项目 订单服务 调用商品服务获取商品信息         Feign: 伪RPC客户端(本质还是用http)    ...

  2. 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建

    笔记 6.Zuul微服务网关集群搭建     简介:微服务网关Zull集群搭建 1.nginx+lvs+keepalive      https://www.cnblogs.com/liuyisai/ ...

  3. 小D课堂 - 新版本微服务springcloud+Docker教程_汇总

    小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...

  4. 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介

    笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...

  5. 小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解

    笔记 第四章 服务消费者ribbon和feign实战和注册中心高可用 1.常用的服务间调用方式讲解     简介:讲解常用的服务间的调用方式 RPC:             远程过程调用,像调用本地 ...

  6. 小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下

    笔记 4.Feign结合Hystrix断路器开发实战<下>     简介:讲解SpringCloud整合断路器的使用,用户服务异常情况     1.feign结合Hystrix       ...

  7. 小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心

    笔记 第三章 SpringCloud核心组件注册中心 1.什么是微服务的注册中心     简介:讲解什么是注册中心,常用的注册中心有哪些 (画图)                  理解注册中心:服务 ...

  8. 小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计

    笔记 4.微服务下电商项目基础模块设计     简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习             小而精的方式学习微服务 1.用户服务       ...

  9. 小D课堂 - 新版本微服务springcloud+Docker教程_2_03常见的微服务框架

    笔记 3.常见的微服务框架     简介:讲解常用的微服务框架 consumer: 调用方         provider: 被调用方         一个接口一般都会充当两个角色(不是同时充当) ...

随机推荐

  1. Hadoop_12_Hadoop 中的RPC框架演示

    Hadoop中自己提供了一个RPC的框架.集群中各节点的通讯都使用了那个框架 1.服务端 1.1.业务接口:ClientNamenodeProtocol package cn.bigdata.hdfs ...

  2. 嵌入式Linux应用开发完全手册读书笔记——交叉编译工具选项说明

    交叉编译工具选项说明 arm-linux-gcc 一个c/c++文件要变成可执行文件需要4步:预处理 -> 编译 -> 汇编 -> 链接: 在使用arm-linux-gcc时的常用选 ...

  3. string::cbegin string::cend

    const_iterator cbegin() const noexcept; const_iterator cend() const noexcept;注:返回常量迭代器,不能修改 #include ...

  4. Spring入门篇——第2章 Spring IOC容器

    第2章 Spring IOC容器 介绍Spring IOC容器的基本概念和应用 2-1 IOC及Bean容器 自己的理解:什么是IOC?就是利用配置文件(外部容器)来创建对象. 在IOC容器中,所有对 ...

  5. solr 中文分词相关(转载)

    smartcn和ik的对比,来自http://www.cnblogs.com/hadoopdev/p/3465556.html 一.引言: 年的时候,就曾经有项目涉及到相关的应用(Lunce构建全文搜 ...

  6. 软件测试常用的linux命令

    不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个.这里我把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍. ◆ 安装和登录命令:logi ...

  7. 修改 SQL SERVER 2008 編輯前200筆 資料表問題? 转载自:http://www.dotblogs.com.tw/easy1201/archive/2008/12/04/6179.aspx

    小弟前幾天 下載安裝了 SQL SERVER 2008 感覺系統效能還不錯 但是要編輯 資料表卻出現 很苦惱 但經過一番波折 終於了解如何改善 先執行SQL Server Management Stu ...

  8. esxi克隆虚拟机

    1.->选中虚拟机->导出(需要关闭虚拟机电源) 此时会下载下两个文件: 2.新建虚拟机 ->从OVF或OVA文件部署虚拟机 然后创建虚拟机,选择第二项 然后填入新虚拟机名称,并把下 ...

  9. 基于蓝图的完整的Flask项目

    其一Flask_Script 安装: pip3 install flask_script flask_script作用: -改变flask的启动方式:python manage.py runserve ...

  10. AfxMessageBox与MessageBox用法与区别

    https://blog.csdn.net/holybin/article/details/28403109 MessageBox()是标准的Win32 API函数,可以直接使用: AfxMessag ...