补: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