2023-3-25

发布时间 2023-03-28 12:05:46作者: Ritchie王则钰

Date: 2023-3-25

Eureka 控制台详解

System Status,就是系统状态

Environment: 环境,默认为 test

Data center:数据中心,默认为 default

Current time:当前的系统时间。

Uptime:已经运行了多长时间。

Lease expiration enabled:是否启用租约过期 ,自我保护机制关闭时,该值默认是 true, 自我保护机制开启之后为 false。

Renews threshold:期望每分钟最少续约数。也就是 Eureka Server 期望每分钟收到客户端实例续约的总数。

Renews (last min):最后一分钟的续约数量(不含当前,1分钟更新一次),Eureka Server 最后 1 分钟收到客户端实例续约的总数。

DS Replicas 代表集群信息,当有多个 Eureka Server 组成集群时,DS Replicas 会展示集群 的其他节点。

Instances currently registered with Eureka已注册的实例列表

General Info通用信息

total-avail-memory : 总共可用的内存,598 MB。

environment : 环境名称,默认 test。

num-of-cpus : CPU 的个数

current-memory-usage : 当前已经使用内存的百分比

server-uptime : 服务已启动时间

registered-replicas : 当前 Eureka Server 是往哪个 Eureka Server 进行注册的。

unavailable-replicas :不可用的集群复制节点

available-replicas :可用的相邻集群复制节点。

Instance Info服务实例信息

Last 1000 cancelled leases最近 1000 个取消的租约

服务的注册与发现

引入依赖spring-cloud-starter-openfeign

配置每个服务的接口类,参数和路径都和商品服务一一对应。

@FeignClient(value = "PRODUCT")  
public interface ProductFeignClient{  
    @PostMapping("/product/getProductById")  
    String getProductById(@RequestParam("productId") Integer productId);  
}

使用方式注解注入服务接口定义类

@RestController  
public class OrderFeignController {  
    @Autowired  
    private ProductFeignClient productFeignClient;  
   
    @GetMapping("/feign/getProductById")  
    public String getProductById(@RequestParam("productId") Integer productId){  
        return productFeignClient.getProductById(productId);  
    }  
}

SpringBoot启动类上需要加上Feign的注解

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

1 Byte = 8 bit

1字节=8比特
Byte存储单位和网速的单位
bit带宽的单位

StringRedisTemplate和RedisTemplate的区别

官方建议k-v都是String类型时使用 StringRedisTemplate。当k-v是非String类型的object时,推荐使用RedisTemplate

bootstrap.yml和application.yml

bootstrap.yml 先加载 application.yml后加载
bootstrap是spring cloud的配置上下文加载。
application是spring boot的配置加载。

Spring Cloud Config分布式配置中心

包含两个部分:Config Server(配置中心) 和 Config Client(各个服务),默认使用Git存储配置信息。

工作流程:

  • 提交配置文件到远程Git仓库

  • Config Server负责连接Git仓库,并对Config Client暴露获取配置的接口

  • Config Client通过接口拉取仓库中的配置

  • 获取到配置信息,用以支持服务的运行

Spring Cloud Bus 又被称为消息总线,目前支持两种消息代理:RabbitMQ 和 Kafka。

线程池

JDK自带的线程池ThreadPoolExecutor
Spring自带的线程池ThreadPoolTaskExecutor
Spring默认的线程池simpleAsyncTaskExecutor,但是Spring更加推荐我们开发者使用ThreadPoolTaskExecutor类来创建线程池