springboot+springcloud微服务入门

MicroService实现技术:

  用springBoot来创建单个服务,用SpringCloud来管理这些微服务。

  ##SpringCloud的五大神兽

  #1.注册/服务发现——Netflix Eureka
    管理服务器地址和ip的

  #2.客服端负载均衡——Netflix Ribbon\Feign
    服务请求的分配

  #3.断路器——Netflix Hystrix
    对有故障的服务进行处理

  #4.服务网关——Netflix Zuul
    微服务的统一入口。

  #5.分布式配置——Spring Cloud Config
    对微服务的配置文件做同一管理

SpringCloud入门步奏

  1.注册中心
    用于管理微服务的地址
    1.1当微服务可以解决注册的注册表(IP、端口、服务名称)

    1.2从每个微服务注册微服务地址清单

    1.3使用心跳机制微服务合同:每N秒发送一个请求到注册表,告诉注册表,

      我还活着,如果微服务挂,有心跳合同失败,

      注册表微服务地址列表,其他服务将更新地址列表

  2.用户管理微服务
  3.订单管理微服务

1.注册中心配置

  1.1先创建个普通的maven项目父级模块,

    在pom.xml里配置公用的jar包管理

    

<properties>
        <!--编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <!--
   1.管理SpringBoot的jar包
   -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

    <!--
    2.管理spring-cloud的jar包
    -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!--
        测试
    -->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

1.2.创建注册中心 --项目名:eureka-server-1000

 在父级模块中创建个spring-boot项目,也是maven项目,

  但是要选中quickstart

  

  1.3在eureka-server-1000模块中的pom.xml添加依赖

  

<parent>
        <artifactId>spring-cloud-parent</artifactId>
        <groupId>spring-cloud-parent</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-server-1000</artifactId>

    <name>eureka-server-1000</name>

    <dependencies>
        <!--
            注册/服务发现的依赖
            有了它,才能获取到所有微服务的ip,端口,服务名
            有了它,其他的微服务才能获取到所有微服务的ip,端口,服务名清单
        -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <!--
            springboot-web的环境依赖
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

  1.4再建个resources配置文件夹,

  在配置文件夹中建个application.yml文件

  在yml文件中添加

  

server:
  port: 1000 #端口号
eureka:
  instance:
    hostname: localhost #主机
  client:
    registerWithEureka: false #禁止注册中心向自己注册
    fetchRegistry: false #禁止注册中心拉取注册地址清单
    serviceUrl: #微服务向注册中心注册的地址
      defaultZone: http://localhost:1000/eureka/

  1.5在java中建个配置类添加

/**
 * @EnableEurekaServer
 * 启动注册中心,默认关闭
 */
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

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

}

  启动main方法可以看见页面

  在网页上输入http://localhost:1000/显示如下页面说明配置成功

2..用户管理微服务

  模块名:order-server-2000

  和创建注册模块一样但配置不一样

  2.1在pom.xml中添加依赖

  

<parent>
        <artifactId>spring-cloud-parent</artifactId>
        <groupId>spring-cloud-parent</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>order-server-2000</artifactId>

    <name>order-server-2000</name>

    <dependencies>
        <!--
            注册的微服务控制器
        -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--
            springboot的web环境配置
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

  2.2在resources配置文件夹中新建个application.yml

  在yml中添加配置

  

eureka:
  client:
    serviceUrl: #指定注册中心的地址
      defaultZone: http://localhost:1000/eureka/
  instance: #是否显示ip地址
    prefer-ip-address: true
server: #端口号
  port: 2000
spring:
  application: #服务名
    name: orders-server
  cloud:
    discovery:
      client:
        simple:
          local:
            service-id: orders-server:2000 #显示的id

2.3在java文件夹中建个

OrdersServerApplication.java添加如下代码
@SpringBootApplication
@RestController
public class OrdersServerApplication {

    @RequestMapping("/")
    public String home() {
        return "Hello world";
    }

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

}

启动main方法可以看见页面

  在网页上输入http://localhost:2000/页面显示

  Hello world

  说明配置成功

  再重启动注册模块的main方法  在网页上输入http://localhost:1000/页面显示如下就说明微服务配置成功  

 3.订单管理微服务 

项目名:user-server-3000

和创建注册模块一样但配置不一样

3.1在pom.xml中添加依赖

<parent>
        <artifactId>spring-cloud-parent</artifactId>
        <groupId>spring-cloud-parent</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>user-server-3000</artifactId>

    <name>user-server-3000</name>

    <dependencies>
        <!--
            注册的微服务控制器
        -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <!--
            springboot的web环境配置
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

3.2在resources配置文件夹中新建个application.yml

  在yml中添加配置

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:1000/eureka/
  instance:
    prefer-ip-address: true
server:
  port: 3000
spring:
  application:
    name: user-server
  cloud:
    discovery:
      client:
        simple:
          local:
            service-id: user-server:3000

3.3在java文件夹中建个

OrdersServerApplication.java添加如下代码


/**
 * @EnableEurekaClient
 * 启动微服务;
 * 默认开启
 */
@SpringBootApplication
@RestController
@EnableEurekaClient
public class UserServerApplication {

    @RequestMapping("/")
    public String home() {
        return "Hello world2";
    }

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

}

启动main方法可以看见页面

  在网页上输入http://localhost:3000/页面显示

  Hello world2

  说明配置成功

  再重启动注册模块的main方法  在网页上输入http://localhost:1000/页面显示如下就说明微服务配置成功
 

  

原文地址:https://www.cnblogs.com/bigbigxiao/p/12109902.html

时间: 2024-11-05 22:04:42

springboot+springcloud微服务入门的相关文章

springCloud微服务入门

目录 前言 Eureka 注册中心server 新建 配置 服务提供者service 新建 配置 服务消费者controller 新建 配置 使用 Feign负载均衡 前言 springCloud是一个微服务框架集. eureka来实现zookeeper: Eureka 注册中心server 新建 选择版本: 1.5.17 cloud dicovery --- eureka server 配置 启动类 # 启动类添加注解: @EnableEurekaServer 简单配置 # applicati

SpringCloud从入门到进阶(四)——使用SpringBoot搭建微服务

内容 SpringBoot整合SpringCloud的Eureka.Zuul等组件,快速实现简单易懂且具有服务熔断.负载均衡的分布式架构1.0,体验微服务的魅力. 版本 IDE:IDEA 2017.2.2 x64 JDK:1.8.0_171 manve:3.3.3 SpringBoot:1.5.9.RELEASE SpringCloud:Dalston.SR1 适合人群 ?Java开发人员 说明 转载请说明出处:SpringCloud从入门到进阶(四)--使用SpringBoot搭建微服务 参考

springcloud微服务实战:Eureka+Zuul+Ribbon+Hystrix+SpringConfig

原文地址:http://blog.csdn.net/yp090416/article/details/78017552 springcloud微服务实战:Eureka+Zuul+Ribbon+Hystrix+SpringConfig 相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新建的项目都是用springboot,附源码下载. coding仓库

springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin

参考:springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin 原创 2017年09月18日 11:46:28 标签: 微服务架构 / 微服务组件 / eureka / ribbon / zuul 26459 springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin 相信现在

springcloud微服务系列之服务注册与发现组件Eureka

一.Eurake的简介二.使用Eureka进行服务的注册消费1.创建一个服务注册中心2.创建服务的提供者3.创建服务的消费者总结 一.Eurake的简介 今天我们来介绍下springcloud的核心组件Eureka,Eurake是负责微服务架构中服务治理的功能,负责各个服务实例的注册与发现. Eureka包含了服务器端和客户端组件.服务器端,也被称作是服务注册中心,用于提供服务的注册与发现. 客户端组件包含服务消费者与服务生产者.在应用程序运行时,服务生产者向注册中心注册自己的服务实例,当消费者

3 SpringBoot与微服务

SpringBoot的使用? 化繁为简: Spring MVC 需要定义各种配置,配置文件多. SpringBoot的核心功能? 独立运行: java -jar XXX.jar (以前启动SPring MVC需要有服务器,比如tomcat) 内嵌web服务器: 内嵌Tomcat. 简化配置:用starter简化Maven的配置 SpringBoot与微服务的关系 java的润滑剂 SpringCloud的使用 简化Java的分布式系统(负载均衡,服务发现,容错,分布式事务,) 简化java的分布

基于SpringCloud 微服务架构下 广告系统设计与实现

第1章 课程简介本章对这门课程进行说明,包括:广告系统的介绍.课程使用的技术介绍.课程的学习规划等. 第2章 广告系统概览与准备工作本章会介绍广告系统的思想.广告系统的技术实现架构.学习本课程之前的准备工作和广告系统的代码目录结构. 第3章 广告系统骨架开发广告系统使用SpringCloud微服务框架开发,并使用Maven做多模块管理.这一章完成项目骨架的开发,包括搭建注册中心和服务网关,同时也会对Maven的重要特性做介绍. 第4章 微服务通用模块开发本章实现广告系统微服务通用的功能,例如:统

SpringCloud微服务之跨服务调用后端接口

SpringCloud微服务系列博客: SpringCloud微服务之快速搭建EurekaServer:https://blog.csdn.net/egg1996911/article/details/78787540 SpringCloud微服务之注册服务至EurekaServer:https://blog.csdn.net/egg1996911/article/details/78859200 SpringCloud微服务之集成thymeleaf访问html页面/静态页面&热部署:https

从零开始,轻松搞定SpringCloud微服务系列

本系列博文目录 [微服务]之一:从零开始,轻松搞定SpringCloud微服务系列–开山篇(spring boot 小demo) [微服务]之二:从零开始,轻松搞定SpringCloud微服务系列–注册中心(一) [微服务]之三:从零开始,轻松搞定SpringCloud微服务-配置中心