- 博客(251)
- 资源 (20)
- 收藏
- 关注
转载 redis分布式锁常见问题及解决方案
这一问题是在redis集群方案时会出现的.事实上,现在为了保证redis的高可用和访问性能,都会设置redis的主节点和从节点,主节点负责写操作,从节点负责读操作,也就意味着,我们所有的锁都要写在主redis服务器实例中,如果主redis服务器宕机,资源释放(在没有加持久化时候,如果加了持久化,这一问题会更加复杂),此时redis主节点的数据并没有复制到从服务器,此时,其他客户端就会趁机获取锁,而之前拥有锁的客户端可能还在对资源进行操作,此时又会出现多客户端对同一资源进行访问和操作的问题.
2023-03-15 00:05:08
2502
原创 IO与NIO区别
Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取,而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可以继续做其他的事情。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。Java NIO的选择器允许一个单独的线程来监视多个输入通道,你可以注册多个通道使用一个选择器,然后使用一个单独的线程来“选择”通道:这些通道里已经有可以处理的输入,或者选择已准备写入的通道。
2023-03-10 01:12:26
733
原创 redis主从复制原理
在 Redis 中,我们可以通过 SLAVEOF 命令或者 slaveof 选项,让一个服务器去复制另一个服务器,被复制的服务器称为“部分复制通过 复制偏移量、复制积压缓冲区、服务器ID来实现。Redis 主从复制主要是通过 PSYNC 命令实现。完整复制通过 RDB 以及 复制积压缓冲区来实现。主从复制主要解决的是 数据备份、读写分离的问题。”,由两种服务器组成的模式称为“”,发起复制的服务器称为“
2023-03-01 14:56:01
566
原创 Arthas(阿尔萨斯) 在线监控工具部署和使用
Java 8 之后支持获取 JVM 内部线程 CPU 时间,这些线程只有名称和 CPU 时间,没有 ID 及状态等信息(显示 ID 为-1)。这种方法效率低下,更糟糕的是,该问题可能无法解决,因为一旦 JVM 重新启动,它可能无法复现,如上文所述。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。输入dashboard,按回车/enter,会展示当前进程的信息,按ctrl+c可以中断执行。
2023-02-21 02:23:15
863
原创 linux中使用KubeSphere和集群k8s 部署springboot项目
每个容器的CPU、内存、GPU、健康检查、环境变量等诸多参数,根据自己的要求填写,其他步骤不在赘述,已经在上篇文章中讲过。高级设置,非必选项,选择节点,可以根据节点想部署到那天机器上,如图所示。,这期讲解集群k8s部署springboot项目。因为部署方式已经在单体中讲过,现在。
2023-01-16 13:37:43
1055
原创 linux部署KubeSphere和k8s集群
然后重启docker:systemctl restart docker.service。进入 /etc/docker,没有daemon.json文件就自己新建一个。配置镜像---一定要配置,不然k8s启动各种报错,已尝试。docker版本要超过19.3.8 +
2023-01-15 13:01:59
773
原创 linux中使用KubeSphere和单体k8s 部署springboot项目
设置容器端口,健康检查,环境变量,同步主机时间。第一步:创建一个工作负载服务-->基本信息。第三步:存储设置---》咱不设置任何东西。1、创建项目----》按照做的项目名称建。2、工作负载---》
2023-01-13 23:42:10
696
原创 linux 中用rancher k8s 部署springboot项目
在/usr/local/project/目录下上传demo.jar架包,项目jdk使用11,并且上传后执行命令:chmod 777 demo.jar。如图所示,选择新建的集群k8s-boot,点击Default,找到命名空间,新建test命名空间。步骤:点击自己创建的k8s-boot集群--》Default---》工作负载---》部署服务。如图所示:已经成功再部署一台,并部署在k8s-master这台机器上。----这里的tag版本号是v1。然后点击项目名称---》找到日志。
2023-01-11 11:50:44
919
原创 mysql统计查询和一行转多行(列转行)--- help_topic
类似的数据时,要求数据库不管有没有指定天的数据,都要生成该时间节点,可用mysql.help_topic来解决此类问题,通过序列和日期函数相结合来满足我们的业务需求。help_topic本身是Mysql一个帮助解释注释表,用于解释Mysql各种专有名词,由于这张表数据ID是从0顺序增加的,方便我们用于计数,1、查询每个渠道对应的30天内的page_view、view_content、add_to_cart、complate_payment的总数。重点:有时我们在生成一些。
2022-12-31 12:33:04
2202
原创 linux部署KubeSphere和k8s单节点
KubeSphere是在Kubernetes之上构建的面向云原生应用的分布式操作系统,容器引擎QKE在QingCloud公有云上交付,完全开源,支持多云与多集群管理,提供全栈的IT自动化运维能力,简化企业的DevOps工作流。KubeSphere定位是以应用为中心的容器平台,提供简单易用的操作界面,一定程度上降低了学习成本,同时集成了原生istio等功能,更加符合开发的使用习惯。同时提供了集成开源监控、日志、Git CI的能力,虽然学习成本较高,但提供了一站式的解决方案,对运维更加友好。
2022-12-17 13:14:06
1322
原创 linux 中用rancher 安装 部署 k8s集群
可参考地址:rancher 安装 部署 k8s_方圆师兄的博客-优快云博客_rancher部署k8s如何通过rancher部署k8s集群 | 航行学园使用Rancher部署k8s集群 - 知乎
2022-12-17 11:38:12
449
原创 java 中台架构设计
DDD包括战略设计和战术设计两部分,它们分别从不同的视角出发,完成领域建模和微服务的拆分和设计。战略设计是从业务视角出发,划分业务的领域边界,建立基于通用语言和业务上下文语义边界的界限上下文,构建领域模型。而界限上下文就可以作为微服务拆分和设计的边界。战术设计则是从技术视角出发,侧重于对领域模型的技术实现,按照领域模型完成微服务的开发和落地。在战术设计上会有聚合、聚合根、实体、值对象、领域服务、领域时间、应用服务、仓储等领域对象,这些领域对象会以代码的形式映射到微服务中,完成设计和系统落地。
2022-12-17 11:18:06
926
原创 java DDD领域分层架构设计思想
优点:相比于三层方式,更关注领域服务,即业务核心逻辑的划分、收敛缺点:分层复杂, 如果业务逻辑简单没有必要适应场景:业务复杂的业务
2022-12-17 10:55:49
2583
原创 java 项目--》阿里分层架构设计和实现
这是显而易见的,明明我们可以在接收到请求后直接查询和操作数据库,却偏偏在中间插入了多个层次,并且每个层次可能只是简单的做数据传递,有时候增加一个小小的需求也可能要修改一整个链路上的代码,这个时候如果还增加了同事的负担那一定是会引来不少吐槽的。大家开发过的系统中应该都有一个用户服务,最基本的接口就是查询用户信息接口,它的请求链路是,DTO -> Controller -> Service . DTO层接收前端传入的请求参数,序列化后传入给 Controller层调用Service层接口。
2022-12-17 10:28:37
1542
原创 spring cloud 分布式事务Seata
一文详解,分布式事务Seata - 知乎等待写入 Seata 是 Simple Extensible Autonomous Transaction Architecture 的简写,由 feascar 改名而来。Seata 是阿里开源的分布式事务框架,属于二阶段提交模式。首先我们回顾一下在单体应用中,例如一个业务调用了3个模块,他们都使用同一个数据源,是靠本地事务来保证事务一致性。但在微服务架构中,这3个模块会变为3个独立的微服务,各自有自己的数据源,调用逻辑就变为:Seata 如何处理呢?1、
2022-12-02 23:58:53
318
原创 java设计模式-享元模式
日常开发中,能够共享的内部状态是有限的,因此通过享元模式共享的对象一般都设计为较小的对象,它所包含的内部状态较少,这种对象也称为细粒度对象。所谓内部状态较少说白了就是对象的属性大部分外部使用时都可以根据自己需要来设置。享元模式核心就是相同或者相似对象的共享复用,分享的是对象相同的部分,而不同的部分用接口暴露出去根据环境动态的设置,而这在享元模式中分别叫做内部状态与外部状态。享元模式很重要一点是分离对象变与不变的部分,变化的部分通过接口提取,共享对象时需要外部自己设置,不变的部分可以共享出去。
2022-12-01 15:14:09
193
原创 java--那些事
(1)注入的就是实现类,只不过拿接口来接收,接收的类型为接口,面向接口编程,那么为何要面向接口编程?要遵循Controller–Service接口–ServiceImpt实现类–Mapper接口模式;Controller层。
2022-12-01 13:55:38
1897
原创 mysql中两个表使用On和Where的区别
left join时,不管on条件是否成了,左表的所有行数据都会select出来(不管右表条件是否成立),右表成立就select对应数据,不成立就置null。On book.stuid =student.stuid ,中间表如下:而关键字on就是在生成这个中间表的时候用的连接条件。②比如两个表进行left join连接查询结果,where会对查询的结果进行过滤, on会返回驱动表的所有数据。①当两张表是在left join来关联时,条件跟在on后面:无论on条件是否成立,都会返回左表的值;
2022-12-01 01:42:55
1104
原创 Java 编程性能调优
JDK 是 Java 语言的基础库,熟悉 JDK 中各个包中的工具类,可以帮助你编写出高性能代码。课程从基础的数据类型讲起,涉及容器在实际应用场景中的调优,还有现在互联网系统架构中比较重要的网络通信调优。为了保证线程的安全性,通常会用到同步锁,这会为系统埋下很多隐患;除此之外,还有多线程高并发带来的性能问题,这些都会在这个层级重点讲解。Java 应用程序是运行在 JVM 之上的,对 JVM 进行调优可以提升系统性能。数据库最容易成为整个系统的性能瓶颈,这里刘超会重点解析一些数据库的常用调优方法。
2022-11-28 00:07:34
1383
1
原创 设计模式6大原则
耦合的方式很多,依赖,关联,组合,聚合等。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障。把创建 Pet 类做成抽象类(或者接口),并提供一个抽象的 shout方法,让子类去实现即可,这样我们有新的宠物种类时,只需要让新的宠物类继承 (或者实现)Pet,并实现 shout 方法即可,使用方的代码就不需要修 -> 满足了开闭原则。也就是采用接口隔离原则。
2022-11-07 20:26:23
141
原创 springcloud 项目搭建---》自己用
服务和模块介绍:应用服务 bankintegral-boot-server主要包括 token解析、用户uri权限拦截、日志、黑白名单等功能。认证模块: bankintegral-oauth主要包括 登录接口、获取用户权限接口、常用数据接口(如前端获取的字典、枚举接口)等接口和功能。权限模块: bankintegral-authority主要包括 组织机构管理、岗位管理、用户管理、系统设置、权限配置等功能。文件模块: bankintegral-file。
2022-10-20 14:56:26
858
原创 前后端开发规范
源码(java/vue)、开发工具、jdk、mysql、redis、rabbitmq、nacos等存放路径禁止包含中文、空格、特殊字符等。5、删除的方法用remove/delete做前缀 ---->deleteUser。4、插入的方法用save/insert做前缀 ---->insertUser。6、修改的方法用update做前缀 ---->updateUser。3、获取统计值用count做后缀 ----->userCount。1、获取单个对象用 get做前缀 ---->getUser。
2022-10-10 10:37:19
733
原创 带团队核心
1.树榜样、2.创环境、3.鼓士气、4.勤沟通、5.找方法、6.提问题、7.少插手、8.多赞美、9.给机会。1.尊重、2.倾听、3.用人、4.交流、5.决策、6.真诚、7.识人、8.让利、9.守信、10.担当。1.掌柜、2.心灵医生、3.教练、4.导演、5.后勤部长、6.监督者。1.定目标、2.会授权、3.抓监督、4.要结果。2、看报表一目标管理、结果导向、分析数据。1、开晨会一例会问早、点名、前日盘问。10、定计划一定制计划、安排次日工作。7、找老板一简要汇报工作、作风严谨。
2022-10-09 16:55:45
776
原创 如何管理散漫的团队
团队凝聚力是团队发展的核心,心往一处想,劲往一处使,领导可以创造机会展现团队凝聚力,比如团队一个月业绩突破50万组织旅游,再比如我们要干倒某某团队,或者每月流动红旗,让他们向我们膜拜等等。我认为建立团队或者个人的执行力需要领导首先每天,每周,每个月都要给每个人和团队订一个目标,个人达到目标的有什么奖励,团队达到目标的有什么奖励(奖励什么自己定,了解员。管理团队在合作中竞争是创造业绩不可缺少的环节,也是最重要的环秘籍让员工不仅要彼此竞争,更要互帮互助,这样才是团队。二、组织:配置资源、人、物、财、信息等。
2022-10-09 15:53:54
466
原创 怎样管员工才不会累
流程决定了效率,过程决定了结果,所以选对人做对事很重要,所有企业的成功归根结底都是用人的成功;所有企业的失败,归根结底都是用人的失败!每个员工都要按照规章制度来办事,有情的领导+无情的管理+绝情的制度,无规矩不成方圆。细节决定成败,要抓住人和事,把握每个关键点的细节,把失误锁在责任的笼子里。奖励自下而上,奖要奖的大家心花怒放;员工不会做你要求的事,员工只会做你要检查的事情;既要有短期的利益,又要有长期的利益;有能力的人要给他一点权力,要么让他盖章,要么让他签字。员工之间相互竞争,形成良好的制度。
2022-10-09 15:10:55
126
原创 领导提升团队执行力9个方法
所以,领导者要学会“制造问题”。总是说“很好”,下属就会产生惰性。布置工作的时候要“讲清结果”和“讲清后果”。结果不讲清,员工就没有干劲:后果不讲清,员工就没有后劲。一次讲例外,以后所有的失误就会变成常态。要将偶然的“例外”变成必须做到的“例行”。安全管理要求“一片否决”,执行力同样如此。要在全公司上下贯彻一种“结果文化”无论资历多深、职务多高、能力多强、态度多好,结果不好,就是不好。执行力好的,该奖励的不要心疼,执行不到位的,该处罚了不要手软。员工躺下了,企业也就倒下了,所以要实施危机管理。
2022-10-09 14:53:57
782
原创 什么是管理能力,管理者的品格有哪些
管理者在日常工作中妥善处理好上级、同级、下级等各种关系,使其减少摩擦,能够调动各方面工作积极性的能力。管理者必须面对许多难以解决的、甚至十分不明确的问题,但是只要采用合。识别和发掘下属的优势与潜能,用人之长,使其最大限度地发挥作用,实现。制定、控制计划节奏,检查实际业绩效益与计划的偏差,并采取必要措施,制定标准、过程、目标、绩效管理。4、领导:感召成员、激励下属、协调关系、指导工作。1、计划:调查、分析、决策、制定计划、目标。适的方法,几乎所有的问题都能成功解决。2、组织:配置资源、人、物、财、信息等。
2022-10-09 10:04:52
1283
原创 activiti工作流
2) act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录。2) act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息。5) act_hi_detail 历史详情表,提供历史变量的查询。1) act_ru_execution 运行时流程执行实例表。6) act_hi_procinst 历史流程实例表。
2022-09-29 17:21:50
295
原创 token和JWT token区别、登录安全、页面权限、数据权限、单点登录
包括:iss(issuer)、exp(expiration time)、sub(subject)、aud(audience)等 2)Plubic Claims, 3)Private Claims,交换信息的双方自定义的声明 { "sub": "1234567890", "name": "John Doe", "admin": true } 同样经过Base64Url编码后形成第二部分。{ "alg": "HS256", "typ": "JWT" } 这会被经过base64Url编码形成第一部分。
2022-09-27 23:04:50
4469
1
原创 使用腾讯tapd工具,进行创建迭代任务、任务拆解、、制定整体发布计划、多维度甘特图进度把控
从资源视角出发,查看事项在不同处理人下的数量、完成情况和时间利用率。:从业务对象的维度出发,对工作事项安排和进展一目了然。:查看事项在各个开发人员下的数量、时间安排和完成情况。:将数据按迭代聚类,迭代工作安排和精度更加清晰。如图所示:当前为按事项查看。
2022-09-26 17:48:50
4124
原创 数据签名和数据加密区别
A的签名只有A的公钥才能解签,这样B就能确认这个信息是A发来的;也就是保证整个过程的端到端的唯一确定性,这个信息是A发出的(不是别人),且是发给B的,只有B才被获得具体内容(别人就算截获信息也不能获得具体内容)。数据加密使用的是接受方的密钥对,任何知道接受方公钥的都可以向接受方发送消息,但是只有拥有私钥的才能解密出来;2、得到解密后的明文后用A的公钥(PUB_A)解签A用A自己的私钥(PRI_A)的签名。密钥有公钥和私钥之分。1、用自己的私钥(PRI_B)解密A用B的公钥(PUB_B)加密的内容;
2022-09-22 14:45:53
703
原创 https ssl单项认证和双向认证以及证书生成
非对称加密: 加密和解密使用不同的密钥,这两个密钥形成有且仅有唯一的配对,叫公钥和私钥。(3)客户端读取CA证书的明文信息,采用相同的hash散列函数计算得到信息摘要(hash目的:验证防止内容被修改),然后用操作系统带的CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。(3)客户端读取CA证书的明文信息,采用相同的hash散列函数计算得到信息摘要(hash目的:验证防止内容被修改),然后用操作系统带的CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。
2022-09-21 18:11:48
1299
原创 java部分工具类快捷使用技巧
4、PropertyUtils和BeanUtils的功能基本一致,唯一的区别是BeanUtils在对Bean赋值时会进行类型转化,而PropertyUtils不会对类型进行转化,如果类型不同则会抛出异常!建议基本类型在源目标类型一致的情况下使用PropertyUtils效率会更高。复杂类型的拷贝可以使用Dozer。3、以上是在只考虑基本类型的情况下比较的,dozer如果深拷贝或者关联拷贝时,效率应该会更慢。2、十万次以上的效率beanutils的效率和dozer差不多。...................
2022-07-28 13:54:56
286
原创 linux centos 8 使用docker安装redis
1、查看redis本地镜像docker images --看有没有2、先获取最新版的 Redis 镜像docker pull redis:latest --redis:latest 是指默认最新版本3、创建redis配置文件(主要是将docker虚拟机上的redis数据映射到主机上,防止docker删了redis数据也跟着删了)mkdir -p /usr/local/soft/redis/confmkdir -p /usr/local/soft/redis/data
2022-07-11 18:15:24
787
项目进度计划表------》根据开始时间和结束时间自动显示开发周期甘特图
2022-10-07
rabbitmq_delayed_message_exchange-3.8.0 延迟队列插件
2022-05-30
elasticsearch-head 可视化界面
2020-12-04
linux 执行压测脚本文件
2020-09-13
nice_server_homeedu_prod.sh
2020-09-13
ossimport-2.2.1.zip
2020-08-12
nginx_log_script.sh(切记,下载后将文件命名成nginx_log_script.sh,目前英文字母写错了)
2020-07-29
linux 用户任务定时器配置 crontab -e 编辑的文本
2020-05-14
current_prod.sh
2020-05-12
linux 执行java项目脚本 dev.sh
2020-05-12
chromedriver_linux64.zip
2020-05-05
nginx 配置成服务
2019-04-25
mongoDB配置文件
2019-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人