首页 > 编程语言 > 详细

SpringBoot整合SpringCloud搭建分布式应用

时间:2019-02-16 17:46:12      阅读:169      评论:0      收藏:0      [点我收藏+]

什么是SpringCloud?

  SpringCloud是一个分布式的整体解决方案。SpringCloud为开发者提供了在分布式系统中快速构建的工具,使用SpringCloud可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

SpringCloud分布式开发五大常用组件

  服务发现——Netflix Eureka

  客户端负载均衡——Netflix Ribbon

  断路器——NetFlix Hystrix

  服务网关——Netflix Zuul

  分布式配置——Spring Cloud Config

创建一个分布式应用

  1)New Project 选择 Empty Project

  2)创建注册中心应用

    2.1 New Model→Spring Initializr后面选择导入Cloud Discovery的Eureka Server依赖。

    2.2 在启动类上加入@EnableEurekaServer注解。

    2.3 创建application.yml,内容如下

server:
  port: 8761
eureka:
  instance:
    hostname: eureka-server # eureka实例的主机名
  client:
    register-with-eureka: false #不将自己注册到eureka上
    fetch-registry: false #不从eureka上来获取服务的注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/

  3)创建服务提供者工程

    3.1 New Model→Spring Initializr后面选择导入Cloud Discovery的Eureka Discovery依赖。

    3.2 创建一个Service

package com.example.providerticket.Service;

import org.springframework.stereotype.Service;

@Service
public class TickerService {

    public String getTicker(){
        return "《厉害了,我的国》";
    }

}

    3.3 创建一个Controller

@RestController
public class TickerController {

    @Autowired
    TickerService tickerService;

    @GetMapping("/ticket")
    public String getTicker(){
        return tickerService.getTicker();
    }

}

    3.4 创建配置application.yml

server:
  port: 8002
spring:
  application:
    name: provider-ticket
eureka:
  instance:
    prefer-ip-address: true #注册服务的时候使用服务ip地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

  4)创建服务消费者工程

    4.1 New Model→Spring Initializr后面选择导入Cloud Discovery的Eureka Discovery依赖。

    4.2 配置启动类

@EnableDiscoveryClient //开启发现服务功能
@SpringBootApplication
public class ConsumerUserApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerUserApplication.class, args);
    }

    @LoadBalanced //启用负载均衡机制
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

}

    4.3 配置application.yml

spring:
  application:
    name: consumer-user
server:
  port: 8200
eureka:
  instance:
    prefer-ip-address: true #注册服务的时候使用服务ip地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

    4.4 创建Controller并测试

@RestController
public class UserController {

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("/buy")
    public String byTicket(String name){
        String forObject = restTemplate.getForObject("http://PROVIDER-TICKET/ticket", String.class);
        return name+"购买了"+forObject;
    }

}

  至此,一个SpringBoot整合SpringCloud的简单分布式应用已搭建完毕。

  

 

SpringBoot整合SpringCloud搭建分布式应用

原文:https://www.cnblogs.com/XiaFengyi/p/10388442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!