笔记记录了分布式架构中广泛使用的微服务中间件的使用文档
一 架构认识
微服务技术对比
spring官方地址:Spring | Home
boot与cloud兼容性:
二 中间件使用
eureka
一 搭建EurekaServe
1 创建springboot工程,引入依赖
<!-- eureka服务端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>3.1.0</version>
</dependency>
2 开启服务:主应用加注解@EnableEurekaServer
@EnableEurekaServer @SpringBootApplication public class eureka_serverApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplications.class,args); } }
3 配置文件 application.yml
server: port: 10086 spring: application: name: eurekaserver eureka: client: service-url: defaultZone: http://localhost:10086/eureka
搭建eurekaClient(服务注册与发现)
1 加入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2 配置yml
spring: application: name: eurekaClient eureka: client: service-url: defaultZone: http://localhost:10086/eureka
3 可以启动多个实例应用(非必要):虚拟机参数配置-Dserver.port=8081
特别地,服务发现:负载均衡远程调用容器加注解@LoadBalanced
Ribbon负载均衡
IRule负载策略
自定义IRule
1 代码方式(全局配置)
@Bean
public IRule randomRule(){
return new RandomRule();
}
配置文件方式(作用于)
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #均衡策略
饥饿加载配置(默认懒加载)
ribbon:
eager-load:
enabled: true
clients:
-userservice
# -xxx
总结Ribbon
Nacos
下载:https://github.com/alibaba/nacos/releases/tag/2.0.3
安装后bin目录启动或windows命令行
startup.cmd -m standalone
一 idea使用注册中心
1 引入cloud alibaba依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2021.1</version> </dependency>
修改配置文件
spring: