- 博客(223)
- 资源 (192)
- 收藏
- 关注
原创 如何解决微服务的数据一致性分发问题?
它的意思是说,你要实现数据分发,目标服务可以有很多,但是一定要注意,数据的主人只能有一个,它是数据的权威记录系统(canonical system of record),其它的数据都是只读的,非权威的拷贝(read-only, non-authoritative copy)。但是深入研究会发现它其实是有问题的。比方说在第三步,如果发消息抛异常了,并不保证说发消息失败了,可能只是由于网络异常抖动而造成的抛异常,实际消息可能是已经发到MQ中,但是抛异常会造成上面数据库更新操作的回滚,结果造成两边数据不一致。
2024-03-03 12:52:03
1281
原创 SSH 免密登入
通过选择内容来复制内容(假设您使用的是。登录到目标计算机并在用户的主目录中创建。然后,更新文件的权限。文件中以进行无密码登录。将以上内容放入目的地的。目录(如果不存在)。
2023-11-23 09:18:28
229
原创 Oracle dataguard 和Oracle rac的区别和联系
做HA方面的软件,有IBM的HACMP(很多常用AIX的人,常说的HA就指HACMP,乱啊)、SUN的Sun Cluster、HP的MC/SG等。是主数据库的备用库(standby 库)通过自动传送和接受archivelog,并且在dataguard库自动apply 这些log,从而达到和主数据库同步的目的,可能dataguard 库是建立的异地的,当主库所在的区域出现了致命性的灾难时(火灾、地震等),主库没法修复时,这时可以切换dataguard 为主库的模式,对外提供服务,而它的数据基本是当前最新的。
2023-08-25 09:31:07
1817
原创 如何优雅做好项目管理?
项目( Project )是为创造独特的产品、服务或者成果而进行的临时性工作。管理( Management )通过实施计划、组织、领导、协调、控制等职能来协调他人的活动,使别人同自己一起实现既定目标的活动过程。项目管理(Project Management) 在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件下,实现或超过设定的需求和期望的过程。从项目的基本概况可以看出,每个项目是具备三种基本特征即独特性、临时性、目的性。
2023-08-18 16:03:31
313
原创 项目计划、进度与控制
约瑟夫·朱兰博士也说过,项目就是在已经确定好的时间内必须解决的问题图1-1 项目管理就是工具、人和系统image.png组织是人的集合,过程是人在处理。如果人的因素出现问题,那么过程就可能出现问题;而过程有问题,任务的完成就会大打折扣范围的变更比其他任何因素都更容易导致项目超期和预算超支,这还不算一开始就错误定义项目需求定义一个项目,重要的是要明确项目的各项要求。我认为,要求不明确是导致项目失败的最常见原因项目管理就是组织实施对项目要求所必需的一切活动知识、技术、工具和手段的应用。
2023-06-30 10:53:30
532
原创 SpringBoot项目如何实现MyBatis的流式查询
mybatis的流式查询的本意,是避免大量数据的查询而导致内存溢出,因此dao层查询返回的是一个迭代器(Cursor),可以每次从迭代器中取出一条查询结果,在实际业务开发过程中,即是根据实际的jvm内存大小,从迭代器中取出一定数量的数据后,再进行数据处理,待处理完之后,继续取出一定数据再处理,以此类推直到全部数据处理完,这样做的最大好处就是能够降低内存使用和垃圾回收器的负担,使数据处理的过程相对更加高效、可控,内存溢出的风险较小;如果计算到某条员工的数据发生异常,已经计算好的数据要不要全部回滚?
2023-06-19 11:30:31
1057
原创 用饭店来形象比喻线程池的工作原理
使用线程池主要解决在程序中频繁创建和销毁线程导致的资源浪费,线程池可以维护一定量的线程来执行所需要的任务,维护的线程也可以重复使用。如果所有客户都有饭吃了,那么临时厨师和正式厨师就等待新客户。如果外面的排队小板凳用完,餐厅会招聘临时厨师做饭。如果临时厨师也用完,也没有办法排队就使用拒绝策略。丢弃让最先排队的客户,为当前客户做饭。队列就相当于饭店外面提供排队的板凳。二、用形象的饭店来解释工作原理。任务就相当于来饭店吃饭的客人。如果正式厨师不够用,就去排队。线程池就相当于一家饭店,线程就相当于饭店的厨师。
2023-06-11 11:46:56
569
原创 前后分离的优势
前端/WEB服务器放的是css,js,图片等等一系列静态资源(甚至你还可以css,js,图片等资源放到特定的文件服务器,例如阿里云的oss,并使用cdn加速),前端服务器负责控制页面引用&跳转&路由,前端页面异步调用后端的接口,后端/应用服务器使用tomcat(把tomcat想象成一个数据提供者),加快整体响应速度。(去参加阿里的技术峰会,听他们说他们的web容器都是自己写的,就算他单实例抗10万http并发,2000台是2亿http并发,并且他们还可以根据预知洪峰来无限拓展,很恐怖,就一个首页。
2023-06-01 09:15:05
529
原创 前后端分离开发模式解决之道
让接口文档发挥价值,提高变动接口的成本,测试尽早介入。这需要提高需求的理解能力和接口设计能力。德国有句谚语:“朝汤里吐口水。” 只有这样,才能让人们放弃那碗汤,停止不合理的行为。前后端同学坐在一起工作的时候效率会有提升,当后端同学接口变化时,只需要口头上通知一下即可,我们没有文档,我们很敏捷啊。没错,我们需要承认这样配合开发的效率会很高,但是频繁的变动会导致不断返工,造成了另一种浪费,这种浪费是可以被减少,甚至是被消除的。接口文档在定接口时起到一定作用,写完接口就没有用了。
2023-06-01 09:03:22
483
原创 java代码重构经验总结
如果你看到了这种丢弃(而不是抛出)异常的情况,可以百分之九十九地肯定代码存在问题(在极少数情况下,这段代码有存在的理由,但最好加上完整的注释,以免引起别人误解)。5)这次总结的方式方法,经验形成文档,要求以后在工作中是随时做的,当增加功能时,修改bug时或复审代码时都应该想到是否将原有的代码重构,以提高系统的可复用性和可扩展性。3)重构完成后,向服务器提交代码时,需采用更保险的方法,将原文件备份为以***.class.20060809.jeff的文件,不能简单的覆盖,否则那是很危险的。
2023-05-09 09:42:51
1153
1
转载 傻傻分不清之 Cookie、Session、Token、JWT
通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功)互联网中的认证:用户名密码登录邮箱发送登录链接手机号接收验证码只要你能收到邮箱/验证码,就默认你是账号的主人用户授予第三方应用访问该用户某些资源的权限你在安装手机应用的时候,APP 会询问是否允许授予权限(访问相册、地理位置等权限)你在访问微信小程序时,当登录时,小程序会询问是否允许授予权限(获取昵称、头像、地区、性别等个人信息)
2022-11-15 09:56:45
167
原创 SpringBoot打包后Jar包很大怎么办?
SpringBoot使用spring-boot-maven-plugin插件打包很方便,启动也方便,可是整个Jar包太大了,不方便传输,怎么办?
2022-11-10 16:36:16
940
原创 王树文:张成功项目管理记
如果项目经理能严格要求自己并真正成为团队的“领头羊”,这样通过项目经理的人人榜样力量让项目成员“潜移默化”从而“心甘情愿”地努力工作,这时,不但工作效果好,而且项目组成员会紧密地团结在项目经理周围并更加拥护项目经理的决定,这样的项目团队自然就是人际关系融洽的项目团队了。划先行”“目标导向”“全局思维”“要事第一”“聚焦优点”“集思广益”“建立信任”七个思维习惯和行为习惯,在人际沟通方面和管理者领导力方面,也取得了较大的进步。QA的主要职能是服务职能,具体有:“过程指导职能”、“执法职能”和“过程改进职能”
2022-10-18 10:47:44
353
原创 定庄趣记十二星座
7.你此时停止了心跳,医生用烧得通红的天秤压在你的胸部,胸腔被烫得弹起来又落了下去,反复几次后,你的心脏重新跳了起来。8.你慢慢醒来,却发现呼吸有些困难,原来是有一只从天而降的蝎子,用两只钳子夹住了你的脖子,勒得通红,勒得你喘不过气来。10.接下来到你的鼻子了,“摩羯”谐音想到“魔戒”,想象你把魔戒戴在鼻子上面,像是牛魔王的鼻环一样,又一阵钻心的痛,鼻子红肿起来!5.你一屁股往后坐了下来,没想到坐在狮子头上,狮子可不是病猫啊,它一口咬住了你的屁股,顿时鲜血直流,你晕了过去!
2022-08-24 11:30:36
108
原创 强化记忆的七种武器
比如“白羊”和“脚底”联结时,我们不仅看到了白羊的形象,还听到它咩咩叫的声音,感觉到踩上去软软的感觉,如果还能够闻到羊身上的骚味和羊粪味,捂着鼻子想躲开,你的印象又会增加几分。由“形象”想到一头大象,大象的鼻子、耳朵等感觉器官都非常大,还可以想象它是一个“独眼龙”(独特),它的脚踩在竹简做的床单上(简单),尾巴上面系着一个蝴蝶结(联结),身上坐着一个看《故事会》的驯象人,他在向天空中巡逻的飞机(“逻辑”谐音为“逻机”)打招呼。形象如果画面清晰,细节突出,颜色分明,动感十足,记忆的效果会更加明显。
2022-08-24 11:26:30
166
原创 结构思考力
在为企业提供培训服务的过程中,我们会发现,这些员工的思维模式存在问题,还不在他成人以后,而在于小的时候,没有得到很好的引导和训练,这也是中国传统教育跟西方教育的一个本质差别。在解决问题方面,可以让你更加快速的锁定问题,找到背后的原因,并提出解决方案,做一个精准的决策。结构可以说是万物之本,大到宇宙星系,小到颗粒尘埃,世间万事万物都结构,结构化思维就是指一个人在面对问题或工作任务时,从结构的视角从多个侧面清晰、全面地审视问题,从而更有效促进我们的思考、表达和解决问题的一种思维方式。来去强化自己的结构化思维。.
2022-07-15 10:21:26
1240
原创 JWT登录过期-自动刷新token方案介绍
在前后分离场景下,越来越多的项目使用jwt token作为接口的安全机制,但存在jwt过期后,用户无法直接感知,假如在⽤户操作页⾯期间,突然提⽰登录,则体验很不友好,所以就有了token⾃动刷新需求。但是这个自动刷新方案,基本都离不开服务端状态存储,JWT推出思想是:去中⼼化,⽆状态化,所以有所违背类似这样的业务,有阿⾥云⾸页,没有做token刷新令牌维护,但是符合对应的思想⽤户登录成功的时候,⼀次性给他两个Token,分别为AccessToken和RefreshTokenAccessToken有效期较短,
2022-07-14 16:33:22
14091
原创 JVM 全面深入
编译:.java源文件编译成.class字节码文件 打包:.class字节码文件打包成一个jar包或者一个war包 运行:使用java -jar等命令运行程序,启动一个jvm进程类加载:使用类加载器把.class字节码文件加载到jvm中执行:jvm字节码执行引擎开始执行main方法代码中使用到这个类的时候。jvm启动,首先会找到main方法的类,会加载到jvm内存,然后执行main方法。main方法执行的过程中,使用到了哪些类,就加载这个类。加载阶段:加载子类前,要加载和初始化父类只负责加载,运行由执行引擎
2022-07-04 10:05:04
11605
原创 oracle创建只读权限的用户简单四步走
第一步、创建用户。使用有管理员权限的用户创建一个新的用户:create user 用户名 identified by 密码 default tablespace 表空间;第二步、赋连接权限:grant connect to 用户名;第三步、赋表权限grant select on owner.表名 to 用户名;如果有多表,可以用selece转换批量执行语句:select 'grant select on '||owner||'.'||object_name||' to 用户名;'f
2022-07-01 14:28:30
5771
原创 CentOS7 使用yum安装Nginx (方式一)
1、添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址。因此可以如下执行命令添加源:sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2、安装Nginx 通过yum search nginx看看是否已经添加源成功。如果成功则执行下列命令安装Nginx。sudo yum install -y n
2022-07-01 08:40:40
614
原创 《你不可不知的人性》经典语录
《你不可不知的人性》是美国作家刘墉编著的一本关于为人处世,领悟潜台词与潜规则,规避人际场上的歧路的书。本书介绍了是什么样人性,造成人与人的猜忌和纷争?刘墉以“身边的小故事”和古今实例,像一把手术刀,切到了人性深处的毒瘤。全书故事辛辣,如同疫苗,种F去会令人肿痛、发烧,却有助健康。人性常有贪婪自私、急功近利、喜新厌旧、猜忌犹疑,误会冲撞比比皆是,令人莫衷一是。《你不可不知的人性(套装共2册)》的目的不只是要人知道人性的“丑”,更多希望大家在“了解”之后能有“谅解”,少生气,多和气,达致人际普遍的安稳与从容。这
2022-06-23 11:43:17
330
原创 spring boot 集成 gRPC 系列1
一、环境准备安装protocbuf下载地址https://github.com/protocolbuffers/protobuf/releases选择对应的版本下载安装,这里我选择21.1选择对应的压缩包解压配置环境变量变量名 :PROTOCBUF_HOME变量值:D:\protoc-21.1-win64 找到系统变量中的path变量,选中后点击编辑,新增:%PROTOBUF_HOME%\bin安装protocbuf插件Protobuf - IntelliJ IDEs Plugin | Mar
2022-06-22 14:08:47
1541
原创 Arthas(阿尔萨斯) 能为你做什么?
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。Copy to clipboardErrorCopied 如果下载速度比较慢,可以使用aliyun的镜像: Copy to clipboardErrorCopied 2.1 Windows下安装
2022-06-21 13:58:58
1026
原创 java高并发系列-第1天:必须知道的几个概念
同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。整个过程,不会阻碍调用者的工作。如图:上图中显示了同步方法调用和异步方法调用的区别。对于调用者来说,异步调用似乎是一瞬间就完成的。如果异步调用需要返回结果,那么当这个异步调用真实完成时,则会通知调用者。打个比方,比如购物,如果你去商场买空调,当你到了商场看重了一款空调
2022-06-17 17:31:51
94
原创 java高并发系列 - 第21天:java中的CAS,你需要知道的东西
这是java高并发系列第21篇文章。从网站计数器实现中一步步引出CAS操作介绍java中的CAS及CAS可能存在的问题悲观锁和乐观锁的一些介绍及数据库乐观锁的一个常见示例使用java中的原子操作实现网站计数器功能需求:我们开发了一个网站,需要对访问量进行统计,用户每次发一次请求,访问量+1,如何实现呢?下面我们来模仿有100个人同时访问,并且每个人对咱们的网站发起10次请求,最后总访问次数应该是1000次。实现访问如下。代码如下:输出:代码中的count用来记录总访问次数,方法表示访问一次,内部
2022-06-17 14:15:07
171
原创 深入理解进程和线程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程具有的特征:动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的并发性:任何进程都可以同其他进行一起并发执行独立性:进程是系统进行资源分配和调度的一个独立单位结构性:进程由程序,数据和进程控制块三部分组成我们经常使用windows系统,经常会看见.exe后缀的文件,双击这个.exe文件的时候,这个文
2022-06-17 14:11:59
112
原创 《关键对话》要点整理
《关键对话》要点整理【荐语】⼤家有没有遇到过这样的情况:感觉费了很⼤⼝⾆跟别⼈聊天,最后聊天没有起到任何成效。同时⼜责备⾃⼰嘴笨,不懂沟通技巧,总是在关键时”掉链⼦”?今天我们分享的书籍将帮助⼤家解决⽣活中难以⾯对的各种难题,成就⽆往不利的事业并拥有更快乐⼈⽣。【精华解读】⼀、关键对话是什么?关键对话的三个特征:意见不⼀、情绪激动、事关重⼤⼆、为什么要进⾏关键对话(掌握关键对话的好处)1.如果我们选择逃避关键对话,可能会让结果更糟。⽽如果能够处理好的话,最终能帮助解答问题,达成⽬
2022-05-23 14:55:59
1029
原创 精读《关键对话》
01 何为关键对话此处的关键对话是指每个人身上都会发生的和他人的互动行为,是指可影响你生活的那些日常对话。它具体有三个特征:对话双方的观点有很大差距对话存在很高的风险对话双方的情绪非常激烈在关键对话中,为什么我们往往会表现很糟糕?作者认为有以下原因:1)人类的自然基因使然。经过无数代人遗传下来的基因额影响,每当面对关键对话时我们便会下意识地采取人类面对危险时最原始的应对方式--暴力对抗或转身而逃,而不是采用机智的说服和友善的关注来解决问题(毕竟那种危急时刻,你不可能和猛兽坐下来商...
2022-05-19 08:58:07
440
原创 drools 介绍
1 .场景1.1需求商城系统消费赠送积分100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分......1.2传统做法1.2.1 if...elseif (order.getAmout() <= 100){order.setScore(0);addScore(order);}else if(order.getAmout() > 100 && order.
2022-05-06 13:47:14
659
原创 OpenResty 解决了什么痛点?
OpenResty解决的是高并发的痛点。现在服务的后台大部分是java写的,但是用java写出稳定的高并发服务是很复杂的一件事,首先是服务器的选择,web服务器有几个选型,tomcat,apache,weblogic,还有商用webphere. 1、tomcat官方宣称的并发量是1000,厉害点的做点参数调优,也不过3000并发,如果要开发一个并发百万的服务,1000000/3000,需要1000台服务器,想想都不可能。 2、apache的并发比tomcat更不堪,200-300 3、weblogic的..
2022-02-18 17:34:00
175
原创 顶层设计:微服务生态与 Spring Cloud Alibaba
Java 领域微服务是如何实现的?本讲我将通过下面三个方面来阐述: 通用的微服务架构应包含哪些组件; Spring Cloud 是如何支撑微服务架构的; 我为什么强烈推荐 Spring Cloud Alibaba? 通用的微服务架构应包含哪些组件相对于单体式架构的简单粗暴,微服务架构将应用打散,形成多个微服务进行独立开发、测试、部署与运维。虽然从管理与逻辑上更符合业务需要,但微服务架构也带来了诸多急需解决的核心问题: 如何发现新服务节点以及检查服务节点的状态?
2022-01-21 15:06:00
407
原创 经验教训:微服务设计时的五条宝贵经验
微服务架构的新挑战在著名软件著作《人月神话》中提到,软件世界没有“银弹”,这句话当然适用于架构领域,随着从单体架构过渡到微服务架构,因为将原有系统打散,给系统增加了许多不稳定因素。单体架构向微服务架构转变下面我从网络、性能、运维成本、组织架构与集成测试五个方面分别进行阐述。第一点,跨进程通信带来的新问题。以往单体应用是在单机中进行进程内通信,通信稳定性相当好。但是打散为分布式系统后,变为进程间通信,往往这个过程还伴随着跨设备的网络访问,架构师在设计时必须考虑上下游系统因为网络..
2022-01-21 14:03:20
645
原创 jemeter 压测webservice
1.测试计划-->右击添加-->Threads-->新增线程组2.线程组-->右击配置元件-->增加http信息头管理器3、线程组-->点击添加-->Sampler-->HTTP请求4、http信息头管理器需要填入Content-Type(必填):text/xml;charset=UTF-85.在HTTP请求中XML中的数据信息,全部复制到jmeter的HTTP请求中的Body Data<..
2022-01-20 16:45:00
424
原创 如何分析测试结果和评估测试工作的质量
软件测试中每一项测试活动都会产生测试结果,通过测试结果来评估产品的质量体现了测试的目的和价值。而通过测试结果评估测试工作本身的质量也非常重要,能让我们及时发现测试中存在的问题,并及时改正,是测试工作进行持续改进的基础。相比传统的软件测试,敏捷测试更强调持续改进,根据上下文不断调整测试计划和设计,因此更需要在测试过程中对测试质量提供持续反馈。这一讲就来介绍如何对敏捷测试过程进行评估,如何实现量化管理,以及如何分析测试工作的质量。如何评估敏捷测试过程传统的测试过程比较好理解,测试分析、计划、设计、执
2022-01-19 14:59:57
6985
原创 测试与质量度量的可视化
测试用例和缺陷需要测试管理系统进行跟踪管理。在此基础上实现三者之间的可追溯性,就能更容易解决需求变更、回归测试范围确定、质量评估等一系列重要的问题。下面首先介绍测试管理系统。测试管理系统在测试管理系统中,管理的核心是测试用例和缺陷。一个测试管理系统的构成如图 1 所示。图1 测试管理系统的构成示意图敏捷测试中的测试用例包括两部分:一部分是手工测试用例,另一部分是可以转化为自动化测试脚本的测试用例。对于探索式测试,虽然从粒度上来说,一个 Session 可以分解成十几条普.
2022-01-19 14:47:42
994
原创 如何构建有强烈质量意识的学习型组织
达成质量共识在两个月之前,我写了一篇“软件测试灵魂三问”的文章,很受欢迎,有 8000 多的阅读量。而在此之前,还写过一篇“质量三问”的文章,更具有挑战,即通常所说的哲学三问,你是谁?从哪里来?到哪里去?那么,质量是什么?从哪里来?到哪里去?这样的基本问题,按道理每个公司都应该去回答,企业中的每个团队、团队中的每个成员都需要思考这样的问题,是否认同自己所在的公司给出的答案。如果不认同,怎么办?要不要进一步和公司管理层去沟通,在如今质量认知上达成共识。只有达成质量共识,才能有统一的目标,最终驱
2022-01-19 11:27:30
1960
代码优化消除重复代码+API接口+异步调用
2021-11-17
redis-sentinel-集群.7z
2020-04-13
java web springboot License生成器 (JAVA源码+图形界面)
2018-09-23
Tomcat-Memcached Session共享所需jar包
2017-06-07
JAXB Unmarshalling @XmlAnyElement
2017-02-23
GsonFormat(android studio 插件)
2016-11-05
java 最全的基础体系
2016-10-21
AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题
2016-10-21
jQuery UI Portlet 插件API及源代码 Version: 1.3.1
2014-03-21
OSGI入门教程和代码
2014-03-13
产品经理培训文档
2014-02-26
项目经理常用文档
2014-02-26
逻辑思维题训练(附答案)
2014-02-26
Liferay开发指南
2013-12-07
单点登录技术文档 多用户多系统多数据库
2013-11-30
WebSphere发布CXF webserivce注意事项
2013-07-24
Oracle面试问题-技术篇
2012-03-15
把jar包打包成exe
2010-08-04
myelipse 打jar包插件
2010-08-04
一周学会Linux系统
2009-11-11
SQL完全手册 pdf
2009-11-05
Maven权威指南中文版 pdf
2009-11-05
struts2 + spring + lucene_search 实例
2009-09-21
liferay代码研读
2009-09-14
BIRT Viewer 2_2 参数设置详解.pdf
2009-09-14
2009年博客系统项目
2009-09-10
Ajax的知识结构和内容
2009-09-09
该系统模仿JavaEye问答系统
2009-09-09
自已实现spring ioc功能代码 jdk1.6的一些新特性
2009-08-31
OA_struts2_hibernate3_spring2.5.rar
2009-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人