温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

springCloud的使用方法

发布时间:2021-06-23 10:33:37 来源:亿速云 阅读:119 作者:chen 栏目:大数据

这篇文章主要介绍“springCloud的使用方法”,在日常操作中,相信很多人在springCloud的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springCloud的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

springCloud:微服务的实现方式。

SpringCloud从技术架构上降低了对大型系统构建的要求,使我们以非常低的成本(技术或者硬件)搭建一套高效、分布式、容错的平台,但SpringCloud也不是没有缺点,小型独立的项目不适合使用。

SpringCloud是一系列框架的有序集合。它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册,配置中心,消息总线,负载均衡,熔断器,数据监控等,都可以用SpringBoot都开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟,经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽了复杂的配置和实现原理,最终给开发者留出了一套简单易懂,易部署和易维护的分布式系统开发工具包。

微服务是考验独立部署,水平扩展,独立访问的服务单员。

组件:

Eureka:注册中心

Zuul:服务网关

Ribbon:负载均衡

Feign:服务调用

Hystrix:熔断器

入门代码

前提:父工程为springboot,并且进行了jar包的版本管理

Eureka:注册中心,实现服务的注册和发现功能

1、导入坐标

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.2</version>
    </dependency>
</dependencies>

2、创建启动类

@SpringBootApplication
@EnableEurekaServer
public class EurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer.class);
    }
}

3、添加配置文件

server:
  port: 8084

spring:
  application:
    name: eureka-server

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8084/eureka

Ribbon:负载均衡

Hystrix:熔断器

Feign:服务调用

Zuul:服务网关

示例代码:

1、导入坐标

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
</dependencies>

2、编写启动类

@EnableCircuitBreaker
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients


/*
@SpringCloudApplication
*/
public class ConsumerApplication {

    @Bean
    @LoadBalanced

    public RestTemplate restTemplate (){
        return  new RestTemplate();
    }

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

3、实现代码

@RestController
@RequestMapping("consumer")
public class ConsumerController {
    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private LoadBalancerClient client;

    @GetMapping("{id}")
    @HystrixCommand(fallbackMethod = "queryByIdFallback")
    public Account queryById(@PathVariable ("id") Integer id){

        //List<ServiceInstance> instances = discoveryClient.getInstances("user_service");
        //ServiceInstance instanceInfo = instances.get(0);

        ServiceInstance instance = client.choose("user_service");

        String url = "http://"+instance.getHost()+":"+instance.getPort()+"/account/"+id;
        System.out.println(url);
        Account account = restTemplate.getForObject(url,Account.class);
        return account;
    }

    public Account queryByIdFallback(Integer id ){
        return null;
    }
}

到此,关于“springCloud的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI