目录
前端vue通过调用方法发送http请求后如何配置网关路由与路径重写
今日总结
- java随征录——配置网关路由与路径重写,Elasticsearch
- 科研随探录——
- 八股随笔录——MySQL面试篇(7/7)
- 代码随想录——把二叉搜索树转换为累加树
详细内容
java随征录
前端vue通过调用方法发送http请求后如何配置网关路由与路径重写
- 添加依赖,在pom文件中添加网关依赖,项目才可以使用网关相关的功能
- 在applivation.yal文件中配置路由规则,定义请求路径的重写
spring:
cloud:
gateway:
routes:
- id: service_route
uri: lb://target-service
predicates:
- Path=/api/**
filters:
- RewritePath=/api/(?<segment>.*), /$\{segment}
- 详细解释路径重写规则
Elasticsearch
分布式的开源搜索和分析引擎,适用于所有类型的数据。可以做海量数据的检索和分析。采用倒排索引结构,由单词词典和倒排列表两部分组成。适用于全文搜索、日志分析、实时数据分析等场景。
用docker拉取es镜像,配置容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.4.2
利用postman测试软件向es发送get请求,获取json数据
当使用postman发送post请求时,如果请求体是json格式,需要在请求头Header处设置Content-Type的类型,默认是text/plain类型,需要修改为application/json类型。
科研随探录
八股随笔录
- 有了undo Log为什么还需要redo Log
首先,当事务执行时,产生的undo Log记录会被写入内存中的Undo Log缓冲区中,缓冲区是基于内存的,内存在断电情况下,是十分不靠谱的,会导致数据丢失。
为了防止情况发生,当有一条记录需要更新时,InnoDB引擎就会更新内存,将其标记为脏页,然后对本页的修改以redo Log的形式记录下来。后续用后台线程将缓存在缓冲区的脏页刷新到磁盘里。
- updata语句的具体执行过程是怎样的?
1. 执行器会调用存储引擎的接口,通过主键索引树搜索获取这行记录
2. 执行器得到聚簇索引记录后,会查看记录更新前后的一致性
3. 开启事务,InnoDB更新记录前,首先记录相应的undo log,undo log写入缓冲区,在内存修改后,需要记录对应的redo log
4. 开始更新记录,完成更新
5. 更新语句执行完成后,开始记录该语句对应的binlog
6. 事务提交,至此,一条跟新语句执行完成。
代码随想录
给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node
的新值等于原树中大于或等于 node.val
的值之和。
提醒一下,二叉搜索树满足下列约束条件:
- 节点的左子树仅包含键 小于 节点键的节点。
- 节点的右子树仅包含键 大于 节点键的节点。
- 左右子树也必须是二叉搜索树。
注意:本题和 1038: https://leetcode-cn.com/problems/binary-search-tree-to-greater-sum-tree/ 相同
示例 1:
输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8] 输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
int sum;
public TreeNode convertBST(TreeNode root) {
sum = 0;
dg(root);
return root;
}
public void dg(TreeNode root) {
if(root == null) {
return ;
}
dg(root.right);
sum += root.val;
root.val = sum;
dg(root.left);
}
}