Java之 Spring Cloud 微服务搭建Ribbon(第一个阶段)【三】【SpringBoot项目实现商品服务器端是调用】(1)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
}

}

2)修改OrderController

实现基于Ribbon的形式调用远程的微服务

1、使用@LoadBalanced声明RestTemplate

2、使用服务名称替换IP地址

在这里插入图片描述

package cn.itbluebox.order.controller;

import cn.itbluebox.order.entity.Product;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.cloud.client.ServiceInstance;

import org.springframework.cloud.client.discovery.DiscoveryClient;

import org.springframework.web.bind.annotation.*;

import org.springframework.web.client.RestTemplate;

import java.util.List;

@RestController

@RequestMapping(“/order”)

public class OrderController {

//注入RestTemplate对象

@Autowired

private RestTemplate restTemplate;

/*

注入DiscoveryClient:

SpringCloud 提供的获取原数组的工具类

调用方法获取服务的元数据信息

*/

@Autowired

private DiscoveryClient discoveryClient;

/*

参数:商品ID

通过订单系统,调用商品服务

1、需要配置商品对象

2、需要调用商品服务

3、entity.Product

使用java 当中的urlconnection,httpclient,okhttp

*/

/*

实现基于Ribbon的形式调用远程的微服务

1、使用@LoadBalanced声明RestTemplate

2、使用服务名称替换IP地址

*/

@RequestMapping(value = “/buy/{id}”, method = RequestMethod.GET)

public Product findById(@PathVariable Long id) {

//如何调用商品服务?

return restTemplate.getForObject(“http://service-product/product/”+id,Product.class);

}

@RequestMapping(method = RequestMethod.POST)

public String save(@RequestBody Product product) {

restTemplate.postForObject(“http://service-product/product/”,product,Product.class);

return “保存成功”;

}

@RequestMapping(method = RequestMethod.PUT)

public String update(@RequestBody Product product) {

restTemplate.put(“http://service-product/product/”,product);

return “更新成功”;

}

@RequestMapping(value = “/{id}”, method = RequestMethod.DELETE)

public String delete(@PathVariable Long id) {

restTemplate.delete(“http://service-product/product/”+id);

return “删除成功”;

}

}

(3)运行测试

在这里插入图片描述

访问:http://localhost:9002/order/buy/1

在这里插入图片描述

七、服务调用Ribbon高级

=========================================================================

1、负载均衡概述


(1)什么是负载均衡

在搭建网站时,如果单节点的 web服务性能和可靠性都无法达到要求;

或者是在使用外网服务时,经常担心被人攻破,一不小心就会有打开外网端口的情况,通常这个时候加入负载均衡就能有效解决服务问题。

负载均衡是一种基础的网络服务,其原理是通过运行在前面的负载均衡服务,按照指定的负载均衡算法,将流量分配到后端服务集群上,从而为系统提供并行扩展的能力。

负载均衡的应用场景包括流量包、转发规则以及后端服务,由于该服务有内外网个例、健康检查等功能,能够有效提供系统的安全性和可用性。

Ribbon负载均衡

(2)客户端负载均衡与服务端负载均衡

服务端负载均衡

先发送请求到负载均衡服务器或者软件,然后通过负载均衡算法,在多个服务器之间选择一个进行访问;

即在服务器端再进行负载均

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值