自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式课阶段性总结

2.明确概念,其实在学习的过程中,有很多的内容是我们概念不是十分的清楚而导致的,我们的理解和别人所说的是不一致的,要不然就是理解了其中的一部分,另一部内容给忽略掉了,其实世界上并没有什么新的概念,都是由公里一步一步组成而来的,只要我们把所谓的新概念中每一个已知的概念明确了之后,新概念自然而然也就不新了,所以当我们拿到一个所谓的新概念的时候,我们需要把这个概念进行一个拆分,拆分成一个跟我们非常熟悉的小颗粒,把每一个的小颗粒明确了组成起来就是新的概念。并且能够非常清楚的知道代码是如何展示的,如何执行的。

2023-02-01 08:21:21 186 2

原创 项目实战-错误日志分析

任何一个系统在使用的过程中会难免会出现一个错误,但是出现错误之后怎么能够更快速更准确的定位到问题的位置是关键的。其实打印日志信息和开发功能是同等重要的,只有我们在开发功能的时候把打印错误信息配置了,那在以后我们解决发生问题的时候才能提高定位问题的效率。2、我们有了一个大概的了解之后看蓝色部分提示我们错误的类型是什么以及错误类型的地址什么,图中提示的错误类型是ApplicationContextException:应用程序上下文初始化期间引发异常。3.记录用户操作的审计日志。1.快速定位问题的位置。

2023-01-30 10:57:06 14

转载 如何设计一个 70w 在线人数的弹幕系统

数据更新的策略是服务会定期发起RPC调⽤从弹幕服务拉取数据,拉取到的弹幕缓存到内存中,这样后续的请求过来时便能直接⾛走本地内存的读取,⼤大幅降低了调用时延。同时,采用柔性的处理方式,拉取用户头像、敏感词过滤等分支在调用失败的情况下,仍然能保证服务的核心流程不受影响,即弹幕能够正常发送和接收,提供有损的服务。如果打开Http的Keepalived开关,还可以节约握手的时间。要设计一款优秀的弹幕系统,首先要考虑人多的时候弹幕响应的完整性、保证弹幕不卡顿不丢失的问题并且要确保系统的稳定性可靠性。

2023-01-26 12:15:55 10

原创 项目实战-产品设计

完成之后进行了第二版的验收。但是在验收的过程中提出不能直接结束一个活动,因为活动属于一个课程班级的具体内容,因为我们用的是面向对象的思想,面向的是一个课程而不是一个活动,并且活动的检验在做课的过程中就需要进行检测,管理员关注的并不是单单一个活动而是一个课程班级,带着提出来的建议我们进行了第四版的绘制。优化完之后进行验收,这次的验收方式是以角色扮演的形式,我们有的人扮演管理员有的人扮演教师。管理员可以给老师停止课程,把课程中的活动整改完毕之后在进行推课"对于这个需求的原型设计用了4天的时间,迭代更新了八次。

2022-12-30 10:35:46 50

原创 依赖到委托中反射的奥秘

最近在上设计模式课的时候一直在研究依赖关系,包括依赖是什么,依赖才代码中是如何体现的以及依赖关系的和其他类的耦合度。在我们阶段性研究完依赖的时候发现,两个类之间产生依赖关系的耦合度太强,为什么这样说的,因为在我们写的小例子中米老师依赖何老师或者何老师依赖米老师都需要两个类之间产生这种直接关系,所以为了使两个类之间的关系变得更弱引入了委托的概念,委托就好比一个第三方,两个类之间彼此都不认识但是委托是认识两个类的,所以通过委托就可以实现米老师让何老师开门,米老师依赖何老师这样的小例子。

2022-12-24 10:53:57 38

原创 注解阶段性总结

前几天通过对于注解的学习,对于注解有了一个非常深刻的认识,注解是一个元数据,是用来描述数据的数据。并且注解的定义、注解解释器、注解的使用等和代码都能够对应上。对于我们自己编写的注解(自定义注解),也总结出了对应的套路:首先定义注解,在定义注解的时候需要使用到元注解,对自定义注解的使用范围和作用时间进行了设置,然后编写注解解释器也就是我们要给注解传入的一些信息。在讨论根据给注解赋的值编写对应的业务逻辑的时候,用到了反射,使用过类.class这种方式获取的类模板,接下来就引起了对于反射三种凡是的讨论。

2022-12-24 10:42:35 21

原创 Zabbix-实现钉钉群报警

Zabbix报警通知发送到钉钉群组钉钉报警时基于zabbix,访问钉钉应用接口去推送的报警消息,所以我们需要一个在钉钉创建一个报警应用。目前的版本信息为:Zabbix:4.0.7、Python:2.7.51、创建群组、添加告警机器人钉钉的聊天界面,点击发起群聊: 钉钉要3个人才能建群,所以需要添加两个人即可。2、点击群设置 → 智能群助手 → 添加更多 → 添加机器人 → 自定义 : 3.点击添加,输入机器人名字即可4.生成了一个 webhook ,先复制,后面会用到。 1、创建脚本:/alerts

2022-12-22 21:10:30 47

原创 Zabbix-客户端部署

zabbix是一个基于web界面的提供分布式系统监控以及网络监视功能的企业级的开源解决方案,zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。下面我们来部署zabbix的客户端。

2022-12-22 19:46:31 31

原创 Java-元注解

元注解是负责对其它注解进行说明的注解,自定义注解时可以使用元注解。Java5 定义了 4 个注解,分别是 @Documented、@Target、@Retention 和 @Inherited。Java 8 又增加了 @Repeatable 和 @Native 两个注解。这些注解都可以在 java.lang.annotation 包中找到。

2022-12-22 11:09:03 14

原创 依赖到委托中反射的奥秘

最近在上设计模式课的时候一直在研究依赖关系,包括依赖是什么,依赖才代码中是如何体现的以及依赖关系的和其他类的耦合度。在我们阶段性研究完依赖的时候发现,两个类之间产生依赖关系的耦合度太强,为什么这样说的,因为在我们写的小例子中米老师依赖何老师或者何老师依赖米老师都需要两个类之间产生这种直接关系,所以为了使两个类之间的关系变得更弱引入了委托的概念,委托就好比一个第三方,两个类之间彼此都不认识但是委托是认识两个类的,所以通过委托就可以实现米老师让何老师开门,米老师依赖何老师这样的小例子。

2022-12-21 09:32:23 7

原创 Nginx-负载均衡

负载均衡的意思是在服务器集群中,需要有一台服务器作为调度者,客户端所有的请求都有调度者接收,调度者再根据每台服务器的负载情况,将请求分配给对应的服务器去处理。

2022-12-21 08:52:13 315

原创 Nginx-反向代理

用户直接访问反向代理服务器就可以获得目标服务器的资源。这一过程叫反向代理。

2022-12-20 20:27:51 262 1

原创 Nginx-安装和部署全过程

OpenResty是一个基于Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty® - 中文官方站Nginx是一款高性能的HTTP服务器和反向代理服务器,同时支持IMAP/P0P3/SMTP代理服务。官方测试nginx能支持5万并发链接。并且cpu、内存等资源消耗却非常低,运行非常稳定,用C语言编写。

2022-12-20 16:01:31 224

原创 重定向和反向代理的区别

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向),可以简单理解为当我们要访问的资源不在此服务器上,那么客户端就会将请求转移到另一个服务器上去访问资源。转换请求这一部分是有客户端来完成的,用户如果不刻意查看是感觉不到的。其实是请求了两个获取到的资源,我们请求的URL地址也会发生变化。接下来让我们看看重定向的现象。

2022-12-20 11:25:20 69

原创 Docker-DockerFile制定镜像

DockerFile是一个用来编写Docker镜像的文本文件,文本内容包含了一条条构建镜像所需要的指令和说明。DockerFile就想要一个脚本文件一样。把我们想要执行的操作放到文本文件里,一键执行。这样我们就可以复用这个DockerFile文件了。在别的服务器上执行这个文件也就会产生一个一模一样的Docker镜像。

2022-12-20 10:00:26 297

原创 关于Java代码如何项目部署

然后通过项目中安装的maven进行对代码打包操作,通过jenkins的构建功能将jar包放到对应的服务器上运行对应的服务,在jenkins上配置了对应的操作命令。在研究注解的时候会用到反射,在学习反射的时候会涉及到关于class文件的生成,以及Class文件是如何被执行的等一系列关于文件转换的问题,接下来就借助学习反射来学习一下项目整体部署的过程和每个阶段要生成的文件.通过IDEA中引入jdk,有jdk来帮助我们把我们写好的java文件编译成class文件也就是我们所说的字节码文件。减少了打包部署的过程。

2022-11-24 01:11:20 325

原创 Mybatis提示Tag name expected的问题

当我们在mapper中编写sql语句的时候会发现使用"

2022-11-19 21:20:13 90

原创 短短三天的蜕变

通过这几天对体测项目功能的添加和优化,感觉自己站在师哥师姐们的肩膀上学习到了很多内容。当然自己也有很多地方是需要进一步提升的。对于体测功能的添加和优化整体来说收获和成长还是占大部分的。从心态上到技术上再到思维逻辑上都有提升。接下来就通过不同的阶段来叙述一下自我的收获以及如何面对接下来的一些任务。

2022-11-18 21:15:00 138 2

原创 2022年10月自考总结

这一次的自考感觉不是很理想,因为对于这一次的自考在时间管理方法很欠缺,基本上都是在马上快自考的时候学习的,虽然说这次考的科目相对来说比较简单在之前有学习过。所有还是需要花费一些时间在自考学习上的,而且自考的学习不仅仅是为了考试还是在我们平时项目开发的过程中,排查问题的过程中能给我们提供思路和方向。当然学习的方法是很重要的。上次学习自考的时候,对于自考花费的时间就比较长,每天都有在计划中安排自考的学习。考试的结果不是目的,最重要的是在这个学习的过程中对于学习方法的应用,和对于新知识结构化能力的一个锻炼。

2022-10-29 21:05:41 236 1

原创 Docker-安装部署全过程

Docker要求CentOS7系统的内核版本高于3.10。

2022-09-13 09:59:03 282

原创 Docker-介绍及生命周期

Docker是一个应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。

2022-09-13 09:11:45 302

原创 JavaWeb-Filter过滤器

过滤器顾名思义就是筛选一些不需要,不安全的信息或者请求。Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器。开发人员可以通过Filter技术,能够实现对所有Web资源的管理,如实现权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。2.重写过滤器的方法3.在web.xml中配置Filter过滤器·...

2022-07-14 17:26:15 106

原创 Error:Unable to connect to the localhost:1099

在我们配置好Tomcat之后去执行,会出现Unable to connect to the localhost:1099这个问题,这个问题是因为我们运行的是本地的代码而不是远程的代码,所以在配置tomcat的时候需要选择local而不是remote。

2022-06-25 16:29:50 1267

原创 Error:Remote staging type or host is not specified.

在IDEA中配置Tomcat的过程中提示Error:Remote staging type or host is not specified.是因为我们没有选择对应的Remote Staging 我们将Remote staging中Type和Host选择Same file system,应用保存即可

2022-06-25 15:35:12 746

原创 简单几行代码背后的重大意义

最近在和老师一起研究同一个程序通过每次只修改一点点,不改变程序原本的意思。通过每次修改一点点来体会修改后有哪些巨大的进步。接下来就让我们拿版本一和版本二进行分析。版本一版本二 感觉没有什么特别的,版本二只是在版本一的基础上增加了两个变量,变得更灵活了,可以不再是数据5和6。1.从版本二到版本一从确定的5和6两个数字到任意两个数字,并且引入变量之后a不仅仅可以等于5也可以等于5+6或者5+6+7+...+100等等。实现了从有限到无限的扩展,从两个确定数相加到两个任意数...

2022-06-19 09:59:46 61

原创 多态 deep learn

对于一个新知识的学习,我们要思想上移,行动下移。我们要把我们学到的知识落实到实处。就像我们把每个概念和代码进行一一对应。而不是停留在口头上。只有我们把概念和代码能够一一对应之后,那在以后我们编写代码的时候才能够应用上。在编写代码的时候才能得心应手。下面我们就针对多态的概念进行代码和概念的映射。...

2022-06-07 20:32:47 32

原创 IDEA项目如何切换JDK版本

在我们项目开发的过程中可能会遇到JDK版本过高或者过低导致一些程序无法启动,不兼容的问题。所以我们需要切换JDK的版本号,目前JDK8是比较稳定的。接下来分线一下如何在IDEA中切换JDK的版本。......

2022-06-05 09:00:02 21299 7

原创 什么是多态?多态的优缺点。

目录概述优点缺点示例概述多态:是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果。计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作。优点1.提高了代码的可维护性,主要体现在每一个派生类编写功能调用,只需要对抽象基类进行处理即可。2.提高了代码的可扩展性,主要体现在派生类的

2022-05-27 16:25:25 443 3

原创 Java-逻辑运算符与短路运算符

逻辑运算符前言    在我们学习Java基础的时候都有了解过逻辑运算符,逻辑运算符把语句连接成更复杂的复杂语句。例如,假设有两个逻辑命题,分别是“正在下雨”和“我在屋里”,我们可以将它们组成复杂命题“正在下雨,并且我在屋里”或“没有正在下雨”或“如果正在下雨,那么我在屋里”。一个将两个语句组成的新的语句或命题叫做复合语句或复合命题。但是在逻辑运算符中还分为两种,一种是普通逻辑运算符,一种是短路逻辑运算符。接下来我们就深入了解一下这两种运算符的区别。普通逻辑运算符概述  与运算符(&):两边的

2022-05-25 15:51:14 792 1

原创 Java-“==“和equals的区别

目录使用"=="进行比较基本数据类型比较引用类型且地址相同引用类型但地址不同使用equals进行比较重写前的比较重写后的比较使用"=="进行比较“==”是运算符,如果是基本数据类型,则比较存储的值,如果是引用数据类型,则比较所指向对象的地址值。基本数据类型比较 int num1 = 10; int num2 = 10; System.out.println(num1 == num2); //true引

2022-05-22 21:32:35 99 6

原创 AR项目总结

AR的全称为助教机器人,是解决老师们上课期间学习内容的颗粒化。以及自动推送我们制定出来的课程内容。老师推送课程学生参与课程,在活动执行的过程中老师可以看见学生们参与活动的情况,以及回答的正确率参与度的情况。 由于划分的学习内容颗粒非常的小,所以同学们学习起来也非常的容易实现,过程中会有一些点赞和互相评论的环节也不会感到无聊。AR系统的核心是:让用户的学习看得见、抓得住、帮得上。通过最近几天参加了AR的代码和UML图的验收,收获也非常的多。通过别人来反身自己,看看自己在开发...

2022-05-20 11:55:57 341 5

原创 E-R图的认识

目录什么是E-R图E-R图中的元素ER图设计步骤什么是E-R图提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念建模。每个实体是一张表,实体与实体之间的关系可以合并到其中一个实体中,也可以是另外一张表,关系表和相关的实体表是通过主键或外键来联系的。E-R图中的元素1.实体:即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员或者说实体对象2.属性:即数据对象所具有的属性,例如学生具有姓名、学号、年级等属

2022-05-16 18:22:53 151 8

原创 类图的认识

目录什么是类图类图中的元素类与类之间的关系什么是类图类图是由许多(静态)说明性的模型元素组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。类图(Class diagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。为什么要画类图1.描述系统中类与类之间的关系,可以简化了人们对系统的理解2.方便我们前期对于系统分析和阶段设计做一个建模类图中的元素类中包括类名、属性、方法。对于方法和属性的修饰符,有私有的

2022-05-16 17:30:01 77 4

原创 如何画原型图

什么是原型图原型图简单的来说,就是⼀款产品成型之前的⼀个简单的框架,就是将页⾯的排版布局展现出来,每个功能键的交互,使产品的初步构思有一个可视化的展示。也可以理解为将用户的需求以图形化的形式展现出来,方便用户直观的看到每个需求所呈现出来的效果。这样也方便了我们和用户之间理解不一致导致的情况做出相应的调整,不需要等到需求都开发完毕了才发现开发人员与用户理解的需求是有偏差的情况。...

2022-05-15 11:24:39 233 5

原创 面向对象和面向过程的区别

什么是面向对象面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成类(类实例化后才是对象),创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为。举个例子来说,打水这件事情,受水人、打水人、水、打水工具都可以形成对象。都是不确定的,根据我们的需求来定义打水人是谁,或者打水工具是什么。什么是面向过程面向过程就是分析出实现需求所需要的步骤,通过函数(方法)一步一步实现这些步骤,接着依次调用即可。再拿打水这件事情说,面向过程的实现方法是把打水的整个过程进行了封装。受

2022-05-13 19:50:09 66

原创 业务架构图

目录规范:意义:示例:规范1.颜色搭配要使用同一色系,颜色不要超过5个,形成一种渐变的效果2.整体结构要分明,横向可以是执行的先后的关系(也可以为其他关系)纵向是依赖关系,上层模块依赖于下层模块3.模块线框使用明确,虚线框表示的依赖关系较弱,实线框表示的依赖关系较强4.模块的表述要精准,不要产生二意的现象意义可以让开发人员或者用户能够很直观的看到层与层、模块与模块之间的关系。让开发人员从宏观的角度去理解业务的逻辑以及业务中设计到的一些内容。示例

2022-05-12 11:37:46 226 7

原创 高质量生活—执行番茄

目录成功是留给有准备的人的做番茄为什么会有下浮?如何避免下浮?多观察,帮助别人翻身自己最近和学习组的小伙伴们一起进行了时间管理,应用了番茄工具。也是很荣幸成为了每日番茄进步队伍中的其中一个。为了我们能够保持良好的习惯以及帮助其他小伙伴进行进步和提高做出我的分享。 成功是留给有准备的人的 我们每天都在按照PDCA和GTD的形式去执行我们的计划,每天都会有自我反馈和优化计划的过程,这也就是PDCA中的C和A起到的作用。我们每天根据...

2022-05-08 11:20:11 260 2

原创 真正意义上的面向对象

目录面向对象的基础面向对象的三大特征对面向对象的认识面向对象的基础面向对象的基础是抽象,为什么这样说呢?因为抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程,简单来说是把一些公共性和一致的事物放到一起,对应到计算机中是把属性和方法抽出来形成了一个类,这个类也就是封装。抽象是一个过程而封装是抽象后的一个产物。面向对象的三大特征封装:封装即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。...

2022-05-05 16:32:10 175 10

原创 Java-配置jdk环境变量

目录什么是环境变量为什么要配置环境变量如何配置环境变量什么是环境变量环境变量是在操作系统中用来指定操作系统运行环境的一些参数。比如临时文件夹位置和系统文件夹位置等。环境变量分为两种,一个是系统变量一个是用户变量。系统变量是在同一台计算机上所有登录的用户都可以进行使用而用户变量是只用当前登录计算机的用户才可以进行使用。为什么要配置环境变量1.对绝对路径进行一个封装当我们安装的程序路径非常深的时候或者当前安装过一段时间才使用的程序都可以进行配置环境变量,配置了之后我们就.

2022-04-30 12:05:08 181 15

原创 Java-流

目录什么是流为什么有流流的分类根据数据流向的不同,可以分为输入流和输出流。根据处理单位的不同,可以分为字节流和字符流。根据功能不同,可以分为节点流和处理流。什么是流众所周知,在我们在项目中读取数据或者修改数据都是在磁盘上进行操作的。在Java程序中,对于数据的输入/输出操作都是以“流”的方式进行的。流就好比一个管道一个样,管道的两边连接着两个水桶,管道一边的水桶可以向另一边的水桶获取水也可以向另一边的水桶传送水。在java.io包中定义了多个流类型来实现输......

2022-04-25 11:49:57 96 19

运维-Nginx代理服务器-方向代理-负载均衡-数据缓存

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。它具有很多非常优越的特性:在连接高并发的情况下,Nginx是Aoache服务不错的替代品。Nginx相较于 Apache、lighttpd 具有占有内存少,稳定性高等优势,并且Nginx有反向代理、负载均衡和缓存数据的功能。 反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。 负载均衡:LB是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。简单来说,就是把多条客户端的请求传给Nginx反向代理服务器,Nginx在把这些请求分别发送而给多个Web服务器,来减少直接对一个Web服务器造成的压力。 缓存数据:数据缓存是客户端第一次访问服务器的时候,nginx会把从服务器返

2022-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除