快速搭建springcloud环境

前言

SpringCloud并不是一个第三方框架的名称, 而是一整套微服务框架的统称, 使用这套框架可以快速搭建出高可用的微服务环境, 因为功能众多,所以又被称SpringCloud全家桶, 由于篇幅较长所以文章采用了目录引导, 第二章是微服务的基础, 第三章是功能模块扩展, 如网关, 服务保护, 分布式配置中心, nginx, 下面就跟着我们的文章, 一起来看吧.

一.什么是微服务

就是把一整个后台项目拆分成多个模块, 每一个模块称作一个服务, 每个服务都可以独立运行, 这样做的好处是其中有一个服务挂掉后, 另外的服务不受影响, 这些服务使用接口相互通信, 减少了依赖和耦合.

二.快速开始

创建一个空的spring boot项目,做父工程,整个项目是由maven进行管理的, 依赖包就是我们开发时需要用到的第三方jar包, 也就是框架, 这里为什么什么也不选? 我说一下, 因为我们要做的是微服务, 所以框架结构为一个基座+多个子模块, 我们上面建立的就是基座, 你可以把它当成一个工作空间用途是管理子模块。

1.Eureka注册中心

首先要新建我们SpringCloud项目的核心eureka注册中心, 为什么说它是项目的核心呢, 我在简介中说过了, 微服务就是把一整个后台应用拆分成小的功能模块, 那么这些模块之间如何进行通信呢?

没错就是注册中心, 那么我们接下来就开始搭建一个注册中心吧!

首先在父工程中新建一个Module子项目, 也就是一个微服务模块.

在这里插入图片描述

到这里我们注册中心模块就建立好了, 之后我们来简单配置一下.

在启动类上加上@EnableEurekaServer注解

在这里插入图片描述

首先开启eureka服务

之后找到配置文件

配置一下application.yml, 如果你的是application.properties, 请修改后缀为yml, 这两个配置文件都可以配置工程, 相比之下yml更直观一些, 所以本教程使用yml进行配置.

之后我们进行配置

server:
  # 配置服务端口
  port: 8081
eureka:
  client:
    service-url:
      # 配置eureka服务器地址
      defaultZone: http://127.0.0.1:8081/eureka
    #是否需要将自己注册到注册中心(注册中心集群需要设置为true)
    register-with-eureka: false
    #是否需要搜索服务信息 因为自己是注册中心所以为false
    fetch-registry: false

注意缩进, 因为yml使用缩进来区分不同字段的.

然后我们来运行项目吧!

运行启动类

然后我们来访问一下注册中心吧.

http://localhost:8081

在这里插入图片描述

网页可以正常运行后 我们的注册中心就配置完毕了

2.创建微服务

光有注册中心是没有用的, 服务都没有, 根本写不了接口, 所以接下来我们就继续在父工程中创建两个服务.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同理配置service-b, 新建完成之后是这个样子

在这里插入图片描述

之后我们配置服务的入口文件,在启动类上加上注解@EnableEurekaClient

在这里插入图片描述

然后配置一下application.yml
首先是service-a

server:
  # 服务端口号
  port: 8082
spring:
  application:
    # 服务名称 - 服务之间使用名称进行通讯
    name: service-objcat-a
eureka:
  client:
    service-url:
      # 填写注册中心服务器地址
      defaultZone: http://localhost:8081/eureka
    # 是否需要将自己注册到注册中心
    register-with-eureka: true
    # 是否需要搜索服务信息
    fetch-registry: true
  instance:
    # 使用ip地址注册到注册中心
    prefer-ip-address: true
    # 注册中心列表中显示的状态参数
    instance-id: ${spring.cloud.client.ip-address}:${server.port}

之后是service-b

server:
  # 服务端口号
  port: 8083
spring:
  application:
    # 服务名称 - 服务之间使用名称进行通讯
    name: service-objcat-b
eureka:
  client:
    service-url:
      # 填写注册中心服务器地址
      defaultZone: http://localhost:8081/eureka
    # 是否需要将自己注册到注册中心
    register-with-eureka: true
    # 是否需要搜索服务信息
    fetch-registry: true
  instance:
    # 使用ip地址注册到注册中心
    prefer-ip-address: true
    # 注册中心列表中显示的状态参数
    instance-id: ${spring.cloud.client.ip-address}:${server.port}

之后我们来运行一下刚配置好服务吧运行service-a和service-b的启动类

在这里插入图片描述

@RestController
public class TestController {
    @RequestMapping("/hello")
    public String hello() {
        return "hello world";
    }
}

重启service-a服务

重启服务, 访问下面地址

http://localhost:8082/hello

在这里插入图片描述

浏览器上出现hello world说明成功了

有人会问了 到这里并没有使用到任何注册中心的功能啊?
不要着急 接下来我们就是用一用注册中心
我们现在有一个需求 使用服务b调用服务a的接口
这时我们就需要用到eurka(注册中心)feign客户端了
首先我们在service-b中创建interface

在这里插入图片描述

@FeignClient("SERVICE-OBJCAT-A")
public interface ServiceAFeignClient {
    @RequestMapping("/hello")
    public String hello();
}

重启service-b服务

应用名可以在eureka中找到
http://localhost:8081

在这里插入图片描述

之后我们来写接口 在服务service-b中添加个控制器

在这里插入图片描述

@RestController
public class TestController {

    @Autowired
    private ServerAFeignClient serverAFeignClient;

    @RequestMapping("/call")
    public String call() {
        String result = serverAFeignClient.hello();
        return "b to a 访问结果 ----- " + result;
    }
}

之后我们发现报错了 不要慌张设置一下即可

在这里插入图片描述

最后在应用入口加上注解@EnableFeignClients,就能实现服务之间的调用了.

在这里插入图片描述

重新运行服务b 在网站上访问试试吧

http://localhost:8083/call

在这里插入图片描述

到这里服务之间的相互访问也可以完成了 到这里springcloud最基本的环境搭建就完成了 快写几个微服务玩玩吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值