springboot整合springcloud的eureka、配置中心、服务调用、Hystrix、Zuul网关

前言:springboot整合springcloud的eureka、配置中心、服务调用、Hystrix、Zuul网关
在这里插入图片描述

项目结构:
在这里插入图片描述

一、环境准备

1、创建maven父工程,并导入依赖

<properties>
     <project-build-sourceEncoding>UTF-8</project-build-sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     <java.version>1.8</java.version>
     <maven-compiler.source>1.8</maven-compiler.source>
     <maven-compiler.target>1.8</maven-compiler.target>
     <junit-version>4.12</junit-version>
 </properties>

 <dependencyManagement>
     <dependencies>
         <!--springcloud的依赖-->
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-dependencies</artifactId>
             <version>Greenwich.SR1</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>
         <!--springboot的依赖-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-dependencies</artifactId>
             <version>2.1.4.RELEASE</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>
         <!--数据库的依赖-->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>5.1.47</version>
         </dependency>
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid</artifactId>
             <version>1.1.22</version>
         </dependency>
         <!--springboot启动器-->
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
             <version>2.1.1</version>
         </dependency>
         <!--junit-->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>${junit-version}</version>
         </dependency>
         <dependency>
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-core</artifactId>
             <version>1.2.3</version>
         </dependency>
         <!--lombok-->
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <version>1.18.18</version>
         </dependency>
         <!--log4j日志-->
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
             <version>1.2.17</version>
         </dependency>
     </dependencies>
 </dependencyManagement>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

二、Eureka注册中心

1、Eureka单机模式

1.1、创建maven子工程(服务),并导入依赖

<!--导入父工程依赖-->
<parent>
    <artifactId>springcloud-001</artifactId>
    <groupId>com.springcloud</groupId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

 <!--导入项目依赖-->
<dependencies>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
        <version>1.4.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>
</dependencies>

1.2、创建application.yaml配置文件

server:
  port: 7001

#Eureka的配置
eureka:
  instance:
    hostname: springcloud-eureka  #Eureka服务端的实例名称(如果配置集群,此处不能写localhost或127.0.0.1)
  client:
    register-with-eureka: false # 表示是否想eureka注册中心注册自己
    fetch-registry: false  #结果为false表示自己为注册中心
    service-url:
      defaultZone: http://${
   eureka.instance.hostname}:${
   server.port}/eureka/

1.3、开启eureka服务注册功能

@SpringBootApplication
@EnableEurekaServer  //服务端的启动类,可以接受别人注册进来
public class SpringCloudEurekaApplication {
   

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

在这里插入图片描述

2、eureka集群模式

2.1、改造单机模式

修改application.yaml文件
注:集群模式下eureka.instance.hostname属性不能写localhost或127.0.0.1

server:
  port: 7001

#Eureka的配置
eureka:
  instance:
    hostname: springcloud-eureka  #Eureka服务端的实例名称(如果配置集群,此处不能写localhost或127.0.0.1)
  client:
    register-with-eureka: false # 表示是否想eureka注册中心注册自己
    fetch-registry: false  #结果为false表示自己为注册中心
    service-url:
      defaultZone: http://springcloud-eureka02:7002/eureka/,http://springcloud-eureka03:7003/eureka/   #监控页面

2.2、创建maven子工程(eureka2)

2.2.1、步骤参照eureka单机模式
2.2.2、修改application.yaml文件
server:
  port: 7002

#Eureka的配置
eureka:
  instance:
    hostname: springcloud-eureka02  #Eureka服务端的实例名称(如果配置集群,此处不能写localhost或127.0.0.1)
  client:
    register-with-eureka: false # 表示是否想eureka注册中心注册自己
    fetch-registry: false  #结果为false表示自己为注册中心
    service-url:
      defaultZone: http://springcloud-eureka:7001/eureka/,http://springcloud-eureka03:7003/eureka/   #监控页面

2.3、创建maven子工程(eureka3)

2.3.1、步骤参照eureka单机模式
2.3.2、修改application.yaml文件
server:
  port: 7003

#Eureka的配置
eureka:
  instance:
    hostname: springcloud-eureka03  #Eureka服务端的实例名称(如果配置集群,此处不能写localhost或127.0.0.1)
  client:
    register-with-eureka: false # 表示是否想eureka注册中心注册自己
    fetch-registry: false  #结果为false表示自己为注册中心
    service-url:
      defaultZone: http://springcloud-eureka02:7002/eureka/,http://springcloud-eureka:7001/eureka/   #监控页面

2.4、修改hosts配置文件

添加:

  • 127.0.0.1 springcloud-eureka
  • 127.0.0.1 springcloud-eureka02
  • 127.0.0.1 springcloud-eureka03
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCPIP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	1             localhost
127.0.0.1       activate.navicat.com
#添加如下配置
127.0.0.1  springcloud-eureka
127.0.0.1  springcloud-eureka02
127.0.0.1  springcloud-eureka03

2.5、分别启动eureka服务

eureka01服务
eureka02服务
eureka03服务

三、springcloud配置中心

1、在远程服务(github)创建配置文件

在这里插入图片描述

2、创建配置中心服务端

2.1、创建maven子工程,导入依赖

<!--导入父工程依赖-->
<parent>
   <artifactId>springcloud-001</artifactId>
   <groupId>com.springcloud</groupId>
   <version>1.0-SNAPSHOT</version>
   <relativePath>../pom.xml</relativePath>
</parent>

<!--导入项目依赖-->
<dependencies>
   <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-config-server</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
   </dependency>
</dependencies>

2.2、创建application.yaml文件

server:
  port: 3344
spring:
  application:
    name: springcloud-config-service
    #连接远程仓库
  cloud:
    config:
      server:
        git
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值