zoukankan      html  css  js  c++  java
  • 小D课堂

    笔记

    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

  • 相关阅读:
    导出查询结果到excle
    导出所选行为excle
    spring security LDAP获取用户信息
    spring security防御会话伪造session攻击
    Linux安装Loadrunner generator
    Centos7 安装gitlab
    kafka 安装部署
    zookeeper 搭建
    Oracle GoldenGate对接 Oracle 11g和Kafka
    suse 11 sp4 设置yast 安装源
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11443506.html
Copyright © 2011-2022 走看看