- 博客(71)
- 收藏
- 关注
原创 3 分布式文件系统
Minio使用纠删码技术来保护数据,它是一种恢复丢失和损坏数据的数学算法,它将数据分块冗余的分散存储在各各节点的磁盘上,所有的可用磁盘组成一个集合,上图由8块硬盘组成一个集合,当上传一个文件时会通过纠删码算法计算对文件进行分块存储,除了将文件本身分成4个数据块,还会生成4个校验块,数据块和校验块会分散的存储在这8块硬盘上。它一大特点就是轻量,使用简单,功能强大,支持各种平台,单个文件最大5TB,兼容 Amazon S3接口,提供了 Java、Python、GO等多版本SDK支持。
2024-02-01 19:48:08 1144
原创 2 搭建模块环境
我们启动项目中传入spring.profiles.active的参数决定引用哪个环境的配置文件,例如:传入spring.profiles.active=dev表示使用dev环境的配置文件即content-service-dev.yaml。因为刚才说了dataid第一部分就是spring.application.name,nacos 客户端要根据此值确定配置文件 名称,所以spring.application.name不在nacos中配置,而是要在工程的本地进行配置。
2024-01-26 21:43:13 1044
原创 5 新增课程
此时就用到了分组校验,同一个属性定义多个校验规则属于不同的分组,比如:添加订单定义@NULL规则属于insert分组,更新订单定义@NotEmpty规则属于update分组,insert和update是分组的名称,是可以修改的。根据前边对内容管理模块的数据模型分析,课程相关的信息有:课程基本信息、课程营销信息、课程图片信息、课程计划、课程师资信息,所以新增一门课程需要完成这几部分信息的填写。@ApiModel(value="AddCourseDto", description="新增课程基本信息")
2024-01-25 19:22:44 828
原创 4 课程分类查询
mysql为了避免无限递归默认递归次数为1000,可以通过设置cte_max_recursion_depth参数增加递归深度,还可以通过max_execution_time限制执行时间,超过此时间也会终止递归操作。如果没有此po类则需要生成的此表的po类拷贝到内容管理模块的model工程中,将mapper拷贝到内容管理模块的service工程中。//下边开始往ChildrenTreeNodes属性中放子节点。如果树的层级固定可以使用表的自链接去查询,比如:我们只查询两级课程分类,可以用下边的SQL。
2024-01-24 21:45:49 1141
原创 8.Gateway服务网关
过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?① 对所有路由都生效的过滤器需求:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:参数中是否有authorization,authorization参数值是否为admin如果同时满足则放行,否则拦截实现:import org。
2024-01-23 20:55:28 1255
原创 7.Feign远程调用
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。
2024-01-23 20:50:59 906
原创 5.Nacos注册中心
国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。
2024-01-23 19:40:07 925
原创 4.Ribbon负载均衡
SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表。
2024-01-23 19:32:41 1296
原创 3.Eureka注册中心
假如我们的服务提供者user-service部署了多个实例,如图:大家思考几个问题:这些问题都需要利用SpringCloud中的注册中心来解决,其中最广为人知的注册中心就是Eureka,其结构如下:回答之前的各个问题。问题1:order-service如何得知user-service实例地址?获取地址信息的流程如下:问题2:order-service如何从多个user-service实例中选择具体的实例?问题3:order-service如何得知某个user-service实例是否依然健康,是不是已经宕机?
2024-01-23 19:26:37 1584
原创 1 认识微服务
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。
2024-01-22 21:48:05 1462
原创 02 字节码文件详解
字节码文件中保存了源代码编译之后的内容,以二进制的方式存储,无法直接用记事本打开阅读。软件使用文件的头几个字节(文件头)去校验文件的类型,如果软件不支持该种类型就会出错。来确定文件类型的,文件扩展名可以随意修改,不影响文件的内容。版本号的作用主要是判断当前字节码的版本和运行时的。字节码文件的组成部分-Magic魔数。版本的标识,一般只需要关心主版本号。Java字节码文件中,将文件头称为。字节码文件的组成部分-主副版本号。主副版本号指的是编译字节码文件的。以正确的姿势打开文件。工具查看字节码文件。
2024-01-22 21:35:24 414
原创 初识 JVM
1、JVM到底是什么?JVM全称是JavaVirtualMachine,中文译名Java虚拟机,是一个运行在计算机上的程序,他的职责是运行Java字节码文件。2、JVM的三大核心功能是什么?JVM 包含内存管理、解释执行虚拟机指令、即时编译三大功能。3、常见的JVM虚拟机有哪些?常见的JVM有HotSpot、GraalVM、OpenJ9等,另外DragonWell龙井JDK也提供了一款功能增强版的JVM。其中使用最广泛的是HotSpot虚拟机。
2024-01-22 18:37:20 925
原创 黑马程序员 Docker笔记
本篇学习笔记文档对应B站视频:暂时无法在飞书文档外展示此内容同学们,在前两天我们学习了Linux操作系统的常见命令以及如何在Linux上部署一个单体项目。大家想一想自己最大的感受是什么?我相信,除了个别天赋异禀的同学以外,大多数同学都会有相同的感受,那就是麻烦。核心体现在三点:命令太多了,记不住软件安装包名字复杂,不知道去哪里找安装和部署步骤复杂,容易出错其实上述问题不仅仅是新手,即便是运维在安装、部署的时候一样会觉得麻烦、容易出错。特别是我们即将进入微服务阶段学习,微服务项目动辄就是几十台、上百台服务需要
2024-01-13 16:26:25 1235
原创 海盗分金博弈
表决时,5号海盗会同意,因为前面已经说过,如果5号海盗不同意这一分配方案,2号海盗就会被丢进大海,那么他只能得到1枚金币,但如果同意2号海盗的分配方案,他却可以得到2枚金币,他肯定选择后者。因为假如前面三位都被扔进大海,只剩下他和4号海盗的时候,4号海盗一定会提出这样的分配方案,那就是100:0,就是4号海盗分100枚金币,5号0枚。表决结果是5号海盗无法改变的。因此1号海盗的分配方案就应该从处于劣势的3号海盗和4号海盗入手,分给3号海盗1枚金币,分给4号海盗一枚金币,具体方案是98:0:1:1:0。
2023-11-20 20:23:31 192
原创 第2章 内容管理模块v3.1
{"id":24,"courseId":75,"teacherName":"王老师","position":"教师职位","introduction":"教师简介","photograph":null,"createDate":null}{"id":24,"courseId":75,"teacherName":"王老师","position":"教师职位","introduction":"教师简介","photograph":null,"createDate":null}
2023-11-19 11:12:19 311
原创 黑马程序员 学成在线项目 第1章 项目介绍&环境搭建v3.1
内容管理模块,是对平台上的课程进行管理,课程的相关信息比较多这里在数据库设计了课程基本信息表、课程营销表、课程计划、课程师资表进行存储 ,培训机构要发布一门课程需要填写课程基本信息、课程营销信息、课程计划信息、课程师资信息,填写完毕后需要提交审核,由运营人员进行课程信息的审核,整个审核过程是程序自动审核加人工确认的方式,通常24小时审核完成。软件总体分为两类:系统软件和应用软件,应用软件包括:运营类、管理类、工具类等,运营类的项目由运营商按照企业的商业模式去运营,比如:外卖项目、滴滴打车、在线教育等;
2023-11-18 16:13:50 505
原创 狂神说笔记 快速入门Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2023-11-16 22:20:20 438
原创 黑马程序员微服务 分布式搜索引擎3
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。
2023-11-15 20:58:35 1984 1
原创 黑马程序员微服务 第五天课程 分布式搜索引擎2
match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段range查询:根据数值范围查询,可以是数值、日期的范围query:查询条件from和size:分页条件sort:排序条件highlight:高亮条件。
2023-11-15 16:33:20 1114
原创 黑马程序员微服务第四天课程 分布式搜索引擎1
什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。
2023-11-14 21:15:19 1272
原创 第三天课程 RabbitMQ
基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息。
2023-11-14 21:13:25 499
原创 Centos7安装Docker
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为stabletest和nightly三个更新频道。官方网站上有各种环境下的,这里主要介绍 Docker CE 在 CentOS上的安装。
2023-11-12 15:49:48 149
原创 VMware重装后没有虚拟网卡
教程地址:【如何解决虚拟机安装后没有显示虚拟网卡的问题】 https://www.bilibili.com/video/BV1Y14y1d7at/?我重装VMware之后网络适配器里面没有虚拟网卡,找了CSDN上很多博主说的,都没用。ccleaner清理工具:https://www.ccleaner.com。要用下面两个软件清理一下残留文件,这两个软件都很小,大家放行下载。原因是因为第一次安装后卸载不干净,软件在电脑上的注册表没有删掉。
2023-11-12 15:09:36 622
原创 黑马程序员微服务Docker实用篇
*数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。
2023-11-12 10:47:41 1066 1
原创 桶排序-1184:明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。有2行,第1行为1个正整数,表示所生成的随机数的个数:N;第2行有N个用空格隔开的正整数,为所产生的随机数。
2023-08-13 21:51:28 333
原创 硬币组合问题
给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。3 10 //3种面值组成面值为10的方案。但是只有70分,搞了一上午也不知道哪里错了。10 //有10种方案。1 //面值1。2 //面值2。5 //面值5。
2023-08-12 11:55:14 199
原创 1323:【例6.5】活动选择
现在给出nn个活动使用礼堂的起始时间beginibegini和结束时间endi(begini<endi)endi(begini<endi),请你帮助办公室人员安排一些活动来使用礼堂,要求安排的活动尽量多。学校在最近几天有nn个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。接下来的nn行,每行两个整数,第一个beginibegini,第二个是endi(begini<endi≤32767)endi(begini<endi≤32767)。输出最多能安排的活动个数。
2023-08-11 16:50:31 161
原创 零钱兑换-输出组合数
(2)从大的硬币到小的硬币,可以减少循环次数。剩余金额大于0,继续递归。如果要输出方案的话要用栈,让gpt写一下。剩余金额等于0,有解。(1)剩余金额小于0,无解。
2023-08-11 16:47:43 134
原创 第三天课程上午
(1) 初始化一个饼图 echarts.init(dom) mounted钩子实现。* (2) 根据数据实时更新饼图 echarts.setOption({ ... })// 2. 更新到 list 中,用于页面渲染 v-for。// 2. 让input框获取焦点 inp.focus()// 1. 等input框渲染出来 mounted 钩子。* (1) 注册点击事件,传参传 id。* (2) 根据 id 发送删除请求。* (3) 需要重新渲染。
2023-08-09 11:09:47 156
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人