VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > .net教程 >
  • ASP.net教程之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的简单分布式应用已搭建完毕。

相关教程