SpringBoot整合SpringCloud搭建分布式应用

什么是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的简单分布式应用已搭建完毕。

  

 

转载于:https://www.cnblogs.com/XiaFengyi/p/10388442.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值