Spring Cloud负载均衡通常使用Ribbon和Eureka实现,以下是搭建步骤:
1. 添加依赖
在pom.xml
中添加以下依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>springcloudstarternetflixeurekaclient</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>springcloudstarternetflixribbon</artifactId> </dependency>
2. 配置Eureka Server
创建一个application.yml
文件,并添加以下配置:
server: port: 8761 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
3. 创建服务提供者
创建一个名为provider
的项目,并在application.yml
中添加以下配置:
spring: application: name: provider eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
创建一个Controller
类,如下所示:
@RestController public class ProviderController { @Value("${server.port}") private String port; @GetMapping("/hi") public String home(@RequestParam String name) { return "Hi " + name + ", I am from port:" + port; } }
4. 创建服务消费者
创建一个名为consumer
的项目,并在application.yml
中添加以下配置:
spring: application: name: consumer eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
创建一个Service
类,如下所示:
@Service public class HiService { @Autowired private RestTemplate restTemplate; public String sayHi(String name) { return restTemplate.getForObject("http://provider/hi?name=" + name, String.class); } }
创建一个Controller
类,如下所示:
@RestController public class ConsumerController { @Autowired private HiService hiService; @GetMapping("/hi") public String home(@RequestParam String name) { return hiService.sayHi(name); } }
5. 启动项目
首先启动Eureka Server
,然后启动provider
和consumer
,在浏览器中访问http://localhost:8082/hi?name=test
,可以看到从provider
返回的响应。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/666104.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复