985研一学习日记 - 2024.10.16

一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。

日常

1、起床6:00√

2、健身1个多小时

今天练了二头和背部,明天练胸和三头

3、LeetCode刷了3题

  1. 旋转图像:矩阵、中
    • 1.创建一个辅助二维矩阵,可以发现旋转数组后,第一行元素变为最后一列元素,第二行元素变为倒数第二列元素
    • 故可以根据该规律对新创建的辅助数组进行赋值,nums(i,j)会变为nums(len-i-1,j),故遍历一遍数组后就得到了旋转后的数组,此时再遍历一遍对原来的数组进行赋值即可
    • 2.还可以使用S(O(1))的算法,将矩阵分为四个区域,每次旋转四个区域中对应的各一个元素,首先要找出各个区域对应位置的替换关系,然后使用一个辅助元素即可实现四个元素的旋转,然后遍历其中一个区域即可实现矩阵的旋转
  2. 搜索旋转排序数组:二分查找、中
    • 先遍历数组找到拆分位置k,然后判断target的大小来决定在哪部分进行二分查找,要判断target是否超出某部分的边界,只有未超出时才使用二分查找
    • 二分查找可以通过递归来实现,当l == r时说明找到了位置,当l>r时说明未找到target则返回-1,否则就令mid=(l+r)/2,然后判断mid位置上元素与target的大小,并递归遍历左右某个部分,要注意l,r的赋值规则,可以均是左闭右闭
  3. 删掉一个元素以后全为1的最长数组:不定长数组、中
    • 不定长数组,使用双指针定义一个滑动窗口,直接遍历先找到长度全为1的子数组,然后向右移动一位继续找长度为1的数组,此时找到两个后,将长度相加,然后对max进行赋值,对指针进行更新,从第二个长度为1的数组开始继续上述操作,最后仍要再对max进行一次赋值

4、复盘22:00√

不复盘等于白学!!!

学习和感想

1、SpringCloud Alibaba Nacos

1. 入门简介

  1. 由阿里提供的微服务开发的一站式解决方案(服务注册和发现、服务调用、服务熔断和降级、服务限流、网关)
  2. 介绍:阿里推出的致力于微服务开发的一站式解决方案,包含开发分布式应用必需组件
  3. 版本选择与说明:以github上的版本为主(官网更新不及时)
  4. 主要功能

2. Nacos

  1. 简介:服务注册中心和配置中心(Consul)(独立于第三方
    1. Nacos:Dynamic Naming and Configuration Service;官网:**www.nacos.io
    2. 介绍:一个更易于构建云原生应用动态服务发现、配置管理和服务管理中心
    3. Nacos默认是AP(性能),服务注册中心不是微服务,而是一个独立的微服务的第三方的服务注册中心项目,要在windows下运行开启,如consul agent -dev
    4. 服务注册组件的比较
  2. 下载和安装
    1. 去github上下载源码压缩包,要在windows上独立运行
    2. 解压安装包,直接运行bin目录下在命令行执行命令startup.cmd进行启动默认服务器端口是8848,启动后直接输入localhost:8848进行访问,默认账号密码都是nacos,在命令行输入shutdown.cmd进行关闭
  3. Nacos Discovery服务注册中心
    1. 注册微服务进入Nacos
      1. 建项目
      2. 改POM:引入Nacos的依赖,在官网找到正确的版本
      3. 写YML:配置自己的微服务端口号和名称对Nacos微服务进行配置,端口号是8848,如果使用配置中心,则必须要把Nacos的配置放到bootstrap.yml中,其会优先于application.yml进行配置
      4. 主启动:在主启动类上使用@EnableDiscovery注解进行标注以注册进入Nacos服务中心
      5. 业务类:使用方法根据微服务的名字调用服务提供者的方法
    2. 负载均衡
      1. Nacos是支持负载均衡的,可以使用RestTemplate+LoadBalancer(用@LoadBalancer注解标注方法)或者OpenFeign(在yml中进行配置)来进行实现
      2. 复制微服务时可以不用copy代码,而是直接对微服务进行copy,右键微服务并点击copy,然后修改微服务名配置一个参数即端口号就可实现微服务的复制![[Pasted image 20241016125650.png]]
  4. Nacos Config配置中心:实现中心化全局配置的动态变更动态刷新RefresnScope全局广播通知
    1. 通过Nacos微服务spring.cloud.alibaba.config实现全局配置动态变更,动态刷新
    2. 先从配置中心拉取配置,当使用配置中心时,会有两个配置文件,一定要将与Nacos有关的配置文件放到bootstarp.yml中将与微服务有关的配置放到application.yml中,先读取bootstarp.yml中Nacos的配置并读入全局配置
    3. 配置步骤
      1. 建项目
      2. 改POM:要引入discovery、config、bootstarp的POM依赖
      3. 写yml:bootstrap.ymlapplication.yml
        1. 要配置两个配置文件bootstarp和application,先从配置中心拉取配置
        2. 当要引入全局配置中心时,必须要在bootstarp的配置文件中对Nacos进行配置,因为其先从bootstarp.yml中读取配置文件,故一定要将Nacos的配置文件放到bootstrap文件中,然后将与微服务有关的配置放到application.yml中
      4. 主启动:要将微服务注册进入Nacos
      5. 业务类:使用 @RefreshScope注解标注业务类以实现动态刷新配置
    4. 在Nacos中添加配置:要在Nacos的微服务网站8848上创建配置信息(根据DataIa的格式创建,一个DataId对应一组相同名字的微服务),然后写了bootstarp.yml的微服务会自动读取对应的DataId
      1. DataId的组成格式每一个微服务名对应唯一的一个DataId,一个DataId对应一组名字相同的微服务,必须根据DataId的格式来创建配置中心
        2. 在Nacos的配置中心添加配置信息时,必须根据提供的格式来创建DataID,该配置会被自动加载到对应的微服务中,通过@Value(${config.info})来加载配置信息20241016132415.png]]
      2. 在Nacos中添加配置信息
        1. 创建好配置信息后点击发布,此时对应DataID的微服务就可以从Nacos中读取配置信息,并在业务类中通过@Value(“{config.info}”)来读取配置文件中的信息
        2. 创建配置信息时,配置格式DataID以及bootstrap中配置的格式必须三者相同三码合一
      3. 自动动态刷新:使用**@RefreshScope**注解在业务类上进行标注
      4. 历史配置:Nacos会记录配置文件的历史版本并默认保留30天,且支持一键回滚功能一键回滚后会出发配置刷新
      5. 流程
        1. 微服务配置了配置中心时,会创建两个配置文件bootstrap.yml和application.yml必须将与Nacos相关的信息放入bootstrap.yml中,其余的放入application;当微服务启动时,会先读取bootstrap中的配置信息,且将配置中对应DataId的配置信息加载进入微服务,注册进入Nacos并根据DataID找对应的配置信息,如果存在则将配置信息读入微服务,然后再读取application中的配置,使用@Value(“${config.info}”)来读取Nacos中配置的信息
  5. Nacos数据模型之Namespace-Group-DataId(三元组唯一确定)
    1. 问题描述
      1. 多环境多项目时,怎么对配置信息进行管理![[Pasted image 20241016134022.png]]![[Pasted image 20241016134014.png]]
    2. Namespace-Group-DataId三元组
      1. 在多项目多服务场景下,可以使用Namespace-Group-DataId对每个微服务的配置信息进行分类管理
      2. 不同的Namespace之间是隔离的通过Group对微服务进行分组每一个DataId对应一组微服务名相同的微服务
      3. 一个DataId对应一组名字相同的微服务,Namespace可以用来区分部署环境(dev\prod\test),Group可以对微服务进行分组
      4. 三者的作用
    3. Namespace-Group-DataId三种方案
      1. DataId方案:一个DataId对应一组名字相同的微服务
        1. DataId的格式:spring.cloud.application.name}-${spring.profile.active}.&{}
        2. 通过DataId的格式来配置每个微服务对应的DataId,并在Nacos中进行创建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle归档日志爆满问题处理

最近客户单位的oracle数据库出了问题,经常出现无法连接,报错提示 ORA-00257: archiver error, Connect internal only, until freed.,手动清除归档日志后可以恢复访问,但是过不了几天依旧会爆满,每日生成的归档日志很大。经过详细…

(K)MP有限状态自动机

模式匹配自动机 什么是有限状态自动机? 定义 n 个不同状态,记为 {1,2…n},在状态 i 时输入 s,达到状态 j,记为 goto (i,s)j 对于字符串 s 而言,在一个状态 i 下输入一个字符 ch,也会达到一个指…

ssh连接慢的问题或zookeeper远程连接服务超时

问题原因: 在SSH登录过程中,服务器会通过反向DNS查找客户端的主机名,然后与登录的IP地址进行匹配,以验证登录的合法性。如果客户端的IP没有域名或DNS服务器响应缓慢,这可能导致SSH登录过慢。为了解决这个问题&#xf…

尤雨溪都打赏的虚拟列表组件,到底有多强

尤雨溪都打赏的虚拟列表组件,到底有多强? 在前端开发中,性能优化永远是绕不开的主题。今天就带你看看 vue-virtual-scroller,一款让你滚动页面时流畅得像火箭一样的 Vue 组件。本文将简单介绍这个组件的主要功能、技术特点&#x…

理解和检测横向运动

希望对组织发起勒索软件攻击的威胁行为者能够使用被盗的凭据进入用户的电子邮件帐户。利用鱼叉式网络钓鱼技术和侦察,威胁行为者向 IT 部门发送电子邮件,要求提供重要网络应用程序的凭据。他们获得凭据,深入网络,并开始发起勒索软…

JavaWeb合集07-MyBatis

七、MyBatis MyBatis是一款优秀的持久层(dao)框架,用于简化JDBC的开发。 MyBatis本是Apache的一个开源项目iBatis, 2010年这个项目由apache迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。 官网:https://mybati…

Axure重要元件三——中继器查询和统计

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 本节课:中继器查询页数 课程内容:查询中继器页面、自动统计页数、自动统计数据条数、上一页下一页 应用场景:表单的查询、表单的基本…

10秒钟用Midjourney画出国风味的变形金刚

上魔咒 Optimus Prime comes from the movie Transformers, Chinese style, Wu ShanMing, Ink Painting Halo Dyeing, Conceptual of the Digita Art, MasterComposition, Romantic Ancient Style, Inspired by traditional patterns and symbols, Minimalism, do not con…

【数据分享】全国资源和环境-环境污染治理投资(1998-2021年)

数据介绍 一级标题指标名称单位指标解释资源和环境环境污染治理投资总额亿元环境污染治理投资指在污染源治理和城市环境基础设施建设的资金投入中,用于形成固定资产的资金,其中污染源治理投资包括工业污染源治理投资和“三同时”项目环保投资两部分。环…

ssm基于SSM的社区管理系统+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 [2 系统…

1.2024.10.17

2024.10.17 总体规划 总体规划 写这个合集的原因 记录自己入行之前成长过程。本人菜鸟一枚,大佬不喜勿喷。 目前的规划 更新频率 尽量一天一更,会更新之前发布的笔记,争取笔记更加完善。 学习方法 目标 通过面试,成功入行嵌…

Tailwind css系列教程(三)

vue3环境搭建Tailwind CSS 1、创建vue3项目 创建项目:npm create vitelatest vue3app01 --template vue 进入项目文件夹:cd vue3app01 加载默认库:npm install 测试运行:npm run dev 2、搭建tailwind css (1&a…

Ionic 对话框

Ionic 对话框 Ionic 是一个强大的开源框架,用于构建高性能、高质量的移动和桌面应用程序。它基于流行的 Web 技术如 HTML、CSS 和 JavaScript,并且与 Angular、React 和 Vue 等前端框架紧密集成。Ionic 提供了一套丰富的组件,其中包括对话框…

C++面试速通宝典——27

504. 孤儿进程和僵尸进程是什么?怎么处理? 孤儿进程:当一个父进程结束,而他的一个或多个子进程还在运行时,那些子进程将成为孤儿进程。孤儿进程会被init进程(进程ID为1)自动领养,in…

2010年国赛高教杯数学建模C题输油管的布置解题全过程文档及程序

2010年国赛高教杯数学建模 C题 输油管的布置 某油田计划在铁路线一侧建造两家炼油厂,同时在铁路线上增建一个车站,用来运送成品油。由于这种模式具有一定的普遍性,油田设计院希望建立管线建设费用最省的一般数学模型与方法。   1. 针对两炼…

在线考试系统的现代化解决方案:Spring Boot与JavaWeb

3系统分析 3.1可行性分析 通过对本基于JavaWeb技术的在线考试系统设计与实现实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于JavaWeb技术的在线考试系统设…

10 排序算法:冒泡排序与快速排序(算法原理、算法实现、时间和空间复杂度分析)

目录 1 十大常见的排序算法 1.1 算法的稳定性 2 冒泡排序 2.1 算法原理 2.2 算法实现 2.3 时间空间复杂度分析 2.3.1 时间复杂度分析 2.3.2 空间复杂度分析 3 快速排序 3.1 算法原理 3.1.1 排序思想 3.1.2 递归过程 3.2 示例 3.2.1 示例 1 3.2.2 示例 2 3.2.3 …

设计一个支持自动化测试执行的测试框架

设计一个支持自动化测试执行的测试框架 在现代软件开发中,自动化测试是确保软件质量的重要手段。一个良好的测试框架不仅可以提高测试效率,还能帮助开发团队快速发现和修复缺陷。本文将介绍如何设计一个支持自动化测试执行的测试框架,涵盖框架的基本结构、核心功能以及实现…

JAVA 中系统相关的类

System 类 代表的是当前 Java 程序运行的平台(操作系统),该类被关键字 final 修饰,即该类不能够派生子类,同时该类的构造器被关键字 private 修饰,因此不能够创建 System 类型的实例对象。 System 类中定…

【数据采集工具】Sqoop从入门到面试学习总结

国科大学习生活(期末复习资料、课程大作业解析、大厂实习经验心得等): 文章专栏(点击跳转) 大数据开发学习文档(分布式文件系统的实现,大数据生态圈学习文档等): 文章专栏(点击跳转&…