- 博客(32)
- 收藏
- 关注
原创 DNS域名解析过程
在学习DNS域名解析之前,我们先要弄懂几个前提概念。DNS是一个应用层的协议,和HTTP、SMTP、FTP等这些协议同属于一个级别DNS协议要依赖的传输层协议是UDP,其使用UDP的53号端口。现在我们明白了DNS协议是在哪一层,有哪些层间依赖,下面我们来粗略了解一下IP地址概念。IP地址是互联网上每一台计算机唯一的逻辑地址,通过IP地址我们可以实现不同计算机之间的互相通信,每台联网计算机都需要通过IP地址来互相联系和分别。
2024-01-07 20:27:50
1097
原创 统一网关Gateway
请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器。我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件。在我们的微服务中,有一部分业务是为了给内部人员使用,或者是内部开发人员才能访问的敏感服务,外界用户是不能够进行访问的。@Order注解是顺序注解,value值为int, value值越小,该过滤器的优先级越高。
2023-06-02 14:31:21
152
原创 Eureka&Nacos注册中心+Ribbon负载均衡
4、修改user-service和order-service中的application.yml文件,注释eureka地址,添加nacos地址。即之前所说的,需要统一进行修改的配置,我们只需要在Nacos中提那家一个配置列表,然后可以实现对所有服务的配置进行修改。2、配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改(Eureka采用AP方式。2、采用心跳检测服务提供者的时候,临时实例如果挂了,直接剔除,非临时实例挂了的话,则会等待恢复。
2023-05-31 11:37:19
839
1
原创 微服务技术栈导学
谈到微服务技术,很多人都会首先想到SpringCloud但其实并不是这样的因为微服务其实是分布式架构的一种所谓分布式架构,即将服务作拆分,在拆分的过程中,需要有各种问题去解决,SpringCloud仅仅解决了服务拆分时的服务治理问题在我们大型互联网平台开发的过程中,会将业务拆分成一个个单独的模块,然后再进行服务集群比如一个请求过来之后,可能先去调用了服务A,服务A又调了服务C,服务C再去调用服务D如此一来,可能会造成大量的互相调用拉扯,非常的麻烦所以我们的微服务中一定会有一个组件,叫做注册中心。
2023-05-31 11:13:59
93
原创 MyBatis学习笔记
为什么要学习MyBatis技术?MyBatis框架是干什么的?首先需要了解一下ORM,即Object Relation Mapping->对象关系映射。这里的对象指的是java对象,关系指的是数据库中的关系模型。而对象关系映射,也就是ORM,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,Java类中的属性和数据表中的列一一对应。
2023-05-18 21:48:09
1477
原创 SpringMVC学习笔记
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据一类称为实体类Bean:专门存储业务数据的,比如Student、User等一类称为业务处理Bean:指Service或Dao对象,专门用于处理业务逻辑和数据访问V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器MVC的工作流程:用户通过。
2023-05-18 16:43:05
1250
原创 Tomcat概述
Tomcat概述一、JavaWeb概念1.引入2.Web资源的分类3.常用的Web服务器二、Tomcat服务器1.Tomcat文件2.启动Tomcat服务器3.Tomcat的停止4.如何修改Tomcay的端口号5.如何部署web工程到Tomcat中三、IDEA整合Tomcat服务器1.配置Tomcat服务器2.创建动态web工程3.如何在IDEA中部署工程到Tomcat上运行。
2023-05-16 21:03:10
228
原创 Spring5(IOC+AOP)
AOP是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,它以通过预编译方式和运行期动态代理方法实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。
2023-05-16 14:13:27
131
原创 MySQL进阶篇之三:SQL优化
limit分页查询在大数据量的时候,查询效率同样会非常的慢,例如一个常见又非常头疼的问题就是limit 2000000,10 此时需要MySQL排序前200010条记录,仅仅返回200000-2000010的记录,其他记录丢弃,查询排序的代价非常大。①Using filesort:通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫FileSort排序。(因为索引字段相当于上的行锁,非索引字段上的表锁)。
2023-04-17 20:56:52
431
原创 MySQL进阶篇之二:索引
介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。演示查找语句:select * from user whereage=45;无索引:在无索引的情况下,我们需要对整张表从第一个指针位开始,依次查找表中的所有字段,就算有一个字段的age=45,我们仍然需要查下去,因为后面的地址中可能还会存在age=45的字段。有索引。
2023-04-16 20:18:11
224
原创 JavaScript
JavaScript目录JavaScript一、JavaScript介绍二、JavaScript和HTML代码的结合方式1.第一种方式2.第二种方式三、JavaScript语法1.变量2.关系(比较)运算3.逻辑运算4.数组☆☆☆☆☆5.函数☆☆☆☆☆5.1函数的第一种定义方式5.2函数的第二种定义方式5.3函数arguments隐形参数(只在function函数内)六、JS中的自定义对象1.Object形式的自定义对象2.{}花括号形式定义对象七、JS中的事件1.onload加载完成事件2.onclic
2023-04-10 22:44:35
70
原创 操作系统之六:死锁
文本主要讲述了什么是死锁、进程死锁,饥饿,死循环的区别、死锁产生的必要条件、什么时候会发生死锁,以及死锁的处理策略(预防死锁、避免死锁、死锁的检测和解除),同时细致讲解了避免死锁的银行家算法。
2023-04-09 16:18:09
582
原创 MySQL基础篇之八:事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。正常情况下银行中张三给李四转账的案例:异常情况下:此时我们的转账失败了,但是白白丢失了1k!但是用事务控制的话,这三个操作为一个集合,要成功都成功,要失败都失败!就可以解决这种“钱丢了”的异常。
2023-04-08 00:27:42
394
原创 操作系统之四:进程的同步与互斥
一、进程同步和进程互斥1.1思维导图1.2进程同步1.3进程互斥二、进程互斥的软件实现方法2.1思维导图2.2单标志法2.3双标志先检查2.4双标志后检查2.5Peterson算法三、进程互斥的硬件实现方法3.1思维导图3.2中断隐藏方法3.3TestAndSet指令3.4Swap指令四、信号量机制4.1思维导图4.2概述4.3整型信号量4.4记录型信号量五、用信号量机制实现进程互斥、同步、前驱关系5.1思维导图5.2实现进程互斥5.3实现进程同步5.4实现进
2023-04-06 13:50:41
5123
原创 MySQL基础篇之七:多表查询
MySQL多表查询指的是从多张表中查询数据回忆单表查询:select * from emp;最简单的多表查询(笛卡尔积)笛卡尔积:笛卡尔乘积是指在数学中,两个集合A和B的所有组合情况。(在多表查询的时候,需要消除无效的笛卡尔积)。我们现在同时查询emp员工表和dept部门表的所有数据我们可以看到,现在一共有102条数据,数据的组成是:17条员工表数据*6条部门表数据。添加一个条件,即emp表的dept_id等于dept表的id即可。
2023-04-05 23:23:29
1975
2
原创 MySQL基础篇之六:约束
例如:现在有一张员工表,员工表中dept_id字段表示当前员工属于哪个部门,关联部门表的主键,那么此时我们的dept_id就是当前员工表的外键。比如,我在部门表中删除了id为1的研发部,但是此时员工表中的dept_id为1的员工并没有被关联性删除。字段被定义为自增约束,我们在插入数据的时候不用定义id的值,他的值默认会+1;例如:给emp表的dept_id添加外键,关联部门表的主键id。此时我们再选择删除部门表的id为1的部门时,就会报错。列被定义为非空约束,确保其值在添加的过程中不能为空。
2023-04-04 17:38:12
249
原创 MySQL基础篇之五:内置函数
MySQL函数是一种可重用的代码块,用于执行特定任务并返回结果。函数可以简化复杂查询和数据处理操作,并允许我们在查询过程中实现自定义逻辑。
2023-03-31 23:33:16
151
原创 操作系统之三:处理机调度
时间片轮转(Round-Robin)调度算法是一种基于时间片的CPU调度算法,它将CPU分配给各个进程,并按照一定时间间隔进行切换。整个系统的时间被分成一段段的时间片,在每个时间片内,CPU只执行一个进程,并在时间片结束时强制进行上下文切换,将CPU分配给另一个等待执行的进程。优点:这种算法能够保证所有就绪进程都能够得到公平的机会占用CPU资源,并且可以有效地避免某些进程过长占用CPU导致其他进程无法运行的情况。同时,由于每个时间片较短,因此对于交互式进程或需要及时响应的应用程序来说,用户体验也更加流畅。
2023-03-31 12:01:30
3354
原创 Redis一文从入门到精通
NoSQL,即“Not Only SQL”,泛指非关系型数据库。NoSQL不依赖业务逻辑方式存储,而是以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。即不遵循SQL标准,不支持ACID,远超于SQL的性能(查询效率更高)。对数据高并发的读写海量数据的读写对数据高扩展性的Redis就是一个开源的key-value存储系统,它支持存储的value类型相对更多,包括String、list、set、zset(有序集合)和hash;
2023-03-28 13:33:29
928
原创 操作系统之二:进程与线程
在我们的计算机发展中,自从引入多道程序技术之后,我们的计算机可以并发的执行多个程序。既然内存中同时放入了多道程序,并且各个程序的代码、运算数据存放的位置不同,那么我们的操作系统要怎样才能找到各程序的存放位置?我们在运行过程中,每个正在运行的程序当前被分配了哪些系统资源,这些信息也是需要记录下来的,这样才可以方便操作系统管理,因此引入了进程和进程实体的概念。为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体概念。PCB、程序段、数据段三部分构成了进程实体(进程映像)。
2023-03-27 10:45:29
698
原创 操作系统之一:入门概述
在介绍操作系统的概念之前,我们先来看一下平时生活中的计算机系统的层次结构:我们在购入一台机器后,如何使用QQ?买一台裸机,然后基于硬件底层安装Windows操作系统,再在Windows操作系统上安装QQ,然后就可以开启软件,并使用QQ了。常见的操作系统有Windows、Linux、MacOS、安卓、Linux什么是操作系统?是系统最基本、最核心的软件,属于系统软件控制和管理整个计算机硬件和软件资源合理的组织、调度计算机的工作与资源的分配为用户和其它软件提供方便的接口和环境。
2023-03-26 14:55:24
831
原创 JavaSE模板化的IO流
IO流 首先说明一下本章主要学什么,IO流,其实就是升级版的File文件操作,在本章通过学习一些流,调用相应的方法,就可以实现从程序到文件,再从文件到程序的相应操作,而这一章节的代码也比较模板化,因此只需要记住基本的流,基本的使用方法,具体应用可以在项目中进行实践。一、流的三种分类方式1.流向输入流、输出流2.数据单位字节流、字符流3.流的角色节点流、处理流二、流的结构体系在这里只提供一些常用常见的流这个表其实也不用记,看一眼,知道有啥东西就行了,重点在后边。分类字节输
2022-04-01 13:35:11
503
5
原创 JavaSE网络编程入门
Java网络编程入门一、网络编程中的两个主要问题1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效地进行数据传输二、网络编程中的两个要素1.对应问题一:IP和端口号2.对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路)三、通信要素一:IP和端口号1.IP的理解1.IP:唯一的标识Interent上的计算机(通信实体)2.在Java中使用InetAddress类表示IP3.IP分类:IPv4和IPv6;万维网
2022-03-31 16:55:12
1571
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人