- 博客(86)
- 资源 (11)
- 问答 (1)
- 收藏
- 关注
原创 三年了,你知道我是什么怎么过来的吗?
总结一下吧,怎么坚持写代码,学会激励自己:就是诶 dubbo有啥难的,我自己写一个不就好了。诶rockettmq怎么这么难用,我自己写一个不就好了,诶三方接口这么乱,我统一写一个开放平台不就好了;诶这个生成代码插件怎么要钱,那我就自己写一个顺便给大家用;这种真的很快乐,你有想法,你又能去实现,你分享了,你自己实力也提升了,别人也用了,你的价值也被别人认可了,这种才是驱使我去写代码的最大动力,简单描述:分享使我快乐,装逼让我更快乐!所以大家需要先培养兴趣,在努力赚钱,哈哈哈;
2023-09-24 11:22:45
204
原创 手写RPC-具体实现细节详解(近4w字详情)
这里面是远程通讯的核心,包含了网络通信、编解码协议、远程调用、注册中心、负载均衡等核心代码都在这里面,下面就详细分析下;不过这些看下代码就懂了,很简单;所以这个文章影响不大,只是为了让新手能更好理解;
2022-10-13 10:37:05
800
原创 手写RPC-技术应用和项目结构的简介
看看截图::这个模块里面都是一些公用的东西,接口、实体等基本信息;:这个模块里面是比较核心的内容,网络通信、编解码协议、远程调用、注册中心、负载均衡;也就是netty相关的操作都在这里面;:整合springboot的操作,在bean的生命周期做一些操作,并在容器销毁的时候做hook关联,取消注册;:与spring的整合,其实跟boot相差的就是这里使用的是xml注册,和xml解析器去解析,其实大致差不多(暂时停止更新);:这里面就是各测试相关的东西,里面几个子项目对应的就是不通的测试;
2022-10-11 10:05:34
653
原创 手写RPC-对RPC简单的理解
在学习粘包之前,先纠正一下读音,很多视频教程中将“粘”读作“nián”。经过调研,个人更倾向于读“zhān bāo”。如果在百度百科上搜索“粘包”,对应的读音便是“zhān bāo”,语义解释为:网络技术术语。指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。TCP是面向字节流的协议,就是没有界限的一串数据,本没有“包”的概念,“粘包”和“拆包”一说是为了有助于形象地理解这两种现象。
2022-10-10 17:32:26
624
原创 idea插件开发-Code Generate ORM
ORM生成框架,支持Controller、Service、Swagger等选配;支持多表同时生成;
2022-04-10 01:46:43
958
原创 每天的学习计划
工作时间庆幸自己是1075!!上班:9.30-10.00期间到公司都属于正常,但是有些意外的事情或者其他急事,都可以往后拖拖!下班:6.30-7.00期间下班情况较多,但是加班除外,一般的话碰到发布,当天可能需要加班,还有就是很急的活动也需要加班!当然,这是没有➕通勤时间,唉????,我就是那种通勤3小时的人!!所以导致我每天早上是8点左右出门的,然后晚上6.30下班,需要晚上8点左右才能到家!!所以怎么利用好这些空闲时间成为我学习的最大难点!!还有就是周末的时间安排!!日常学习时间安排这
2021-08-08 21:28:28
480
原创 git相关问题-Your local changes to the following files would be overwritten by merge
git相关问题快照问题问题描述 :本地存在快照,然后跟远程冲突了,会出现拉取不了,提交不了问题案例:error: Your local changes to the following files would be overwritten by merge:question-study-improve.imlPlease commit your changes or stash them before you merge.Aborting解决方案:需要保存本地快照代码:
2021-07-31 11:07:09
217
原创 计科生毕业一年,做了什么?
月薪两万?996?计科生毕业一年,做了什么?毕业之后过得是真的快,又到了记录一年时光了!可以看看一年前的我:大学时期的我先总结一下自己的成长,这一年里,从毕业开始就很幸运!我做了三件大事:第一件事:做了一个很大的微服务项目!哈哈哈,好像就这个项目,做了快半年多!第二件事:义无反顾离开南昌!第三件事:面试几十家公司!个人觉得我的经历还是挺多的,我觉得这三件事情可以影响我很久很久,我也为自己做了这三件事情感到幸运,接下来就分享一下这段经历!!????????????????????step1
2021-07-31 01:57:45
882
2
原创 Go语言学习-import的使用
Go语言学习-import的使用基本介绍案例这里的import应该是跟js里面的导入有点类似,看个例子:// 这种系统的函数,大部分我们只需要引入函数名即可,不过我们一般在使用的时候,编辑器会自动弹出import "fmt"// 这个是导入我们自己的包import "first-go/4-import/lib2" 注意:我们新建的工程文件需要放在bin目录下面的 xxx/…/src的下面;这个跟Go的 GOPATH有关,需要放到这个下面,然后引入包的全路径;包对应的文件目录:imp
2021-07-29 21:16:53
3676
原创 Go语言学习-方法和返回值
Go语言学习-方法和返回值场景案例:/** 1. func:声明是个函数,对应Java中的方法 2. returnMethod:对应的是方法名称 3. a int: 参数,这里可以是多个参数,如果都是 int,我们可以这样什么 (a, b int) 4. int:这是返回值类型 */func returnMethod(a int) int { c := 1 return c}返回一个值func returnOne(a int) int { fmt.Println
2021-07-29 21:16:03
707
2
原创 Go语言学习-const的使用
Go语言学习-const的使用基本介绍1. 常量不能修改const类似于java中的常量声明,看看基本语法const name = "zs"相当于定义个name常量,这个name是不能被修改的当我们尝试去修改一个const 修饰的常量时:// Cannot assign to name,下面就是无法修改常量值name = "ls"这个时候编译器时会报错的,会给出提示:Cannot assign to name2. 常量必须初始化看下这个声明:// Missing value in
2021-07-29 21:15:19
1517
原创 Go语言学习-变量声明
Go语言学习-变量声明这里总结一下,大概有以下方式:1. var ageZs int2. var ageLs int = 183. var ageWw = 194. ageZl := 205. var ageSy, nameSy = 18, "孙一"6. var ( ageQe int = 15 nameQe string = "前二" )代码测试:package mainimport "fmt"var ageA = 18var nameB stri
2021-07-29 21:14:39
286
原创 Go语言学习-环境搭建
Go语言学习-环境搭建前话其实我自己算是Go的新手,而且对我来说,我目前并不是打算转Go,而是兴趣使然;而此也是需要一些原因去带着我们去学习,而不是盲目的;所以我们要知道,我们为啥要学Go,当然,关于Go的好处、优势那些话就太官方了,我只说下驱使我去学习Go的几点原因:云原生下,让我对Go饥渴难耐;很多底层都是Go写的Go的名声大,很多人拿来跟java对比,说Go可以取代java,所以我看看他是啥玩意协程的概念引出,之前听说java17版本可能会引出;但是Go语言自带这个功能;
2021-07-29 21:11:10
219
原创 两万字长文-设计模式总结
设计模式总结战术总结 从开始学设计模式到现在,算是学了两遍,但是这玩意怎么说呢,不是说学了就能会的那种,是需要经过一段时间的沉淀和积累的,有条件的话最好能直接上生产,但是需要注意项目的风险性接受程度; 一般来说,从项目的迭代之初,这个时间点是最考验我们的设计、架构思维的,如果在这个阶段你能有机会去参与到 代码规范审查、代码结构设计,那请收起你那不要钱的面子,这个时候就是你展现自己装逼实力的时候,往上奥力给,其实这个阶段如果你已经具备丰富的业务能力+你拥有较为丰富的架构思维,你可以自己尝试通过各
2021-07-29 00:37:49
2455
5
原创 k8s-持续部署1.0
持续部署这里以最简单的方式进行部署,不涉及到pod的弹性升级、回滚等,也不涉及ingress统一api放行等操作前置知识点:(都是基本的搭建和简单的使用)jenkins的搭建harbor的搭建linux的免密登录gitlab+jenkins的持续集成和构建一、环境准备全部环境就放在四台服务器上面,k8s一主两从,然后所有环境放在同一台上面1. K8S环境这里是已经搭建好了的k8s集群,下次写一篇hostnameipk8s-m-t1192.168.109.11
2021-06-14 23:50:50
738
2
原创 k8s-gitlab与jenkins持续集成
gitlab与jenkins持续集成一、gitlab搭建以及使用gitlab一般都是用于公司代码私服仓库,保证代码的安全性搭建的,其实用法也都是跟gitee差不多(gitee上也有企业版收费的,可能功能多一点吧)1. 宝塔搭建这个方法很简单,只要安装好宝塔即可,送上安装传送门宝塔按操作登录后修改一些宝塔配置然后在软件商城下载一下东西,这里下载gitlab,有两个版本,下载其中一个就行安装好之后去设置一下端口号就行了,然后在安全组里面放行端口,如果是关闭了防火墙,那么安全组就没什么作用
2021-06-13 16:50:07
880
1
原创 linux-ssh免密登录?六张图即可!!
准备几台服务器这里几台其实 2台虚拟机就可以了(我只是自己测试了几次,为了成功演示)准备好之后开始图解====》:配置免密ssh连接这里是需要密码的生成公钥这里的第二张图,是第一张图可能会出现的问题免密登录免密登录的原因其实看懂了最开始的原理图,这个就应该能理解了总结感谢大家阅读、互相学习;有问题评论或者发邮箱;gitee:很多代码仓库;1449697757@qq.com...
2021-05-30 00:56:51
374
1
原创 docker-harbor的搭建及使用
harbor的搭建下载harbor安装包所有环节都是在已经安装好了docker1.8以上和docker-compose1.25以上的版本;下载包下载这个即可,然后上传到服务器上:解压:tar -zxvf harbor-online-installer-v2.2.2.tgzcd harbor然后修改复制出来的文件:修改完成后,保存退出执行两个命令,按顺序:./prepare./install.sh执行之后就有了docker-compose.yml文件;然后执行下面命
2021-05-28 23:21:29
666
4
原创 jenkins-环境搭建
jenkins搭建安装安装很简单,下载一个war包就行了,可以看官网的:jenkins官网这里下载,然后上传到linux上面:然后在其同级目录下创建脚本:start-jenkins.shvim start-jenkins.sh# 脚本文件(直接将其粘贴到文件中)nohup java -jar jenkins.war --httpPort=8082 >> jenkins.log 2>&1 &# 修改文件权限chmod 777 start-jenkins
2021-05-24 23:58:59
372
8
原创 linux-centos7扩容
centos7扩容创建物理磁盘这里只是简单的截个图,后续的步骤就是一直下一步;详细过程1. 首先查看现有磁盘情况:fdisk -l这里可以看到磁盘的信息,证明你加的磁盘已就位,等使用;可以看下这个,现在是28G磁盘(这是宝塔,不多介绍);继续下一步:2. 使用fdisk工具操作磁盘按下面顺序操作,可参考图片fdisk /dev/sdbmp13. 创建逻辑磁卷紧接着上一步,继续输入:tL8e想了解linux lvm可以参考:linux-lvm4. 创
2021-05-21 22:35:47
179
原创 springboot-自定义starter
springboot的Starter?starter是啥?starter有啥用?怎么自定义starter?针对于这些,我也不知道!哈哈哈!但是经过一番折腾后,有个大概了解,有不对之处,多多指教!starter是啥?其实啥也不是,就是一堆jar包的集合,你引用我,我引用你,然后就有一大堆jar出现了,也就是个maven工程,之后还是要放到公司私服给其他同事使用(我的想法是写starter给其他公司用,哈哈哈),大概也就是一个pom的maven工程,然后可以让别人引入!!starter有啥用?
2021-05-18 22:12:16
525
2
原创 nexus-实际使用
nexus的实际使用创建需要上传的maven工程看看这个项目,其实很简单,就是写了个工具类,然后上传到私服,这个平时在公司开发还是挺常见的;然后看看pom.xml文件:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2021-05-17 12:26:53
196
原创 nexus-基本使用
nexus的基本使用Search这个功能就是全局搜索一些jar然后下面几个选项就是看所有上传的jar包Browse这个是比较核心的地方了这是一些系统自带的仓库地址,还有一些是我已经配置好了的创建代理仓库如上图步骤,但是这之前可以先创建好jar包的存放位置:这里路径在你取好名字之后会自动给你一个建议的路径,一般采用建议的就行然后在去创建仓库:选取代理方式创建名字、镜像地址、存储路径maven的镜像地址:http://maven.aliyun.com/nexus/co
2021-05-17 12:25:42
925
1
原创 nexus-环境搭建
nexus的搭建nexus的简介其实就是简单的一句话就可概括其最常用的功能:maven私服搭建过程下载nexus的安装包,还可以使用docker去搭建,这里就不演示了,nexus安装包已经有人上传过了,所以我无法上传可以私信我,或者自己去官网下载即可我存放在:然后解压到:这里会出现两个文件夹,我们启动nexus只需关注第一个即可;cd nexus-3.19.1-01/跟nexus脚本相关的都在这:这里是启动脚本和一下配置,可以先看配置文件:nexus.rcrun_as_
2021-05-16 15:52:10
449
4
原创 jvm-垃圾回收的概念和理解
参考尚硅谷:宋红康(b站视频)一、垃圾回收的概述1.1 关于垃圾回收Java 和 C++语言的区别,垃圾收集技术、内存动态分配三个经典问题哪些内存需要回收?什么时候回收?如何回收?1.2 垃圾回收的基本原理在java中,我们不需要手动释放对象的内存,由JVM的垃圾回收线程自动对没有引用的对象进行回收创建对象时,GC开始监控这个对象的地址、大小以及使用情况。GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的
2021-04-04 12:55:26
512
原创 jvm-StringTable详解
参考尚硅谷:宋红康(b站视频)一、String的基本特性1.1 字符串特征字符串,用""引起来表示String s1 = “mogublog” ; // 字面量的定义方式,声明在字符串常量池String s2 = new String(“moxi”); // new 对象的方式声明为final的不可被继承的实现了Serializable接口,表示支持序列化实现了Comparable接口,表示可以比较大小1.2 jdk里面的String存储变化jdk8及以前,内部定义了
2021-04-02 22:32:59
445
原创 大数据-azkaban全流程调度(六)
一、Azkaban 的安装及配置1.1 环境准备1.1.1 数据库准备将安装包上传到指定目录/opt/software/azkaban解压将db文件解压,里面有个all相关的sql:将sql文件导入到数据库:1.1.2 azkaban的服务端配置将azkaban-exec的那个压缩包解压到:修改 azkaban.properties 文件# Azkaban Personalization Settingsazkaban.name=Testazkaban.lab
2021-04-02 22:32:39
496
原创 jvm-对象探秘
参考尚硅谷:宋红康(b站视频)一、对象的实例化1.1 创建对象的方式new最常见的方式(new User())变形:Xxx的静态方法 ( User.getInstance() )XxxBuilder/XxxFactory的静态方法Class的newInstance:JDK9标记过时,反射的方式,只能调用空参的构造器,权限必须是publicConstructor的newInstance:反射的方式,可以调用空参,带参的构造器,权限没有要求。使用clone:不调用任何构造器,当
2021-03-31 23:22:32
280
原创 jvm-执行引擎
参考尚硅谷:宋红康(b站视频)一、执行引擎概述执行引擎是Java虚拟机核心的组成部分之一虚拟机的执行引擎由软件自行实现,物理机的执行引擎是操作系统层面上能够执行不被硬件直接支持的指令格式执行引擎的工作过程1、执行引擎在执行的过程中究竟需要执行什么样的字节码指令完全依赖于PC寄存器。2、每当执行完一项指令操作后,PC寄存器就会更新下一条需要被执行的指令地址3、当然方法在执行的过程中,执行引擎有可能会通过存储在局部变量表中的对象引用准确定位到存储在Java堆区中的对象实例信息,以及通过
2021-03-31 10:59:00
244
原创 jvm-方法区
参考尚硅谷:宋红康(b站视频)一、方法区的理解1.1 方法区的定位《Java虚拟机规范》:尽管所有方法区在逻辑上属于堆一部分,但一些简单实现,可能不会进行垃圾收集或进行压缩。对于HotSpot,方法区又名:Non-Heap(非堆),目的:区分堆。方法区看作是一块独立于Java堆的内存空间1.2 方法区和堆的区别不同点方法区主要存放Class(类元信息),堆中主要存放实例化对象相同点方法区/Java堆,各个线程共享内存区域方法区/Java堆,在JVM启动时被创建,物
2021-03-29 16:54:18
367
原创 jvm-堆空间详解
参考尚硅谷:宋红康(b站视频)一、堆的核心概述1.1 堆的基本概念堆针对一个JVM进程来说是唯一的。也就是一个进程只有一个JVM实例,一个JVM实例中就有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区。但是进程包含多个线程,他们是共享同一堆空间的。一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了,堆是JVM管理的最大一块内存空间,并且堆内存的大小是可以调节的。《Java虚拟机规范》规定,堆可以处于物理
2021-03-29 16:44:39
540
原创 jvm-虚拟机栈
参考尚硅谷:宋红康(b站视频)一、虚拟机栈的基本概念1.1 虚拟机栈的出现背景由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的CPU架构进行优化,但是跨平台性大大降低】。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。作者: youthlql链接: https://youthlql.gitee.io/post/5b1b6560.h
2021-03-26 10:09:33
206
原创 jvm-运行时数据区
参考尚硅谷:宋红康(b站视频)一、运行时数据区概念Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域。当我们通过前面的:类的加载 –> 验证 –> 准备 –> 解析 –> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区类比一下也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品。
2021-03-22 17:56:35
194
原创 jvm-类加载器子系统
参考尚硅谷:宋红康(b站视频)一、类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)二、类加载器ClassLoader角色cla
2021-03-22 11:32:59
223
原创 jvm-虚拟机的基本概念
参考尚硅谷:宋红康(b站视频)一、虚拟机概念1.1 虚拟机的基本概念所谓虚拟机(Virtual Machine),就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。大名鼎鼎的Virtual Box,VMware就属于系统虚拟机,提供了一个可运行完整操作系统的软件平台,还有一种是直接建立在硬件之上的,如exsi。pve等。程序虚拟机的典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我
2021-03-19 11:24:20
443
原创 maven多工程编译报错问题
maven多工程编译报错问题 Could not find artifact com.simple:simple-base-api:pom:unknown in maven-public (http://maven.aliyun.com/nexus/content/groups/public/)然后就是公共模块的版本也是需要放到root工程中进行版本管理的,要不然其他模块想要引用就都要写版本号...
2021-03-17 11:24:25
335
elasticsearch-7.6.1-linux-x86_64.tar.gz
2020-05-25
elasticsearch-7.6.1-windows-x86_64.zip
2020-05-25
为什么简历不能共享??
2021-03-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人