- 博客(103)
- 收藏
- 关注

原创 AIGC介绍篇
AIGC 最近横空出世,对社会产生了多冲击。AIGC 发展到现在,其实也就是最近几个月被 ChatGPT (22年11月推出的)带火的,ChatGPT 你可以理解为是所有 AIGC 的一个大脑,其他各种各样的 model 都是四肢,由 ChatGPT 指挥,那目前被热议的 GPT 或者 LLM,究竟是个什么东西?我们和它对话的时候到底发生了什么?那么我们如何使用 ChatGPT,如何在AIGC大时代紧跟趋势?
2023-05-20 10:38:00
1135

原创 优化zookeeper-使用环形数组,缓存zxid队列,序列化方式
I plan to use circular arrays to optimize zookeeper's multi-level message queuing architecture. Has anyone ever thought of doing so? You can contact me, maybe we can communicate with each other.My idea sketch: https://www.processon.com/diagraming/600101a
2021-01-16 10:58:25
251

原创 高并发场景-Redis解决双写问题&强数据一致性场景思考(三种创新使用方法)
http://note.youdao.com/noteshare?id=ff42f6b4148298d97dc3ef36af963d6f&sub=7A1C2FA465364079A3377E5CA35765E3关于Redis使用的思考-创新Redis缓存加version:方案1、解决双写不一致问题优点:数据库并发性更好;缺点:未解决超卖问题。方案2、缓存加version结合数据库乐观锁对于采用乐观锁场景可以减少数据库读操作;同时解决了双写不一致问题。优点.
2021-01-10 13:13:20
1160
1
转载 Postman学习笔记
form-data格式:Content-Type:multipart/form-data;2、逻辑业务:主要指的是一些逻辑业务依赖关系(比如购物提交订单的时候要保证你是在登录的情况下,如果你没有登录而提交成功了,这就是异常,可以修改请求的cookie来测试)测试用例概念:测试用例是通过使用在测试计划中确定的测试技术,对于已确定的测试条件进行逐步推敲,精炼而设计出来的重点说明,具体操作产生何种结果的文档。参数错误:数据异常:关键字数据(填入的数据用其他的数据语言的数据替用)、数据长度、数据为空、数据错误。
2022-12-21 19:47:20
947
原创 软件架构基本功
写一个专栏--软件架构基本功,从研发总监/架构师的视角来看待软件架构设计。专栏大纲已经定型,计划内容:一共7个模块,31节。专栏介绍整套软件架构设计方法论和软件架构实践,包含七大部分:模块一:架构基础-介绍架构设计的本质、历史背景和目的,架构设计思想原则;模块二:高并发架构设计-介绍高并发架构的模式和思想,分析常见的高并发架构;模块三:高可用架构设计-介绍CAP原理、FMEA分析方法,分析常见的高可用架构;模块四:高性能架构设计-介绍高并发、大数据场景下的高性能架构方法,分析常见的高性能架构;模块五:微服务
2022-12-04 22:39:36
627
转载 Windows设置自己的程序开机自动启动
这条语句不能换行, authSender.exe 是程序名, "D:\Debug\authSender.exe"是此程序所在路径,tasklist|find /i "authSender.exe"是判断进程是否存在,程序是否已经开启,如未开启才会启动程序,然后改后缀名 .txt 为 .bat,双击即可启动程序。2.打开控制面板---管理工具---服务(或者 开始---运行---services.msc---确认)打开服务管理器,看看你创建的服务已经在里面了,至此,服务运行已创建完成。
2022-11-09 22:14:56
9488
1
转载 异常 try – finally 注意的地方
语句前,会先将返回值ret保存在一个临时变量中,然后才执行finally语句,最后try再返回那个临时变量,finally中对ret的修改不会被返回。try/catch/finally语法中,catch不是必需的,也就是可以只有try/finally,表示不捕获异常,异常自动向上传递,但finally中的代码在异常发生后也执行。所以,一般而言,为避免混淆,应该避免在finally中使用return语句或者抛出异常,如果调用的其他代码可能抛出异常,则应该捕获异常并进行处理。//不管有无异常都执行。
2022-09-21 14:08:26
619
转载 DDIA-二
文章目录数据复制目的主从复制复制形式复制日志运维变更副本一致性多主复制适用场景处理写冲突无主复制quorum一致quorum一致局限数据分区分区方式二级索引分区再平衡取模固定数量分区动态分区按节点比例分区请求路由事务分布式系统问题不可靠网络不可靠时钟分类依赖时钟的风险不可靠信息抽象模型一致性与共识可线性化顺序保证事务与共识数据复制目的高可用。容忍单个副本故障、网络分区。可扩展。多副本提高读吞吐量。低延时。距用户较近,交互更快。主
2022-04-11 13:02:49
190
转载 DDIA-一
文章目录数据系统可靠性可扩展性可维护性数据模型和查询语言数据模型查询语言数据存储和检索数据结构LSM树CSV+内存hash表LSM-TreeB树存储引擎分析模式列式存储数据编码和演化数据编码格式语言特定格式文本格式二进制格式数据流模式基于数据库基于服务基于消息传递数据系统可靠性定义:执行用户期望的功能。容忍用户不正当的使用方法。性能可以符合预期的用例、负载、数据量。防止未经授权的访问和滥用。硬件故障。硬件冗余。软件故障。节点软件关联,影响
2022-04-11 13:00:57
178
转载 java技术栈
java技术栈参考了众多资料,这里就不再详细列举了,可以自行去搜索1 java基础:1.1 算法1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题1.2 基本2.1 字符串常量池的迁移 2.2 字符串KMP算法 2.3 equals和hashcode 2.4 泛型、异常、反射 2.5
2020-05-11 14:25:43
493
原创 JAVA面试-基本功系列
关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应该说被面试到的几率很大。这里整理挑选出来供大家面试前拿来看一看,所有题目整理自网络,有一些错误和笔误,感谢读者的热心纠错,在声明中已经改正过来。整理这些面试题源于在微信群和几个刚入职的小伙伴们的一次讨论,很多小伙伴谈了自己的面试经历和体会,很多人最初鄙视刷题...
2019-09-04 11:39:53
319
原创 闲话鸿蒙操作系统(一)-- 先闲聊Fuchsia OS
第一篇先不聊鸿蒙操作系统,聊聊 Google 的新系统 Fuchsia OS。先看看 Fuchsia OS 介绍。为什么 Google 要造新的 Fuchsia OS 操作系统。猜想:受够了 Linux 的开源协议,因为 Linux 的 GPL 协议,把 Apache 和 GPL 强结合给开发带来很大障碍,对商业不是那么友好。(但对开源社区有利) Fuchsia OS 使用了...
2019-09-04 10:11:13
1065
转载 Maven中 jar包冲突原理与解决办法
Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题。本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲突的解决办法。一、Maven中jar包冲突产生原因MAVEN项目运行中如果报如下错误:Caused by:java.lang.NoSuchMethodErrorCaused by: jav...
2019-05-13 22:03:00
302
原创 本地缓存使用GuavaCache
最近在项目中需要使用一个产品组件,通过一个产品接口做模糊查询,通过产品id得到产品信息,可是对于产品的编辑和展示用到的地方特别多,即项目中会频繁的调用一个接口。这个问题走了一些弯路,比如在表中增加展示字段,数据返回前调员工接口做转换,或者列表展示时由前端并发处理,最后证明这些办法都不是很好。最后想到了本地缓存。在系统中,一些访问量大但是数据量小、与业务无关的缓存适合采用本地缓存。为什么不采用分...
2019-03-22 18:02:49
477
转载 Elasticsearch与solr
Elasticsearch简介*Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。但是Lucene只是一个框架...
2019-03-18 14:54:19
231
转载 SSH项目
做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH。这篇博文主要总结一下如何整合Struts2、Hibernate4.3和Spring4.2。 整合三大框架得先从搭建各部分环境开始,也就是说首先得把spring,hibernate和Struts2的环境搭建好,确保它们没有问题了,再做整合。这篇博文遵从的顺序是:先搭建Spring环境-->然后搭建...
2019-03-18 14:53:54
788
转载 Java Label的使用
在Java中“{”和“}”组成一个代码块(code block),如我们最常用到的static代码块,而每个代码块都可以用一个Label,Label不是Java中的关键字,而是一个任意的标识符。由于我们一般不怎么用Label,此时难免会有人问:Label到底有什么用呢?大家不要急,且听我慢慢道来。试想一个这样的场景:有一个两重循环,但是当在内层循环中找到了满足的条件,就停止两重循环就退出执行。...
2019-03-18 14:52:13
13294
转载 maven helper:解决maven项目中依赖包冲突问题
日常开发中经常会遇到xxx.class 找不到的异常,但是这个类确实存在我们的项目中,就会感觉很离奇,其实这就是包冲突的问题冲突问题比如项目中引用了两个 fastjson.jar的版本,分别为fastjson:1.2.28fastjson:1.2.3我们用到了1.2.28中的某个类, 比如 A类,在版本更新中 1.2.3版本去掉了这个类,然而我们项目中maven 却把1.2.3...
2019-03-14 14:57:07
354
原创 java捕获到异常以后,后面的代码还会执行吗?
return会执行的。try{}里面包含可能会出错的代码?如果里面出错了,他回交给catch{}处理,catch可能把这个错误给屏蔽掉(就比如说你牙疼不能吃饭,给给力来个止疼的,不影响你做其他的事情了)。。不影响你之后的代码运行。。但是如果你try{}里面有多行代码第一行,第二行,第三行,如果第二行出错了,第三行是不执行的。如果有finally{}这里里面代码是处理后事的。比如说,你try里...
2019-03-14 14:15:45
2020
原创 MySQL原理与运行机制
1.MySQL知识普及:MySQL是一个开放源代码的关系数据库管理系统。MySQL架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。2.MySQL逻辑架构:1).最上层:最上层是一些客户端和连接服务,包含本地的sock通信和大多数基于客...
2019-03-08 16:10:41
1392
1
转载 深入理解Java并发之synchronized实现原理--转载
转载自:http://blog.youkuaiyun.com/javazejian/article/details/72828483本篇主要是对Java并发中synchronized关键字进行较为深入的探索,这些知识点结合博主对synchronized的个人理解以及相关的书籍的讲解(在结尾参考资料),如有误处,欢迎留言。synchronized的三种应用方式synchronized作用于实例方法s...
2019-01-17 17:07:33
588
转载 二叉树的层次遍历
1.LEETCODE102 二叉树的层次遍历 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 解题思路: 1.逐层添加到队列例如: 给定二叉树: [3,9,20,null,null,15,7],3 / \ 9 20 / \ 15 7 返回其层次遍历结果:[ [3], [9,20], [15,7] ]class Solut...
2019-01-02 22:20:20
358
原创 mysql可重复读和幻读,gap锁
一直以来,对MySQL的幻读和gap锁不是很清楚,特此研究一下:mysql的默认事务级别是:可重复读 其中可重复读是通过mvcc来实现的又叫快照读,在事务中的读操作通过对当前的数据库中记录一个版本,以后的读操作只会读取记录的版本,因此相当于对数据库的数据建立了一个快照数据,因此叫做快照读,其不用对数据库中的数据进行加锁又叫做乐观锁。 同时RR事务级别的mysql通当前读和gap锁来解决幻读...
2018-12-20 17:59:23
1125
原创 回归基础--JAVA数值二进制转换
求一个数的二进制表达:(正数为例)private static String toBinary(int num){ String result=""; int i=0; int v; while ((v=(1<<i++))<num){ if ((num&v)==0){ result=0+resu...
2018-12-15 21:12:15
608
转载 成为一名Java高级架构师到底需要学习什么?
Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力和提出解决方案能力了。我就跟大家来简要地说说吧。如果你是想成为Java架构师,那么你首先要是一个Java高级攻城狮。也就是说,基础必须牢固,对Java的了解全面而且深入。熟练使用各种框架,并知...
2018-07-30 20:56:37
472
转载 怎样成为Java架构师
很多人做java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理。公司的工作节奏又比较快,难有机会学习架构原理,也没人教,所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要。同样公司的两个新人,一个新人一点就通,学东西很快,有的人,学东西很慢,也很痛苦,处处都是新技术。为什么?因为那个...
2018-07-30 17:02:20
512
转载 分布式微服务架构体系详解
作者简介李静瑶,2011 年毕业于中南大学,毕业后入职阿里巴巴集团,在职期间主要负责淘宝网营销产品线的研发工作,曾担任试用中心产品线 PM。现就职于赤金信息科技有限公司,担任 CTO 职位。从零搭建基于 Docker 容器技术的微服务分布式企业集群,深度的 DDD 思想践行者。优快云 博客专家。微服务架构的演变微服务架构的技术体系、社区目前已经越来越成熟。在最初系统架构的搭建,或者当现有架构已到...
2018-07-13 19:55:20
677
原创 IO,NIO,AIO介绍
一、看图网上很多IO资料,对新手来说,越看越晕。根据自己的理解,总结对比了一下BIO、NIO、AIO。BIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。如下图:NIO(reactor模型):线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。如下图:AI...
2018-07-13 19:51:20
1075
转载 类加载器与双亲委派模型
类加载器加载类的开放性类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。虚拟机规范并没有指明二进制字节流要从一个Class文件获取,或者说根本...
2018-07-10 21:54:22
279
原创 JDK1.7新特性--自动关闭类
JDK在1.7之后出现了自动关闭类的功能,该功能的出现为各种关闭资源提供了相当大的帮助,这里我们谈一谈自动关闭类。JDK1.7之后出现了一个重要的接口,以及改造了一个重要的方法结构:1、AutoCloseable自动关闭接口2、try(){}--catch{}--finally{}相应的一些资源也实现了该接口,如preparedStatement、Connection、InputStream、ou...
2018-07-09 20:48:21
789
转载 架构师大牛给予Java提升技术的学习路线建议
一位资深 架构师大牛给予Java提升技术的学习路线建议java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战 视频课程内容包含:高级Java架构师包含:Spring boot、Spring cloud、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Sp...
2018-06-27 15:19:05
625
转载 我用了7年时间成长为阿里Java架构师,你呢(附学习路线图)
前言:我用了七年的时间,一步一步走到了现在,中途也有了解过其他的技术,也想过要转其他的语言,但是最后还是坚持下来走Java这条路,希望我的经历可以帮助到后来的人,要是觉得对你有帮助的话,可以点赞关注一下。导读1、架构师应不应该写代码2、为什么别人的系统总是那么烂3、成为架构师最困难的门槛是什么?4、如何更高效的学习?1.架构师应不应该写代码合格的程序员对于明确分配的任务会完成的很好,但是大部分情况...
2018-06-27 15:17:44
446
转载 MySQL原理与运行机制
1.MySQL知识普及:MySQL是一个开放源代码的关系数据库管理系统。MySQL架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。2.MySQL逻辑架构:1).最上层:最上层是一些客户端和连接服务,包含本地的sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信,主要完成一些类似于连接...
2018-06-26 19:57:44
369
转载 《机器学习实战》基于信息论的三种决策树算法(ID3,C4.5,CART)
===================================================================== 《机器学习实战》系列博客是博主阅读《机器学习实战》这本书的笔记也包含一些其他python实现的机器学习算法 github 源码同步:https://github.com/Thinkgamer/Machine-Learning-With-Python ...
2018-06-03 15:43:25
1522
转载 Jupyter notebook入门教程(上)
本文将分上下两部分简单介绍Jupyter notebook的入门教程,英文原文出处:Getting started with the Jupyter notebook(part 1)Jupyter notebook(又称IPython notebook)是一个交互式的笔记本,支持运行超过40种编程语言。本文中,我们将介绍Jupyter notebook的主要特点,了解为什么它能成为人们创造优美的可...
2018-06-03 15:25:27
516
转载 Ribbon学习
什么是RibbonRibbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为。 Feign已经默认使用了Ribbon。负载均衡容错多协议(HTTP,TCP,UDP)支持异步和反应模型缓存和批处理RestTemplate和Ribbon相结合Ribbon在Netf...
2018-03-20 10:54:22
627
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人