【每周Java技术】2022.05.23 周一 ~ 2022.05.29 周日(Eureka | DFS | BFS | Doctor | Zookeeper | Consul)

文章目录

一、 05.23 周一

1.1)使用Eureka作为服务注册中心

1.1.1) 认识 Eureka

在这里插入图片描述

1.1.2) 在本地启动一个简单的 Eureka 服务

在这里插入图片描述

1.1.3) 将服务注册到 Eureka Server

在这里插入图片描述

  • 关于 BootStrap 属性
    在这里插入图片描述

1.2) 使用 Spring Cloud Loadbalancer(负载均衡) 访问服务

前置阅读

  • 使用方法:
    WebClientRestTemplate 添加一个 @LoadBalanced注解就可以使用负载均衡了
  • 原理:
    1. 处理 @LoadBalanced
      添加了 @LoadBalanced注解的类,会被 LoadBalanceWebClientBuilderBeanPostProcessor 这个 BeanPostProcess接口实现的类初始化后处理
    1. spring-cloud-loadbalancer
      spring-cloud-loadbalancer 中有 自动装配类 LoadBalancerAutoConfiguration,它里边提供了 ReactiveLoadBalancer.Factory<ServiceInstance> Bean的方法, 这里边就是 默认的负责均衡算法 RoundRobinLoadBalancer

1.2.1) 如何获得服务地址

在这里插入图片描述

1.2.2) Load Balancer Client

在这里插入图片描述

1.3) 使用 Feign访问服务

1.3.1) 认识 Fegin

在这里插入图片描述

1.3.2) Fegin的简单使用

在这里插入图片描述

1.3.3) 通过配置定制 Feign

在这里插入图片描述

  • 代码示例
    在这里插入图片描述

1.4) 深入理解服务注册背后的 DiscoveryClient

1.4.1) Spring Cloud Commons 提供的抽象

在这里插入图片描述

1.4.2)自动向 Eureka 服务端注册

在这里插入图片描述

1.5) 广度优先搜索

  • 原理图

在这里插入图片描述

  • 代码示例
    在这里插入图片描述

1.6) 深度优先搜索

  • 深度优先搜索的原理
    在这里插入图片描述

  • 广度优先搜索 和 深度优先搜索 的对别
    在这里插入图片描述

  • 深度优先递归写法
    在这里插入图片描述

  • 深度优先 非递归写法
    在这里插入图片描述

1.7) 题目 102:二叉树的层序遍历

使用深度优先或者广度优先算法都是可以的
在这里插入图片描述

1.7.1) Java语言描述 BFS 答案:

在这里插入图片描述

1.7.2) Java语言描述 DFS 答案:

在这里插入图片描述

1.8) 题目104: 求二叉树的最大最小深度

在这里插入图片描述

  • 深度优先的解法- max
    在这里插入图片描述

  • 深度优先的解法- min

C++版本
在这里插入图片描述

Java版本
在这里插入图片描述

1.9) 题目 22:括号生成

在这里插入图片描述

1.9.1)DFS 递归解法

Python解法
在这里插入图片描述

Java版本解法
在这里插入图片描述

二、05.27 周五

2.1) 服务注册 DiscoveryClient

EurekaAutoServiceRegistration 这个类里去完成 Eureka的注册
在这里插入图片描述

EurekaDiscoveryClient 实现了 接口 DiscoveryClient, 完成具体的服务发现
在这里插入图片描述

2.2) 使用 Zookeeper 来做服务注册中心

2.2.1) 认识 zookeeper

在这里插入图片描述

2.2.2) 使用 zookeeper 作为注册中心

在这里插入图片描述

2.2.3) 使用 Zookeeper 作为注册中心的问题

在这里插入图片描述

2.2.4) 通过 Docker 启动 Zookeeper

在这里插入图片描述

  • 使用zookeeper命令行查看zk的文件特性
    在这里插入图片描述

2.3) 使用 Consul 来做服务注册中心

2.3.1) Consul 的github上的介绍

在这里插入图片描述

2.3.2) 认识 HashiCorp Consul

在这里插入图片描述

2.3.3) 使用 Consul 提供服务发现能力

在这里插入图片描述

2.3.4) Spring Cloud 中 使用 Consul 作为注册中心

在这里插入图片描述

2.3.5) 通过 Docker 启动 Consul

在这里插入图片描述

  • consul 的页面控制台
    在这里插入图片描述

2.4) 使用 Nacos 来做服务的注册中心

2.4.1) 认识 Nacos

在这里插入图片描述

2.4.2) NaCos的技术架构图

在这里插入图片描述

  • 依赖添加
    在这里插入图片描述

2.4.3) 通过 Docker 启动 Nacos

在这里插入图片描述

  • Nacos 的用户界面

在这里插入图片描述

三、 05.28 周六

3.1)如何定制自己的 DiscoveryClient

3.1.1) 接触过的 Spring Cloud

在这里插入图片描述

3.1.2) 实现自己的 DiscoveryClient

在这里插入图片描述

3.1.3) 实现自己的 RabbionClient 支持

在这里插入图片描述

3.2) 服务注册发现总结

3.3) 算法-剪枝

  • N皇后问题
    在这里插入图片描述

3.4) 使用 Hystrix 实现服务熔断

服务熔断的场景: 当一个服务或者实例不太好时,怎么通过不人工干预,实现一个自动地平滑地服务的降级。

3.4.1) 断路器模式

在这里插入图片描述

  • 断路器示意图
    在这里插入图片描述

在这里插入图片描述

  • 断路器起作用的代码
    在这里插入图片描述

四、05.29 周日

4.1) 使用 Hytrix 作为断路器

4.1.1) Hystrix 断路保护示意图在这里插入图片描述

  • Hystrix 实现的断路器模式相关注解
    在这里插入图片描述

在这里插入图片描述
Hystrix 官方已经不维护了,要注意

4.1.2)如何观察熔断情况

在这里插入图片描述

  • 配置 Hystrix Dashboard 来可视化观察熔断情况
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值