java后端工程师进修ing(研一版‖day45)

发布于:2025-09-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

今日总结

详细内容

java随征录

前端vue通过调用方法发送http请求后如何配置网关路由与路径重写

Elasticsearch

科研随探录

八股随笔录

代码随想录


今日总结

  • java随征录——配置网关路由与路径重写,Elasticsearch
  • 科研随探录——
  • 八股随笔录——MySQL面试篇(7/7)
  • 代码随想录——把二叉搜索树转换为累加树

详细内容

java随征录

前端vue通过调用方法发送http请求后如何配置网关路由与路径重写

前端路径转转换实现(3中方案,Axios全局基路径配置,环境变量动态控制,Webpack代理配置)
后端网关路径重写(基础路由配置,多服务路由配置)
  1. 添加依赖,在pom文件中添加网关依赖,项目才可以使用网关相关的功能
  2. 在applivation.yal文件中配置路由规则,定义请求路径的重写
spring:
  cloud:
    gateway:
      routes:
        - id: service_route
          uri: lb://target-service
          predicates:
            - Path=/api/**
          filters:
            - RewritePath=/api/(?<segment>.*), /$\{segment}
  1. 详细解释路径重写规则

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);
    }

  
}