springcluoud入门
2024-09-03 02:36:42
概念:
Spring Cloud是一个分布式的整体解决方案。
Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
SpringCloud分布式开发五大常用组件:
- 服务发现——Netflix Eureka(注册中心)
- 客服端负载均衡——Netflix Ribbon (具体调用)
- 断路器——Netflix Hystrix (当流程中某一服务出问题时可以快速响应失败)
- 服务网关——Netflix Zuul (流程中过滤请求)
- 分布式配置——Spring Cloud Config (配置)
项目流程:
首先,新建一个空项目springcloud
- 创建注册中心
配置Eureka信息
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/@EnableEurekaServer
启动类:
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication { public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
} }- 启动主注册中心主程序
- 创建provider提供者
配置Eureka提供者信息
server:
#port: 8001
port: 8002
spring:
application:
name: provider-ticket eureka:
instance:
prefer-ip-address: true #注册服务的时候使用服务的ip地址
client:
service-url:
defaultZone: http://localhost:8761/eureka/- 编写被调用的controller和service
controller:
@RestController
public class TicketController { @Autowired
TicketService ticketService; @GetMapping("/ticket")
public String getTicket(){
return ticketService.getTicket();
} } service:
@Service
public class TicketService { public String getTicket(){
//System.out.println("8001");
System.out.println("8002");
return "《拿到票了》";
}
} - 分别打包 8001 ,8002 成jar包,并分别用cmd命令运行 java -jar provider-ticket-0.0.1-SNAPSHOT-8001T.jar / java -jar provider-ticket-0.0.1-SNAPSHOT-8002T.jar,此时http://localhost:8761/注册中心下会看到同一个应用的两个实例
- 创建consumer-user消费者
配置Eureka消费者信息
spring:
application:
name: consumer-user
server:
port: 8200 eureka:
instance:
prefer-ip-address: true #注册服务的时候使用服务的ip地址
client:
service-url:
defaultZone: http://localhost:8761/eureka/- 创建请求
开启发现服务功能并启动主程序,负载均衡可以使实例被调用时轮流调用
- 程序启动后,此时注册中心可以查看到,通过url:http://localhost:8200/buy?name=zhangsanfeng 刷新 可以测试负载均衡
最新文章
- pip安装模块
- iOS 支付宝第三方使用步骤
- 关于button和form提交的一些问题
- iconv
- hdu 4747【线段树-成段更新】.cpp
- 64位win7安装jdk和eclipse
- C#基础零碎知识点摘录
- scrapy 通过FormRequest模拟登录再继续
- jquery 笔记 点击周围区域子类隐藏,点击子类内部的信息 不隐藏
- BZOJ4133 : Answer的排队
- 用Rider写一个由Autofac管理资源的WebAPI应用程序
- LED灯珠散热的计算方法
- centos7: php7.2.9安装配置
- andorid 手机外部储存
- 初步理解Python进程的信号通讯
- LeetCode 48 Rotate Image(2D图像旋转问题)
- 【第三十八章】 springboot+docker(maven)
- BeanShell使用json.jar包处理Json数据
- Storm系列三: Storm消息可靠性保障
- 【NLP_Stanford课堂】语言模型3