SpringCloud微服务搭建(适合初学者)

Spring Cloud 微服务简介

1. 单体应用优化

1.1 可使用SOA面向服务架构(将每个模块分开,某个模块出问题了,不会影响其他模块)
    1.2 如果某个服务于其他服务有调用关系,那么就需用到ESB(企业服务总线)

2. 微服务架构

2.1 将单体应用切分为小服务单元

3. Spring Cloud

3.1 是一个工具箱

3.2 基于SpringBoot,封装了Netflix的框架

3.3 将Netflix与Spring容器进行整合

4. Spring Cloud整合的Netflix框架

4.1 Eureka:基于REST服务的分布式中间件,主要用于服务管理

4.2 Hystrix:容错框架,通过添加延迟阀值以及容错的逻辑,来帮助我们控制分布式系统间组件的交互。

4.3 Feign:一个REST客户端,目的是为了简化WebService客户端的开发

4.4 Ribbon:负载均衡框架    Zuul:为微服务集群提供过代理,过滤,路由等功能

5. 微服务的优点

    5.1 易于开发和维护:由于微服务单个模块就相当于一个项目,开发这个模块我们就只需关心这个模块的逻辑即可,代码量和逻辑复杂度都会降低,从而易于开发和维护。

5.2 启动较快:这是相对单个微服务来讲的,相比于启动单体架构的整个项目,启动某个模块的服务速度明显是要快很多的。

5.3 局部修改容易部署:在开发中发现了一个问题,如果是单体架构的话,我们就需要重新发布并启动整个项目,非常耗时间,但是微服务则不同,哪个模块出现了bug我们只需要解决那个模块的bug就可以了,解决完bug之后,我们只需要重启这个模块的服务即可,部署相对简单,不必重启整个项目从而大大节约时间。

5.4 技术栈不受限:比如订单微服务和电影微服务原来都是用java写的,现在我们想把电影微服务改成nodeJs技术,这是完全可以的,而且由于所关注的只是电影的逻辑而已,因此技术更换的成本也就会少很多。

上面简单的介绍了一下什么Spring Cloud微服务,那么下面直接上代码,为的就是能让初学者快速上手,自己搭建起Spring Cloud微服务框架。

搭建Eureka程序

什么是Eureka:Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。

Eureka的配置可以说是非常简单的,配置如下:

 1 <parent>
 2     <groupId>org.springframework.boot</groupId>
 3     <artifactId>spring-boot-starter-parent</artifactId>
 4     <version>2.0.3.RELEASE</version>
 5     <relativePath/>
 6 </parent>
 7 <dependencies>
 8     <dependency>
 9         <groupId>org.springframework.cloud</groupId>
10         <artifactId>spring-cloud-starter-eureka-server</artifactId>
11     </dependency>
12 </dependencies>

pom.xml

 1 # 自定义端口号
 2 server.port=8761
 3
 4 eureka.instance.hostname=127.0.0.1
 5
 6 eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
 7
 8 # 为false意味着自身仅作为服务器,不作为客户端
 9 eureka.client.registerWithEureka=false
10
11 # 为false意味着无需注册自身
12 eureka.client.fetchRegistry=false

application.properties

1 @SpringBootApplication
2 @EnableEurekaServer
3 public class Application {
4
5     public static void main(String[] args) {
6         new SpringApplicationBuilder(Application.class).web(true).run(args);
7     }
8 }

Application.java

启动后,如果能够正常访问到这个页面的朋友们,恭喜你们  成功了 !!!

想要做集群的话,也是很简单的,只需在服务端改一下配置就可以了,废话不多说,请继续往下看:

需要修改系统文件:C:/Windows/System32/drivers/etc/hosts

增加映射:127.0.0.1 slave1 slave2(无论是slave1还是slave2,都会映射到127.0.0.1)(这个映射一定要加,否则映射时会出问题)

因加入了集群,那么就需要对每个服务进行单独启动(这里进行手动启动服务)区别如下:

 1 @SpringBootApplication
 2 @EnableEurekaServer
 3 public class Application {
 4
 5     public static void main(String[] args) {
 6         Scanner scan = new Scanner(System.in);// 需手动输入:刚刚配置过映射的 slave1、slave2
 7         String pro = scan.nextLine();
 8         new SpringApplicationBuilder(Application.class).profiles(pro).run(args);
 9     }
10 }

Application.java

为了方便配置,在这里将配置文件“application.properties”更改为“application.yml“,在这里有一点需要注意的是:在application.yml配置中的书写的规范,换行后 需加两个空格(使用缩进的话不知道会不会出现问题,本人没有亲自尝试过)

注:

两个配置中间的横杠:---(这里的”-“,一定要是三个,多一个 少一个都不行,本人亲自测试过)

name: spring-cloud-server(Eureka程序的项目名)

profiles: slave1(刚刚配置映射时的名称)

 1 server:
 2   port: 8761
 3 spring:
 4   application:
 5     name: spring-cloud-server
 6   profiles: slave1
 7 eureka:
 8   client:
 9     serverUrl:
10       defaultZone: http://slave2:8762/eureka
11 ---
12 server:
13   port: 8762
14 spring:
15   application:
16     name: spring-cloud-server
17   profiles: slave2
18 eureka:
19   client:
20     serverUrl:
21       defaultZone: http://slave1:8761/eureka

application.yml

输入”slave1“启动后截图:

输入”slave2“启动后截图:

到这里,Eureka集群配置就成功了!!!

因时间有限,至于服务提供者及服务调用者,本人会在以后的时间里进行更新!!!

原文地址:https://www.cnblogs.com/lpxdbk/p/9644677.html

时间: 2024-11-10 02:09:53

SpringCloud微服务搭建(适合初学者)的相关文章

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包含了服务器端和客户端组件.服务器端,也被称作是服务注册中心,用于提供服务的注册与发现. 客户端组件包含服务消费者与服务生产者.在应用程序运行时,服务生产者向注册中心注册自己的服务实例,当消费者

基于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 微服务架构下 广告系统设计与实现完整教程

var link="www.marenzy.top"//完整视频资源获取地址,复制链接在浏览器打开 var vx="aishangit666"//如链接失效可添加微信 基于Spring Cloud微服务架构 广告系统设计与实现 广告系统是互联网公司中的必备知识体系,但是关于怎样设计.实现广告系统的资料.课程却非常稀少 .本课程将从零开始逐步实现广告系统中最为核心的两个模块:广告投放系统与广告检索系统,并测试它们的可用性,让你在实战中学习广告系统的设计思想,实现方法,

微服务搭建中遇到的问题

前言 现在我所在的xx公司要重构用户系统.旧用户系统是一个单一应用系统.下游的各个系统通过调用用户系统实现对用户查询.登录.校验.菜单的管理.为了适应新的企业级架构模式,用微服务架构对旧用户系统进行重构. 其实,从单一应用系统到微服务架构的搭建,锻炼的是重构一个旧的单一应用项目的思路:单一应用==>微服务架构应用. 过程如下: 1.从熟悉原有的项目:需求文档.操作手册.数据库设计文档.对外接口.页面原型(对系统进行实操).对外接口的调用原理.(这里因为我对用户系统不是很熟悉,所以需要从各个方面熟

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

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

【微服务】之四:轻松搞定SpringCloud微服务-负载均衡Ribbon

对于任何一个高可用高负载的系统来说,负载均衡是一个必不可少的名称.在大型分布式计算体系中,某个服务在单例的情况下,很难应对各种突发情况.因此,负载均衡是为了让系统在性能出现瓶颈或者其中一些出现状态下可以进行分发业务量的解决方案.在SpringCloud 体系当中,加入了Netflix公司的很多优秀产品,其中一个就是针对于服务端进行负载均衡的Ribbon. 本系列博文目录 [微服务]之三:轻松搞定SpringCloud微服务目录 本系列为连载文章,阅读本文之前强烈建议您先阅读前面几篇. 相关简介