Spring Cloud 第三天

补:restTemplate的介绍和使用
spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,我们只需要传入url及返回值类型即可。相较于之前常用的httpClient,RestTemplate是一种更优雅的调用RESTful服务的方式

在Spring boot中使用RestTemplate:

spring boot并不会自动装配RestTemplate类,因为通常用户都需要一个定制的RestTemplate,因此springboot自动装配了一个RestTemplateBuilder类方便用户定制创建自己的RestTemplate类。

自定义restTemplate

@Configuration
public class ApplicationContextConfig {


    @Bean
    public RestTemplate getRestTemplate(){

        return new RestTemplate();
    }}

使用restTemplate

@RestController
@Slf4j
public class OrderController {


    private static final String PAYMENY_URL="http://localhost:8001";


    @Resource
    private RestTemplate restTemplate;

    @PostMapping("/customer/payment/create")
    public CommonResult<Payment> create (Payment payment){
        return restTemplate.postForObject(PAYMENY_URL + "/payment/create", payment, CommonResult.class);
    }

    @GetMapping("/customer/payment/get/{id}")
    public CommonResult<Payment> getPayment(@PathVariable("id") Long id){

                                              //请求地址                         返回值类型
        return restTemplate.getForObject(PAYMENY_URL + "/payment/get/"+id,CommonResult.class);

    }

}

订单、支付两为服务进入Eureka集群

1、修改两个微服务的yml
在这里插入图片描述
在这里插入图片描述
2、测试

在这里插入图片描述

支付服务提供者8001集群环境搭建:

在这里插入图片描述
1、新建8002服务参考8001(pom.xml文件几乎一致)

2、写YML(直接复制8001的yml 但是要记得该端口号)

在这里插入图片描述

3、主启动类、业务类(直接复制8001的)

在这里插入图片描述

4、修改8001、8002的Controller:

在这里插入图片描述
5、修改80的Controller:(修改之前写死的url地址为微服务名称):
在这里插入图片描述

6、添加默认的负载均衡
在这里插入图片描述

@LoadBalanced
在这里插入图片描述

7、测试

在这里插入图片描述
在这里插入图片描述

actuator微服务信息完善

在这里插入图片描述
1、修改8001\8002Yml
在这里插入图片描述
在这里插入图片描述服务发现:
就是查处注册在注册中心微服务的信息

在这里插入图片描述
1、修改8001controller:
在这里插入图片描述
2、修改主启动类:
在这里插入图片描述
3、自测:

在这里插入图片描述
在这里插入图片描述

Eureka自我保护:

概述:
在这里插入图片描述

在这里插入图片描述

SpringCloud 整合zookeeper

在这里插入图片描述
1、注册Zookeeper

在这里插入图片描述
2、建立子模块服务提供者

在这里插入图片描述

3、修改pom.xml
其他的跟8001一样、就是替换掉Eureka的坐标
在这里插入图片描述
4、YML
在这里插入图片描述

5、主启动类
在这里插入图片描述
6、Controller

在这里插入图片描述
UUID(Universally Unique Identifier):通用唯一识别码,是一种软件建构的标准。
UUID 目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。
UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字。

7、测试

启动zookeeper服务器
在这里插入图片描述
IDEA微服务启动注册到zookeeper:(可能报错、这是因为 IDEA中导入的zookeeper版本与虚拟机中的不同)
在这里插入图片描述解决办法更换IDEA上的zookeeper的版本 保持与服务器相同

继续测试
在这里插入图片描述

思考:微服务注册到Zookeeper后是临时节点还是持久节点?

答案:临时节点(当微服务停止工作时,zookeeper会立即删除服务注册中心此微服务的节点)

服务消费者进入zookeeper
在这里插入图片描述
1、建子项目

2、改pom.xml更8004几乎相同

3、改yml

在这里插入图片描述
4、主启动

在这里插入图片描述
5、业务类

先自定义Resttemplet(Springboot 要使用它,我们必须自己注入)
在这里插入图片描述

在这里插入图片描述
6、测试

在这里插入图片描述

Consul

在这里插入图片描述
1、Consul的下载与安装

在这里插入图片描述
建立支付8006子模块 进入Consul
在这里插入图片描述
1.改pom.xml
在这里插入图片描述
2、yml

在这里插入图片描述
3、主启动类

在这里插入图片描述
4、业务编写

在这里插入图片描述
5、测试
在这里插入图片描述

建立订单80子模块 进入Consul

1、改pom.xml
在这里插入图片描述
2、yml
在这里插入图片描述
3、主启动
在这里插入图片描述
4、业务编写
在这里插入图片描述
在这里插入图片描述

5、测试

在这里插入图片描述

三个服务注册中心的异同点(eureka、zookeeper、consul)

在这里插入图片描述

CAP
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值