- 博客(306)
- 收藏
- 关注
原创 修复Git进行Push操作时Connection was reset, errno 10054
相关地址都是可以连通的,所以在网站连通性没问题的情况下,关闭这个校验是可以解决问题的。尝试过各种方案都没有很好的解决问题,经过搜索引擎不断尝试得出以下两种有效方案。这是笔者记录本次push失败时用的方式,将下面者三个地址通过。这种方案笔者早期遇到上传失败问题时,是有效的,因为那会。得到域名以及ip地址后将地址配置到hosts文件中。搜索到可达的ip地址。
2022-11-28 10:03:59
926
原创 使用docker编排容器
首先用docker拉一个nginx镜像拉取完成后,编辑一个Dockerfile文件命令如下所示,FROM后面跟的你的基础镜像,而run则是表示你构建镜像时需要执行的指令,下面的指令意思就构建一个自定义的nginx镜像,然后欢迎页面显示FROM nginx在Dockerfile的目录下运行如下命令,可以看到命令最后面有个点,这个点就是用于参数传递,表示当前路径Dockerfile键入如下命令即可看到我们的自定义的镜像构建完成了完成后,我们尝试创建一个容器运行一下,如下所示,笔者使用bridge映射91。
2022-04-09 15:31:50
2553
1
原创 关于centos关了防火墙却依然不能访问的问题
问题笔者在进行docker部署实验时,完成mysql部署之后需要进行测试,结果无法连接,尝试关闭防火墙,还是不行。原因真相大白了,centos及时关闭了防火墙,也只能使用22端口连接ssh,别的端口还是不能用,所以我们需要开启防火墙手动设置要分开的端口,就以mysql为例,我们需要这样做解决方案先开启firewalld:systemctl start firewalld放通端口firewall-cmd --zone=public --add-port=3306/tcp --permanen
2022-03-29 00:14:23
6443
原创 docker入门小结
我们都知道docker的隔离性,网络也是个隔离性的一部分,Linux使用了命名空间来进行资源的隔离,比如就是用来隔离进程的,是用来隔离文件系统的,是用来隔离网络的.每一个都提供了一个独立的网络环境,包括网卡路由iptable规则等等,都是与以其它的隔离的.docker容器在默认情况下,一般会分配一个独立的,也就是网络类型中的Bridge模式(可以理解为虚拟机的那种桥接模式)。因为Bridge使用的独立的,这就我们需要使用桥接的方式的服务器和docker。
2022-03-28 21:53:53
3646
原创 流式编程概念入门简记
文章目录引入流的概念(一个简单的示例)需求描述使用java8之前的做法java8的做法流简介流的优势流的工作原理流与集合的关系流只能使用一次集合的外部迭代和流的内部迭代流的三种操作中间操作终端操作源码地址参考文献引入流的概念(一个简单的示例)需求描述我们现在有一个菜肴类,菜肴类的代码如下所示,可以看到菜肴类有一个静态的菜肴集合menu,我们希望从中筛选出低于400卡的菜肴名称,还需要按照升序排列public class Dish { private final String name;
2022-03-28 00:01:31
615
2
原创 CompletableFuture流水线处理流程任务最佳实践
示例1铺垫需求描述我们的网站有不同的商店,每个商店都有相同的产品,我们现在给用户提供一个接口,只需用户传入产品的名称,即可获取到每家商店对应产品的价格和折扣力度,并加以计算返回给用户。需要了解的是获取产品价格,和获取折扣力度都需要远程调用其他服务,所以都会有一定延迟,所以我们在完成上述需求时,还需要考虑到性能。几个用到的类商品类,可以看到我们只需要将需要的产品名传入getPrice方法即可返回商品的名称、价格、折扣力度/** * 商品查询类 */public class Shop {
2022-03-28 00:01:23
454
原创 基于阿里云部署docsify管理文档
笔者最早是使用docsify来记录个人文章的,近期刚刚好又要用到,所以干脆整理一下文章,对文章进行进一步的梳理。
2022-03-28 00:00:52
949
1
原创 数据库国产化——mybatis完成多数据源配置(兼容达梦、高斯)简记
最近开发遇到一个数据库国产化且兼容多数据源的问题,由于项目原本是使用Oracle实现,后来又用了达梦,现在为响应不同的情况,还需要兼容高斯。这里笔者通过 mybatis dataId搜索查询到了相关源码,通过debug找到以下片段得知高斯的dataId,具体源码可以去下述代码类中查看。我们完成上述任务后发现,两条相同id在idea中会报红,虽然无关痛痒,但不太优雅,于是我们就对此语法进行优雅化,得到如下方案。经过商议我们最终需要得到这样一个效果,即根据不同的数据源找到对应的sql语句完成相同的查询效果。
2022-03-28 00:00:27
3877
1
原创 win10设置Typora右键打开
新建一个名为icon的字符串值,如下图所示,数据修改为你typora的安装路径,以笔者为例就是。对准typora右键新建的名为command的项。创建一个名为Typora的项。对准typora这个项的空白处。打开控制台输入regedit。
2022-03-28 00:00:11
592
1
原创 聊聊java8的方法引用结合lambda最佳实践
纵然lambda表达式使得变得更加的简洁且优雅,但在某些情况下,某些表达式给人感觉还是有些过度复杂了我们不妨简单事情复杂化,给定一个苹果类,这个苹果有重量有颜色描述,需要我们编写一个方法getWeight,希望得到的苹果重量是实际重量。苹果类的代码如下}}}}}'}';}}我们都说代码和数学息息相关,其实java8也提供很多函数式接口可以运用于数学公式上。
2022-03-27 23:56:55
253
1
原创 mybatis完成高斯和达梦各种sql不兼容问题
与postgre批量插入问题一样,也是因为begin、end的原因,如下所示end;-- 质检参数类型 --> < /if > < /set > WHERE xxx = #{item.xxxx} < /foreach > < /update >
2022-03-27 23:56:35
1305
2
原创 读断墨寻径有感
对于需要长期坚持学习的程序员来说,掌握高效的学习方式是非常非常重要的。其重要性甚至超过你近期所学习的任何一门技能或者一个新的技术,只有运用良好的学习方法,才能保证长期高效的知识储备和个人成长。什么又是理解呢?著名学家说过:“理解即为感知模式,这里的模式指的就是不同实例中都会重复出现的共性和规律。” 比如: 初学者学习线性子空间时,就需要感受不同实例之间差异和共性。他们肯定首先会查看治疗描述了解定义。然后结合不同的案例感知差异和共性,通过感知了解差异最后得出规律,这就是我们所谓的理解。
2022-03-27 23:55:25
638
1
原创 java8 Stream流使用详解
文章目录前言筛选和切片常规过滤筛选找出不重复元素限制筛选的元素数跳过某些元素进行筛选映射只映射需要的元素流的扁平化使用查找和匹配检查是否至少匹配一个元素检查流元素是否都匹配查找元素查找第一个元素规约元素求和求最大值和最小值实践题实践题需求描述几道问题源码地址参考文献前言java8提供的流式编程使得我们对于集合的处理不再是以往的指令式操作(即各种显示循环拿元素操作),所以笔者就以这篇文章介绍以下流式编程中的各种中间操作的终端操作。筛选和切片常规过滤筛选常规的过滤筛选就是通过filter方法,为了介绍
2022-03-27 14:01:55
1142
1
原创 CompletableFuture提高IO密集任务效率最佳实践
用一个需求开篇需求描述某个电商卖家需要在电商网站提供一个搜索框,只需用户提供产品名,就能返回不同商店产品的信息以及价格。但是这个查询操作非常耗时,可能需要1s多,而且上文也说了,这是个电商网站流量也很大,很可能吞吐量也不小,对此我们就以这样一个需求编写一个强大的API,保证大量查询请求也能快速响应。需要用到的类商品类public class Shop { private final String name; private final Random random; p
2022-03-27 14:01:42
571
原创 多窗口文件管理工具Q-Dir安装以及使用教程
Q-Dir 是一款功能强大的Windows资源管理器,可以非常方便的管理你的各种文件。Q-Dir有4 个窗口,特别适用于频繁在各个目录间跳跃复制粘贴的情况,每个窗口都可以方便的切换目录,以不同颜色区分不同类型的文件,各窗口之间可以方便的拖放操作互相的文件,大大提高工作效率。如下图所示,可以看到不同的传窗口管理不同的磁盘,是不是非常方便呢?
2022-03-27 00:00:00
4840
原创 基于stream流实现空间转时间优化
用户希望界面修改的数据实时更新到数据库中。如下所示,前端传入为的用户名称,而我们数据库中不仅有这两个用户的数据,还有一个456的用户。我们的需求是前端传入的用户才需要保存到数据库中,这就意味着id为的用户要被删除。需要注意的是,前端传入的数据没有age,所以我们数据组装阶段,就得查询数据库数据获取到这个用户的年龄,再组装成PO对象。只有这样一步才能避免更新姓名时年龄丢失的问题。其实按照上图所示的分析我们就知道这个数据处理,是一个"以用户传入数据为主"的工作,即一切以用户传入数据为基准的集合处理。我们必须遍
2022-03-25 01:59:26
580
1
原创 行为参数化改善既有多变的代码——函数式接口以及lambda表达式的结合
文章目录前言需求描述苹果类既有代码的实现需求变更实现思路代码示例测试以及输出代码需求再变更实现思路代码示例测试代码最终需求实现思路通过将行为参数化实现需求基于jdk8之前的代码实现jdk8的代码实现版本代码示例进一步改造,方法通用化源码地址参考文献前言现代敏捷开发,需求总是不断的变更,如果不能较好的封装变化,后期的代码维护会变得愈发困难。需求描述我们现在手头一堆苹果,我们希望从中挑出绿色的苹果给客户。苹果类如下所示,用于描述的苹果类既有颜色又有重量。public static class Ap
2022-03-25 01:59:13
460
原创 java Stream流数值流使用简记
为了介绍特化流,我们首先需要介绍一个需求,我们有一个菜肴类,代码如下所示我们使用这个类创建了一个菜肴集合我们希望计算出这个菜肴集合的总热量,我们可能会这样写虽然它实现了功能,但是我们发现返回的是,这就使得getCalories拿到的值需要装箱一下。然后我们再将流传给出现频繁的拆箱,进而性能变差。
2022-03-25 01:59:03
553
1
原创 java8实战——自定义流的构建
我们都知道java8的流操作带来许多便捷,但是某些情况下,某些类型变量无法直接生成流,但我们又希望能够拥有流的便捷操作解决问题,这又该怎么办呢?所以我们就用这篇博客来记录一下这个问题的解决方案。
2022-03-25 01:58:55
995
1
原创 关于nginx连接被重置引发的网络协议工作解析
这时笔者再次使用浏览器访问ip:3000后,发现问题所在,如下图所示,在服务器抓包记录中,我们看到浏览器请求的包,却没有看到服务器对客户端发的ack确认包,说明我们的请求包可能被服务器丢掉了。随查看nginx的access.log,发现并没有本机浏览器访问服务器的记录。一再确认上述问题无误后,使用curl命令在服务器尝试访问对应网站地址。笔者在配置nginx对某个网站的代理时,在浏览器访问对应地址报连接被重置的错误。由于笔者访问的是服务器3000端口,于是就开一个tcpdump抓3000端口的包。
2022-03-25 01:58:46
1757
1
原创 java8流实战-用流收集数据实践简记
用过流编程的小伙伴大概都会写过这样的代码可以看出流让某些规约操作变得很简单,只需我们整理好自己所需要的数据的流,就像上文一样,我们希望创建一个用户名字的列表,我们只需要通过map映射出所有用户名的流,然后使用终端操作即collect方法完成流的最终结果生成即可。本文就是介绍collect中可以传的参数,流收集器,通过各种各样的流收集器,你就可以完成你所需要的数据的收集。
2022-03-25 01:58:35
504
1
原创 java8并行流简介
我们都知道并行流的操作都是基于多线程的,有了多线程自然就会出现互斥和同步问题,所以一旦你使用并行流操作同一个数据时,很可能会造成数据错误的问题。
2022-03-25 01:58:27
564
1
原创 java8——并行流的分支合并框架
为了介绍并行流的分支合并框架,我们不妨用一个例子来展开。这个需求也非常简单,要求给你一个long类型的数组nums,最终给用户nums的总和。
2022-03-25 01:58:05
502
1
原创 Java8-使用lambda优化臃肿的设计模式以及调试详解
谈及设计模式,我们大多想到的就是便于扩展,在日常开发中,很多业务功能会存在各种各样的变化,设计模式正是通过封装这种变化,从而保证代码的可扩展以及可读性。
2022-03-25 01:57:54
1715
1
原创 Oracle数据库安装
当完成上述步骤后,我们就已经完成了Oracle的安装以及orcl数据库的创建,这时候就会在服务进程中看到以下即可服务,我们就来一一介绍一下这个命令用于与数据库建立连接的,连接步骤也很简单,首先cmd进入命令行界面,输入sqlplus使用scott连接数据库如下图所示然后键入命令 conn 用户名,例如conn sh在输入密码即可完成切换用户连接,如下图所示,我们完全可以使用show user来验证当前的用户是谁完成这些操作之后我们若需要退出数据库也很简单,键入命令quit即可。
2022-03-25 01:56:42
276
1
原创 Oracle复杂SQL
而我们的行专列语句如下,首先通过商品名对数据进行分组,然后通过在select语句工作时,会遍历每个分组商品每个季度的销售数据,再通过sum+decode得到每个季度的结果,注意sum是必须使用的,因为我们使用的分组,如果没有使用sum等库函数会出现报错的情况。如下所示,我们找到10号部门里员工号最大的员工,使用的就是子查询,做法也很简单,首先通过子查询找到最大的员工号,然后将外部的表一一与这个最大的员工号进行比较符合条件的就是最终结果。注意使用between and左边的数据必须是1,否则会查不到数据。
2022-03-24 09:36:34
528
1
原创 Oracle的SQL语句执行解析
在我们能够熟练使用SQL的情况下,了解Oracle数据库的基础架构是非常重要。通过理解架构以及SQL执行的工作过程和工作原理,我们才能保证自己可以写出高效的SQL,避免因为数据频繁去硬盘中读取,从而导致SQL执行效率低下。在开始讲述本文之前,我们必须看看下面这样Oracle数据架构图,当然由于篇幅的原因,我们也只讲述Oracle数据库对于我们开发人员来说比较重要的一部分——共享池,共享池的设计借鉴了大量操作系统的思想,笔者会给予共享池会SQL语句执行展开较为详细的探讨。众所周知内存读取速度远远大于硬盘读
2022-03-24 09:35:49
1967
1
原创 思科综合拓扑实验简记(ospf+acl+vlan+默认路由+nat+telnet等相关知识点)
1.本次项目背景为园区网络的简单拓扑,所涉及的知识点为ospf nat 默认路由 以及vlan,配合一些dns和web简单的配置。2.实验配置中没有什么太难的地方,只需要注意vlan的划分,以及核心交换机要声明好对应vlan,以及配置好对应vlan的网关即可实现内网互通。在配置好每一小步的时候注意测试,项目单元化是完成项目中最常用也是最好用的使用方法。3.ospf声明的时候注意不要将外网接口(120.36.2.0/24)也宣告进入内网,
2022-03-24 09:34:40
3610
5
原创 Java8并行流——Spliterator
很显然上文的代码是很传统的处理逻辑,我们希望能够做的更好,因为Java8为我们提供的函数式编程,所以我们需要写一个自定义收集器去优化这段代码。我们希望有能够实现这样一个操作,通过将上文的字符串转为一个Character的流,然后通过一个自己编写的流收集器实现流数据的统计,因为是累加,所以我们使用流操作函数如下关于流收集器的原理,可以参考笔者之前写的这篇文章java8流实战-用流收集数据实践简记。
2022-03-24 09:34:24
2518
1
原创 Oracle用户和权限管理
无论是Oracle还是MySQL,对于数据库的用户和权限管理都是非常有必要的,这篇文章就以Oracle为例,对数据的用户和权限管理展开探讨。sys用户主要用于维护数据库系统信息和管理示例的,属于系统级别的用户system用户是默认的数据库管理员,拥有Oracle管理工具所使用的内部表和视图,以及可以管理所有用户、权限和存储等。Scott是Oracle提供给用户的示例用户,会有一些示例表供用户练习使用Oracle数据库。在介绍Oracle权限管理之前,我们需要先学会创建用户以及对用户进行相应属性管理,首先我们
2022-03-24 09:33:54
1135
原创 Oracle网络配置
在Oracle数据库发布到网络中,提供给无数的客户端连接时,我们都需要为数据库服务端配置一个名为listener.ora告诉服务端自己当前所有拥有的数据库,以及这个数据库的端口号,当有客户端连接进来的时候,他就会与客户端建立连接完成交互。而服务端也是一样的,为自己配置一个tnsnames.ora文件告知自己所连接的数据库的服务名以及具体服务地址。实际上在没有网络的情况下Oracle数据库也可以连接,这点后文会进行详细介绍。这里我们必须了解一下关于Oracle网络连接所需要的配置文件,例如我们服务端有一个
2022-03-24 09:33:34
997
原创 Oracle锁的概念与实践
单位时间内仅仅允许一名用户操作数据当一个用户修改数据后,其他用户都能实时看到最新的修改结果允许多个用户操作同一个数据行级锁如语义一样,就是以行为单位的锁,被行级锁锁定的数据,其他用户在单位时间内是无法进行修改的,只有等待锁定该数据的用户commit或者rollback之后才能进一步对数据进行操作。行级锁在插入、更新、删除以及select……for update会自动触发。如下所示首先我们打开一个sqlplus操作Oracle自带的emp表,锁定一个sal为1010的数据然后我们再登录system用户,更新相
2022-03-24 09:33:13
686
原创 Oracle体系结构
由一个Oracle数据库以及Oracle实例即构成一台Oracle服务器。而Oracle数据库是一个数据的集合,该集合被视为一个逻辑单元。而Oracle实例是由一个Oracle后台进程以及Oracle对应内存结构所构成,具体内容我们会在后文展开描述。而关于Oracle的体系结构,我们可以参考Oracle官网给出的图片如上图所示,可以看到Oracle实例是由一个庞大的内存结构以及后台进程所构成。所以Oracle数据库启动实例的过程就是**分配内存(初始化内存结构)和启动后台进程(初始化后台进程)**的过程。
2022-03-24 09:32:59
569
原创 Oracle索引使用以及调优
在聊到索引之前,我们需要了解一下存储索引的数据结构——b树。数据结构如下图所示,可以看到除了叶子节点,非叶子节点都是记录其子节点所记录的索引值的起始值,例如下图,根节点记录0 1000 1500,这个0代表根节点左边子节点的所记录的索引起始值。而最下层的叶子节点,则记录的就是数据行了。可以看到由于b树合理的结构组织,只要走索引我们查询数据所需要的数据块就会减少很多,并且查询效率也会有较好的性能。由于这篇文章着重于介绍索引的使用,所以对于b树就没有过多的介绍,感兴趣的读者可以参考这篇文章图解B树的原理及
2022-03-24 09:32:34
3177
2
原创 关于DNS服务器地址总是127.0.0.1且无法解析域名地址
问题笔者尝试nslookup解释域名时,出现服务器变成本地环回口地址,导致无法解析域名C:\Users\Zsy>nslookup www.baidu.com服务器: UnKnownAddress: 127.0.0.1*** UnKnown 找不到 www.baidu.com: Server failed排查思路尝试关闭虚拟网卡,配死所有网卡dns ip通通无效。通过以下命令看到,无论笔者怎么配置dns地址,配置中总会有一条127.0.0.1的地址在最上方ipconfig /a
2022-03-24 09:31:50
5704
原创 计算机硬件基础与实践探知
在介绍计算机硬件基础之前,我们必须了解一下计算机硬件的五大单元,注意这里说的是硬件的五大单元并不是计算机五大单元。无论是计算机五大单元还是计算机硬件的五大单元,这其中必须包含的东西肯定是输入设备,在计算机日常使用中,输入设备无非就是将我们需要的数据传给计算机的媒介,输入设备常见的由鼠标、键盘、游戏手柄等。输出设备顾名思义就是显示计算机处理数据的媒介,例如显示屏、打印机等都是输出设备。在介绍算数逻辑单元之前,我们必须了解一下什么是CPU,CPU是一个具有特定的功能的一个芯片,每个CPU都包含一堆的指令集。算数
2022-03-24 00:00:00
1020
原创 Linux文件结构与文件权限
Linux采用的一切皆文件的思想,将硬件设备、软件等所有数据信息都以文件的形式呈现在用户面前,这就使得我们对计算机的管理更加简介明了。所以在展开文章后续文章的讨论一下,我们不妨花一个小节了解一下Linux中常见的文件类型(注意,笔者为了能够更好的展示各个文件夹下的文件,使用的是root账号)首先我们键入到达~目录然后键入ll查看所有非隐藏文件,注意笔者描述,是非隐藏文件哦,可以看到在每个文件最前方都有一个由10个字符构成的字符串,就以第一行为例,这就是文件类型和权限组成的字符串,由于笔者这里仅只对文件属性
2022-03-23 09:35:37
1055
原创 Linux文件管理技术实践
shell是用于和Linux内核进行交互的一个程序,他的功能和window系统下的cmd是一样的。而且shell的种类也有很多常见的有c shell、bash shell、Korn shell等等。而本文就是使用Linux最常见的bash shell对Linux常见指令展开探讨。
2022-03-23 09:35:16
986
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人