SpringBoot整合SpringCloud搭建分布式应用
什么是SpringCloud?
SpringCloud是一个分布式的整体解决方案。SpringCloud为开发者提供了在分布式系统中快速构建的工具,使用SpringCloud可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
SpringCloud分布式开发五大常用组件
服务发现——Netflix Eureka
客户端负载均衡——Netflix Ribbon
断路器——NetFlix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config
创建一个分布式应用
1)New Project 选择 Empty Project
2)创建注册中心应用
2.1 New Model→Spring Initializr后面选择导入Cloud Discovery的Eureka Server依赖。
2.2 在启动类上加入@EnableEurekaServer注解。
2.3 创建application.yml,内容如下
server:
port: 8761
eureka:
instance:
hostname: eureka-server # eureka实例的主机名
client:
register-with-eureka: false #不将自己注册到eureka上
fetch-registry: false #不从eureka上来获取服务的注册信息
service-url:
defaultZone: http://localhost:8761/eureka/
3)创建服务提供者工程
3.1 New Model→Spring Initializr后面选择导入Cloud Discovery的Eureka Discovery依赖。
3.2 创建一个Service
package com.example.providerticket.Service; import org.springframework.stereotype.Service; @Service
public class TickerService { public String getTicker(){
return "《厉害了,我的国》";
} }
3.3 创建一个Controller
@RestController
public class TickerController { @Autowired
TickerService tickerService; @GetMapping("/ticket")
public String getTicker(){
return tickerService.getTicker();
} }
3.4 创建配置application.yml
server:
port: 8002
spring:
application:
name: provider-ticket
eureka:
instance:
prefer-ip-address: true #注册服务的时候使用服务ip地址
client:
service-url:
defaultZone: http://localhost:8761/eureka/
4)创建服务消费者工程
4.1 New Model→Spring Initializr后面选择导入Cloud Discovery的Eureka Discovery依赖。
4.2 配置启动类
@EnableDiscoveryClient //开启发现服务功能
@SpringBootApplication
public class ConsumerUserApplication { public static void main(String[] args) {
SpringApplication.run(ConsumerUserApplication.class, args);
} @LoadBalanced //启用负载均衡机制
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
} }
4.3 配置application.yml
spring:
application:
name: consumer-user
server:
port: 8200
eureka:
instance:
prefer-ip-address: true #注册服务的时候使用服务ip地址
client:
service-url:
defaultZone: http://localhost:8761/eureka/
4.4 创建Controller并测试
@RestController
public class UserController { @Autowired
RestTemplate restTemplate; @GetMapping("/buy")
public String byTicket(String name){
String forObject = restTemplate.getForObject("http://PROVIDER-TICKET/ticket", String.class);
return name+"购买了"+forObject;
} }
至此,一个SpringBoot整合SpringCloud的简单分布式应用已搭建完毕。
SpringBoot整合SpringCloud搭建分布式应用的更多相关文章
- SpringBoot整合SpringAdmin搭建监控平台
在SpringBoot整合Actuator进行健康监控中,胜金讲述了通过Actuator进行健康监控,但是学习API并根据API开发前端需要花费相当大的精力,本次胜金就写一下通过SpringAdmin ...
- 第6章 使用springboot整合netty搭建后台
我们不会去使用自增长的id,在现阶段的互联网开发过程中,自增长的id是已经不适用了.在未来随着系统版本的迭代,用户数量的递增,肯定会做分库分表,去做一些相应的切分.在这个时候我们就需要有一个唯一的id ...
- SpringBoot整合Eureka搭建微服务
1.创建一个services项目,添加三个子模块client(客户端).service(服务端).registry(注册中心) 1.1 创建一个services项目 1.2 添加pom.xml依赖 & ...
- Springboot整合dubbo搭建基本的消费、提供和负载均衡
文章目录 1.确定接口 2.创建提供者 2.1 pom配置 2.2dubbo配置文件 2.3 application.properties 2.4 mybatis相关 2.4.1 配置UserMapp ...
- SpringCloud:SpringBoot整合SpringCloud项目
划分模块 这里我划分了四个模块 Common: 存放bean和Dao模块 Consumer: 消费者模块,提供对外暴露接口服务 EurekaServer: Eureka注册中心模块,主要用于启动注册中 ...
- SpringBoot整合Swagger2搭建API在线文档
Swagger,中文"拽"的意思,它是一个功能强大的在线API在线文档,目前它的版本为2.x,所以称为Swagger2.Swagger2提供了在线文档的查阅和测试功能.利用Swag ...
- 33、springboot整合springcloud
Spring Cloud Spring Cloud是一个分布式的整体解决方案.Spring Cloud 为开发者提供了在分布式系统 (配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token ...
- Java-SpringBoot整合SpringCloud
SpringBoot整合SpringCloud 1. SpringCloud特点 SpringCloud专注于为典型的用例和扩展机制提供良好的开箱即用体验,以涵盖其他情况: 分布式/版本化配置 服务注 ...
- Rabbitmq基本使用 SpringBoot整合Rabbit SpringCloud Stream+Rabbit
https://blog.csdn.net/m0_37867405/article/details/80793601 四.docker中使用rabbitmq 1. 搭建和启动 使用地址:rabbitm ...
随机推荐
- THINKPHP 调试------输出sql语句
echo $model->getLastSql();//$model为实例化的模板类
- 关于HTML、CSS、JavaScript三者关系的简述
总述 我对于网页这部分的理解吧,对于静态网页来说,无非分为三部分:第一部分.HTML,第二部分.CSS,第三部分.JavaScript(这部分暂且放一边).这俩个给我的第一印象就是,这你妹的都是一串串 ...
- 创建第一个core项目(netCore学习笔记1)
1.安装 core和netFramework其实是相对独立的,但是core的IDE是在vs2017才开始支持,而vs2017的安装环境必须搭配.net4.6,所以: Step1:安装.net4.6 S ...
- 输入流IS和输出流OS学习总结
1.我们编写的程序,除了自身会定义一些数据信息外,经常还会引用外界的数据,或是将自身的数据发送到外界,比如我们编写的程序想读取一个文本文件, 又或者是我们想将程序的一些数据写到一个文件中,这时我们就要 ...
- Hibernate中的常用API
1.Configuration 1.1 加载核心配置文件, 加载hibernate.properties时:Configuration configuration = new Configuratio ...
- SSM-SpringMVC-06:SpringMVC关于静态资源无法展示的问题
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 按照之前的那种方式一路走下来,或许你没发觉有问题,只是你没有使用到而已 css,js,图片等无法正常使用怎么 ...
- 解决WordPress无法上传媒体文件以及无法下载和安装主题与插件的问题
前言: 我的个人博客网站荒原之梦在安装成功WordPress之后本来是可以上传媒体文件,安装主题和插件的,但是后来不知道怎么回事就出了问题:不能上传媒体文件也不能安装主题和插件了.出现这个问题后我尝试 ...
- 为什么选择Spring Boot作为微服务的入门级微框架
摘要:1. Spring Boot是什么,解决哪些问题 1) Spring Boot使编码变简单 2) Spring Boot使配置变简单 3) Spring Boot使部署变简单 4) Spring ...
- Servlet到底是单例还是多例你了解吗?
为一个Java Web开发者,你一定了解和学习过Servlet.或许还曾在面试中被问到过Servelt是单例还是多例这个问题. 遇到这个问题,你是否曾深入了解过,还是百度或者Google了一下,得到答 ...
- Vue路由学习心得
GoodBoy and GoodGirl~进来了就看完点个赞再离开,写了这么多也不容易的~ 一.介绍 1.概念:路由其实就是指向的意思,当我们点击home按钮时,页面中就要显示home的内容,点击l ...