SpringCloud基础知识超超级详细_springclound基础详解,2024年最新一线互联网架构师设计思想解读开源框架

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

注册服务提供者

注册服务消费者

Feign

Zuul

个人总结

Eureka

Feign

Zuul


什么是微服务架构

简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或者耦合较高的业务进行构建,并且每个服务都维护者自身的数据存储、业务开发、自动化测试以及独立部署。由于有了轻量级的通信协作基础,所有这些微服务可以使用不同的语言来编写。


SpringCloud简介

SpringCloud是一个基于SpringBoot实现的微服务框架开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、分布式会话和集群状态管理等操作提供了一个简单的开发方式。

SpringCloud Config:配置管理工具,支持使用Git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端配置信息刷新等。

SpringCloud Netflix:核心组件,对多个NetflixOSS开源套件进行整合。

Eureka:服务治理组件,包含服务注册中心、服务注册和发现机制的实现。

Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。

Ribbon:负载均衡的服务调用组件。

Feign:基于Ribbon和Hystrix的声明式服务调用组件。

Zuul:网关组件,提供智能路由,访问过滤等功能。

SpringCloud Consul:服务发现和及配置管理工具。

SpringCloud Stream:通过Redis、Rabbit、或者Kakfa实现的消费微服务,可以通过简单的声明式模型来发送和接受消息。

等等~~~


Eureka

搭建注册中心

创建一个基础的SpringBoot工程,命名为eureka-server,并在pom文件中引入必要的依赖内容,代码如下:

<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.0.7.RELEASE</version>
     <relativePath/>
</parent>

<properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <projece.reporting.outputEncoding>UTF-8</projece.reporting.outputEncoding>
     <java.version>1.8</java.version>
     <spring-cloud.version>Finchley.SR2</spring-cloud.version>
</properties>

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<!--            <version>3.0.3</version>-->
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

在引导类上添加**@EnableEurekaServer注解启动一个服务注册中心**提供给其他应用进行对话

@SpringBootApplication
@EnableEurekaServer //启用Eureka服务
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class,args);
    }
}

修改默认配置,端口号 ,微服务名称,注册中心地址

server:
  port: 10086
spring:
  application:
    name: dynamic.eureka   #微服务的名称  注入到eureka

eureka:
  client:
    service-url:
      defaultZone: http://localhost:${server.port}/eureka


注册服务提供者

创建一个基础的SpringBoot工程,命名为eureka-provider,并在pom文件中引入必要的依赖内容,代码同上

在引导类上添加**@EnableDiscoveryClient注解,将此微服务添加到注册中心**

@SpringBootApplication
@EnableDiscoveryClient  //启动eureka客户端
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class,args);
    }
}

修改默认配置:端口号,微服务名称,注册给eureka

server:
  port: 8889

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql:///ssm
    username: root
    password: root
  application:
    name: service-provider  #微服务名称


eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka
    register-with-eureka: true #true注册给eureka



注册服务消费者

创建一个基础的SpringBoot工程,命名为eureka-consumer,并在pom文件中引入必要的依赖内容,代码同上

在引导类上添加**@EnableDiscoveryClient注解,将此微服务添加到注册中心**

@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker  //熔断
public class ConsumerApplication {

    public static void main(String[] args) {

        SpringApplication.run(ConsumerApplication.class,args);

    }
}

修改默认配置:端口号,微服务名称,注册给eureka

server:
  port: 8887

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql:///ssm
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: service-consumer


eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka

    register-with-eureka: true #true注册给eureka

测试:各一个项目都启动,

以上关于注册中心eureka就配置好了。


Feign

创建一个SpringBoot基础工程,取名feigen-counsumer。并在pom文件中引入必要的依赖内容

<!--    引入父工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <projece.reporting.outputEncoding>UTF-8</projece.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR2</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
<!--    eureka的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>2.1.6.RELEASE</version>
        </dependency>
<!--    feign的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>

    </dependencies>

在引导类上添加**@EnableFeignClients注解**开启SpringCloud Feignd的支持

//@SpringBootApplication
//@EnableDiscoveryClient
//@EnableCircuitBreaker  //熔断
@SpringCloudApplication //组合注解  熔断+负载+boot启动
@EnableFeignClients  //启用feign组件
public class ConsumerApplication {

    //远程服务间的调用
  /* 使用feigen解决
   @Bean
    @LoadBalanced //开启负载均衡组件
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }*/

    public static void main(String[] args) {

        SpringApplication.run(ConsumerApplication.class,args);

    }
}

定义HelloService接口,通过**@FeignClient注解指定服务名绑定服务**

@FeignClient("service-provider")
public interface HelloService {
    @RequestMapping("/hello")
    String Hello();
}

创建一个ConsumerController来实现对Feign客户端的调用,使用@Autowired直接注入上面的helloService实例

@RestController
public class ConsumerControler {
    @Autowired
    HelloService helloService;

    @RequestMapping(value = "/feign-consumer",method = RequestMethod.GET)
    public String helloConsumer(){
        return helloService.Hello();
    }
}

修改默认配置:端口号,微服务名称,注册给eureka

server:
  port: 9001

spring:
  application:
    name: feign-consumer

eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka

    register-with-eureka: true #true注册给eureka


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/f5223d2fa8b27e569e8f5f919bd4cd22.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

application:
    name: feign-consumer

eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka

    register-with-eureka: true #true注册给eureka


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-ZE51EaaS-1713326324529)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值