- 一、05.31 周二
- 1.1) 测试并发
- 1.2) 使用 `Resilience4j` 实现服务熔断
- 1.2.1)Hystrix 以外的选择
- 1.2.2) 核心组件
- 1.2.3)断路器
- 二、06.01 周三
- 2.1)N皇后问题
- 2.1.1) 代码实现
- 2.1.2) `Python` 代码涉及的语法等
- 三、 06.03 周五
- 3.1)使用 `Resilience4j` 实现服务限流
- 3.1.1) 使用 `Bulkhead` 实现
- 3.1.2) 使用 `RateLimiter`实现
- 3.2) 服务熔断总结
- 3.2.1)模式 | 工具 | 观察与监控
- 3.3)基于 GIt的配置中心
- 3.3.1)·`Spring Cloud Config Server`·
- 四、 06.04 周六
- 4.1) Spring Cloud Config Client
- 4.2) 基于 `Zookeeper` 的配置中心
- 4.2.1) Zookeeper中的数据怎么存?
文章链接: 测试并发
① 能测试并发的工具: Apache Bench ,并发模拟工具JMeter,代码模拟(CountDownLanch)
② 模拟代码:
- 类 CountDownLanch
调用了 CountDownLanch 中的 await()方法后,线程处于阻塞状态。只有当其他的线程调用 countdown()方法将 计数 cnt 减少到0时,才触发之前 因await()方法阻塞的线程继续执行。
- 类 Semaphore
与 ConutDownLatch 类似,但是它限制流量,类似阀门的作用。用于获取权限的 acquire() 方法和用于释放权限的 release 方法。
- 最终代码
- 代码实现
leetcode 51,52
2.1.1) 代码实现python DFS
class Solution:
def solveNQueens(self, n: int) -> List[List[str]]:
if n < 1: return []
self.result = []
self.cols = set(); self.pie = set(); self.na = set()
self.DFS(n, 0, [])
return self._generate_result(n)
def DFS(self, n, row, cur_state):
if row >= n:
self.result.append(cur_state)
return
for col in range(n):
if col in self.cols or row + col in self.pie or row - col in self.na:
continue
self.cols.add(col)
self.pie.add(row + col)
self.na.add(row - col)
self.DFS(n, row + 1, cur_state + [col])
# 恢复现场,归去来兮的感觉
self.cols.remove(col)
self.pie.remove(row + col)
self.na.remove(row - col)
def _generate_result(self, n):
board = []
for res in self.result:
for i in res:
board.append("." * i + "Q" + "." * (n - i - 1))
# 循环构建返回值,range()函数的步长是n,每n个是一组,每n组是一个结果情况
return [board[i: i + n] for i in range(0, len(board), n)]
更简洁的写法,利用 Python 的独特语法,函数嵌套,循环嵌套等
2.1.2) Python 代码涉及的语法等Java 版本
- 将列表 list快速分组
myList = [1, 2, 3, 4] groupList = [myList(i:i+3) for i in range(0, len(myList), 3)] print (groupList)
参考
三、 06.03 周五 3.1)使用 Resilience4j 实现服务限流 3.1.1) 使用 Bulkhead 实现Pythion代码在线运行: https://www.json.cn/runcode/run_python3/
Python的语法:
隔舱的意思
- 配置
3.1.2) 使用 RateLimiter实现实现对下游调用并发度的控制,在并发允许的数量范围内正常请求,对超过并发量的部分,则是直接返回
- 配置
3.2) 服务熔断总结 3.2.1)模式 | 工具 | 观察与监控 3.3)基于 GIt的配置中心 3.3.1)·Spring Cloud Config Server·使用 Postman 工具模拟在短时间内较多次请求,然后使用 Spring Boot 提供的 Actuator 中的 endpointer 来观察超过请求量失败的情况
- 使用 Git 作为后端存储的 backend
- 配置刷新: @RefreshScope
- 主要是 使用 Zookeeper 中的 config



