springcloud之服务调用
springcloud简介
一、优势
-
可以使用Spring家族中的其它东西
-
完全支持SpringBoot的开发,用很少的配置就可以完成微服务架构的搭建
二、内容简介
Spring最擅长的就是集成、把世界上最好的框架拿过来,集成到自己的项目中,SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理、服务发现、智能路由、负载均衡、熔断器、控制总线、集群状态等功能;协调分布式环境中各个系统,为各类服务提供模板性配置,其主要涉及的组件包括:
Eureka : 注册中心
Zuul、Gateway : 服务网关
Ribbon : 负载均衡
Feign : 服务调用
Hystrix或Resilience4j : 熔断器
三、模拟客户端和服务端之间的调用
客户端
一、创建springBoot的工程,myhttp
二、引入web启动器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.2.RELEASE</version> </dependency>
三、在启动类HttpdemoApplication中注册RestTemplate对象
@SpringBootApplication public class MyhttpApplication { public static void main(String[] args) { SpringApplication.run(MyhttpApplication.class, args); } @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } }
服务端
二、使用springinitialer创建springBoot工程httpdemo
2.1 pom.xml中引入web启动器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.2.RELEASE</version> </dependency>
2.2 写一个controller层的控制器
@RestController @CrossOrigin public class HelloController { @RequestMapping("/sayHello") public String sayHello() { return "hello"; } }
客户端向服务端发送请求
在测试类中,RestTemplate对象发起请求
@SpringBootTest class MyhttpApplicationTests { @Autowired private RestTemplate restTemplate; @Test void contextLoads() { String forObject = restTemplate.getForObject("http://localhost:8080/sayHello", String.class); System.out.println(forObject); } }
先运行服务端再运行客户端即可得到输出结果,hello。

浙公网安备 33010602011771号