SpringCloud搭建分布式服务架构

问题引入:什么是SpringCloud?(在了解这个之前需要有微服务的概念)

基于springBoot的一套实现微服务的框架,提供了微服务所需的配置管理,基于Http协议的restful风格(返回异步数据)

SpringCould组件架构图

由于在一台电脑上演示分布式项目,需要创建多个项目模块

步骤:

  1. 创建父类工程maven工程,修改pom文件,将打包方式改为pom
  2. 创建服务工程(注册中心)SpringBoot模块,选择需要导入的包,具体见下截图

  1. 在SpringBoot文件中添加eureka服务配置
#设置服务器端口
server.port:9000
#设置应用程序名称  名字不许用下划线,不支持服务调用
spring.application.name=sc-demo-server
#主机地址
eureka.instance.hostname=localhost
#表示不向注册中心注册
eureka.client.register-with-eureka=false
#表示不向注册中心调用服务
eureka.client.fetch-registry=false
#服务的地址
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
  1. 在这个模块的启动类上添加eureka注解开启服务
@SpringBootApplication
@EnableEurekaServer  //启动eureka,开启服务
public class ScDemoServerApplication {public static void main(String[] args) {SpringApplication.run(ScDemoServerApplication.class, args);}
}

这时候运行你的启动类,在浏览器输入

http://localhost:自己设置的端口号/ 看到这个,说明eureka服务配置成功

接下来配置提供者与服务者

  1. 创建eureka的服务提供者 SpringBoot工程,具体见图(注意组件的区别)

  1. 这个模块的启动类上添加eureka注解开启服注意注解的使用
@SpringBootApplication
@EnableEurekaClient
public class ScDemoProviderApplication {public static void main(String[] args) {SpringApplication.run(ScDemoProviderApplication.class, args);}}
  1. SpringBoot的配置文件中发布服务配置
 #服务器端口
server.port=9001
#配置发布服务地址
spring.application.name=sc-demo-provider
eureka.client.service-url.defaultZone=http://localhost:9000/eureka
  1. 测试eureka服务者

    在模块中创建一个包写一个实体类

    public class Student {private Integer xh;private String name;private String sex;private Integer age;setter和getter  构造
    }

    编写控制器

    @RestController
    public class TestController {//接收请求(服务)  返回json@RequestMapping("/getData")public Student getData(){//返回一个学生   --调数据库return new Student(101,"张三","人妖",21);}
    }

    在浏览器输入http://localhost:自己设置的服务提供者端口号/控制器请求名

    页面会返回学生的json数据则成功

  2. 创建eureka的服务消费者 SpringBoot工程

    创建流程与提供者相同

    消费者的配置文件如下:

    #服务器
    server.port=9002
    #服务的名称
    spring.application.name=eureka-consumer
    #指定注册中心:eureka服务器
    eureka.client.service-url.defaultZone=http://localhost:9000/eureka
    
  3. 在启动类上开启eureka

    package com.sc.dome;import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;@EnableEurekaClient
    @SpringBootApplication
    public class ScConsumerApplication {public static void main(String[] args) {SpringApplication.run(ScConsumerApplication.class, args);}@Bean   //交给spring容器管理@LoadBalanced  // 支持使用服务名称发现服务进行调用,且支持负载public RestTemplate getRestTemplate() {return new RestTemplate();}
    }
  4. 开发控制器调用服务

    package com.sc.dome.controller;import com.sc.dome.entity.Student;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;/*** @Auther: Mr.zhou* @Date: 2020/8/13 13:44*/
    @RestController
    public class StudentController {@Autowiredprivate RestTemplate restTemplate; // 从spring容器自动注入RestTemplate对象@RequestMapping("showStudent")public Student showStudent(){Student stu = restTemplate.getForObject("http://SC-PROVIDER/getStudent", Student.class);return stu;}
    }

温馨提示:最后测试的时候需要开启三个启动类哦

获取更多 请扫码关注公众号哦~

感谢各位姥爷的点赞阅读~

SpringCloud搭建分布式服务架构(通俗易懂,步骤清晰)相关推荐

  1. 【架构】分布式服务架构与微服务架构

    文章目录 0)服务相关架构的演变 *关于面向对象.面向组件.面向服务 1)面向服务架构(SOA) 1.1 什么是面向服务架构(SOA)? 1.2 为什么需要SOA? 1.3 SOA 的特征 1.4 S ...

  2. spring cloud+.net core搭建微服务架构:Api授权认证(六)

    前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...

  3. 分布式服务架构下的混沌工程实践

    本文来自阿里巴巴高可用架构团队高级开发工程师肖长军(花名穹谷)在 GIAC(全球互联网架构大会)上的分享,包含三部分内容:(阿里巴巴中间件公众号对话框发送"混沌工程",获取分享PP ...

  4. 基于SpringCloud的微服务架构演变史?

    系统架构演变概述 在公司业务初创时期,面对的主要问题是如何将一个想法变成实际的软件实现,在这个时候整个软件系统的架构并没有搞得那么复杂,为了快速迭代,整个软件系统就是由"App+后台服务&q ...

  5. 微服务架构与SpringCloud:微服务架构的特点

    微服务架构与Spring Cloud 近几年大家都在谈论云原生和微服务,例如 © 云原生技术能够帮助公司和机构在私有云.公有云和混有云等新型动态环境中,构建和运行可弹性扩展的应用. 微服务架构是一项在 ...

  6. 一文理解分布式服务架构下的混沌工程实践(含PPT)

    导读:近日,在 GIAC(全球互联网架构大会)上,来自阿里巴巴高可用架构团队的高级开发工程师肖长军(花名穹谷)做了<分布式服务架构下的混沌工程实践>主题分享.本次分享包含三部分,第一部分从 ...

  7. 分布式服务架构:原理、设计与实战

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  8. spring cloud+dotnet core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  9. spring cloud+dotnet core搭建微服务架构:服务发现(二)

    前言 上篇文章<手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)>实际上只讲了服务治理中的服务注册,服务与服务之间如何调用呢?传统的方式,服务A ...

最新文章

  1. Windows 中的磁盘阵列
  2. git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目
  3. 前端技术未来三年前瞻性思考
  4. 分治应用--最近点对问题 POJ 3714
  5. Spring 框架基础(02):Bean的生命周期,作用域,装配总结
  6. php生产随机字符的代码
  7. 关于MP4 fileformat中 duration及timescale相关的几个地方
  8. Android 7.1 竖屏转横屏全过程实现-基于高通平台
  9. MLA 格式引用怎么做好分析?
  10. android 京东平板布局,京东商城上线安卓Pad客户端 完美布局移动端
  11. 幼儿园案例经验迁移_2020年幼儿园中班教育笔记 生活经验的迁移
  12. WGCNA那么多图,都啥意思? 官网
  13. 数据结构(数组结构、链表结构)
  14. 什么是TTL电平,什么是CMOS电平,他们的区别
  15. 蔡丹红老师刁酒集团《基层管理人员综合能力提升培训班》企业内训开讲
  16. 双路服务器单路运行,双路服务器和单路服务器有什么区别?
  17. vb.net 教程 1-9 数组1
  18. 建行技术岗计算机知识,技术岗想要进银行,笔试到底都会考什么?
  19. 计算机房考研英语考试时间按,考研英语一考试时长是多久
  20. 关于Unity Meta文件的简单理解

热门文章

  1. DOS 命令 批量注册指定文件下的所有DLL
  2. vue设置国际化字体
  3. 历史上的重大软件BUG启示录第9篇---微软的硬件尝试
  4. Kring(DACE)Multiple design sites are not allowed
  5. 对标阿里P5-P8Java高级技术专家学习路线
  6. CDialog的使用
  7. C - Anu Has a Function
  8. 【NISP一级】2.4 网络安全新技术
  9. GitHub刷屏!阿里程序员成功考上公务员指南火了!
  10. 代理记账公司怎么做业务