Spring Cloud

Spring Cloud是一个分布式的整体解决方案。Spring Cloud 为开发者提供了在分布式系统
(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐,leader选举,
分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启
动服务或构建应用、同时能够快速和云平台资源进行对接。
SpringCloud分布式开发五大常用组件
服务发现——Netflix Eureka 
客服端负载均衡——Netflix Ribbon 
断路器——Netflix Hystrix 
服务网关——Netflix Zuul 
分布式配置——Spring Cloud Config
新建工程:
服务发现(注册中心):Eureka

此时需要引入:

配置文件

server.port=
#主机名
eureka.instance.hostname=server
#不做高可用不进行设置
#不把本身注册在注册中心
eureka.client.register-with-eureka=false
#不从eureka上获取服务的注册信息
eureka.client.fetch-registry=false
#服务中心地址
eureka.client.service-url.DEFAULT_ZONE=http://localhost:8761/eureka/

开启服务:

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

访问网页:

此时的服务是开启的!!!

服务提供者:

TicketService.java

package com.cr.provider.service;
import org.springframework.stereotype.Service;
@Service
public class TicketService {
public String buyTicket(){
return "战狼2";
}
}

TicketController.java

import org.springframework.web.bind.annotation.RestController;
@RestController
public class TicketController {
@Autowired
TicketService ticketService; //通过http协议进行发送的
@GetMapping("/buy")
public String getTicket(){
return ticketService.buyTicket();
}
}

配置文件:

server.port=8081
#应用起名字spring.application.name=provider
#注册服务时使用服务的ip地址
eureka.instance.prefer-ip-address=true
#服务中心地址
eureka.client.service-url.DEFAULT_ZONE=http://localhost:8761/eureka/
启动服务访问:
@SpringBootApplication
public class ProviderApplication { public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
} }

此时查看注册证中心:

此时打包两个jar文件分别未8081、8082端口,分别进行多个服务的注册

此时:同一个应用的两个实例

服务消费者:

UserController.java

package com.cr.consumer.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate; @RestController
public class UserController { //用于获取http请求的信息
@Autowired
RestTemplate restTemplate; @GetMapping("/buyTicket")
public String buyTicket(String name){ String ticket = restTemplate.getForObject("http://PROVIDER/buy", String.class);
return name + "购买了" + ticket ;
} }

配置文件:

server.port=8088spring.application.name=consumer
#注册服务时使用服务的ip地址
eureka.instance.prefer-ip-address=true
#服务中心地址
eureka.client.service-url.DEFAULT_ZONE=http://localhost:8761/eureka/

主类:

package com.cr.consumer;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate; //开启发现服务功能
@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication { public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
} //http请求
@LoadBalanced//使用负载均衡机制
@Bean
public RestTemplate restTemplate(){
return new
RestTemplate();
}

}

启动服务:

负载均衡机制,没执行一次就更换一次

33、springboot整合springcloud的更多相关文章

  1. SpringBoot整合SpringCloud搭建分布式应用

    什么是SpringCloud? SpringCloud是一个分布式的整体解决方案.SpringCloud为开发者提供了在分布式系统中快速构建的工具,使用SpringCloud可以快速的启动服务或构建应 ...

  2. SpringCloud:SpringBoot整合SpringCloud项目

    划分模块 这里我划分了四个模块 Common: 存放bean和Dao模块 Consumer: 消费者模块,提供对外暴露接口服务 EurekaServer: Eureka注册中心模块,主要用于启动注册中 ...

  3. Java-SpringBoot整合SpringCloud

    SpringBoot整合SpringCloud 1. SpringCloud特点 SpringCloud专注于为典型的用例和扩展机制提供良好的开箱即用体验,以涵盖其他情况: 分布式/版本化配置 服务注 ...

  4. Rabbitmq基本使用 SpringBoot整合Rabbit SpringCloud Stream+Rabbit

    https://blog.csdn.net/m0_37867405/article/details/80793601 四.docker中使用rabbitmq 1. 搭建和启动 使用地址:rabbitm ...

  5. SpringBoot分布式篇Ⅷ --- 整合SpringCloud

    SpringCloud是一个分布式的整体解决方案.Spring Cloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局锁,leader选举.分布 ...

  6. SpringBoot系列十二:SpringBoot整合 Shiro

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 整合 Shiro 2.具体内容 Shiro 是现在最为流行的权限认证开发框架,与它起名的只有最初 ...

  7. SpringBoot整合Kafka和Storm

    前言 本篇文章主要介绍的是SpringBoot整合kafka和storm以及在这过程遇到的一些问题和解决方案. kafka和storm的相关知识 如果你对kafka和storm熟悉的话,这一段可以直接 ...

  8. SpringBoot整合RabbitMQ-整合演示

    本系列是学习SpringBoot整合RabbitMQ的练手,包含服务安装,RabbitMQ整合SpringBoot2.x,消息可靠性投递实现等三篇博客. 学习路径:https://www.imooc. ...

  9. SpringBoot整合Netty并使用Protobuf进行数据传输(附工程)

    前言 本篇文章主要介绍的是SpringBoot整合Netty以及使用Protobuf进行数据传输的相关内容.Protobuf会简单的介绍下用法,至于Netty在之前的文章中已经简单的介绍过了,这里就不 ...

随机推荐

  1. 查看SQLServer数据库表占用大小

      查看数据库mdf 文件中 各个表数据占用大小.      create table #t(name varchar(255), rows bigint, reserved varchar(20), ...

  2. 您必须先调用“WebSecurity.InitializeDatabaseConnection”方法,然后再调用"WebSecurity"类的任何其他方法。

    今天调试程序的时候出现了这个是,可惜没截图! 您必须先调用“WebSecurity.InitializeDatabaseConnection”方法,然后再调用"WebSecurity&quo ...

  3. RDCMan之DPI 和 Screen Resolution设置

    Customer要求在以下环境验证几个bug DPI setting Minimum   resolution 96 / 100% 1024x768 120 /125% 1280x960 144 / ...

  4. cookie、session、分页

    一.cookie HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情 ...

  5. JavaScript的进阶之路(四)理解对象2

    对象的三个属性 原型属性 1.var v={}的原型是Object.prototype;继承了一个constructor属性指代Object()构造函数,实际的原型是constructor.proto ...

  6. Linux扩展根目录下的空间

    自己通过root创建了一个新用户,然而当我使用这个新用户时发现,/home/my中的空间只有几十M,完全不能满足我的使用,所以通过下面的方法扩展根下的空间. 我的本次操作,参考于 http://www ...

  7. 学习笔记:如何阻止Web应用存储敏感数据

    在某些情况下,自定义Web应用会保存敏感(专有)数据到用户的缓存文件夹中.如果不重新架构该应用,使用Sysinternals SDelete的注销脚本是否可以确保数据完全被删除且没有任何可恢复残留呢? ...

  8. 解决nginx使用proxy_pass反向代理时,session丢失的问题

       这2天在测试Nginx作为反向代理到Tomcat应用时,session丢失的问题.经过一系列查看官方文档和测试,发现如下:1.如果只是host.端口转换,则session不会丢失.例如:     ...

  9. 机器学习入门KNN近邻算法(一)

    1 机器学习处理流程: 2 机器学习分类: 有监督学习 主要用于决策支持,它利用有标识的历史数据进行训练,以实现对新数据的表示的预测 1 分类 分类计数预测的数据对象是离散的.如短信是否为垃圾短信,用 ...

  10. FTP自动上传

    注:该脚本上传的压缩文件,通过文件资源管理器拿下来后会提示压缩文件损坏.使用 ftp -s:d:\audit_log\ftp_upload.txt 方法可行(http://www.cnblogs.co ...