- 博客(27)
- 资源 (8)
- 收藏
- 关注

原创 服务幂等设计
一、概念幂等这个概念,是一个数学上的概念,即:f……(f(f(x))) = f(x)。用在计算机领域,指的是系统里的接口或方法对外的一种承诺,使用相同参数对同一资源重复调用某个接口或方法的结果与调用一次的结果相同。二、业务场景从业务场景上来说,如:现在互联网上的下单服务,同一个用户在短时间内调用某一个下单服务,只能下单成功一次;银行账户之间的转账,A账户给B账户转账,无论系统出现什么问...
2020-05-02 21:08:53
509

原创 分布式事务,你了解多少?(下)
四、柔性分布式事务柔性分布式事务是相对刚性分布式事务、是对强一致性的妥协,从而降低对数据库资源的锁定时间,提升系统的性能。柔性分布式事务适合于长事务、高并发,强调最终一致性的场合。常用的实现柔性分布式事务的方式有:TCC模型、Saga模型、基于消息队列的异步模型。1、TCC(Try-Confirm-Cancel)模型TCC是一个两阶段提交(2PC)的实现,每一个业务都需要实现Try...
2020-04-12 13:15:34
346

原创 分布式事务,你了解多少?(上)
本文主要是讲述分布式事务的理论及常用的技术方案,分布式事务的其他基础请自行查阅资料。一、分布式事务产生的原因分布式事务的产生,源自互联网、电商等的发展,当同一个系统不同模块不同业务的数据在一个存储设备里存储不下时,就需要按业务、按模块把数据拆分到不同的存储设备进行存储。拆分后的多个存储设备没法同时保证事务的四性(ACID)得到满足,这就产生了分布式事务。事务的四性(ACID):Auto...
2020-04-11 23:10:54
283
原创 大报文之道:优化策略与实践
在做正常的需求开发时,当我们提供了一个接口或是调用别人接口时,我们需要考虑接口除了正常的逻辑处理外,还需要考虑接口能接收报文的上限,性能,响应时间等一系列非功能性需求。如果不注意这些问题,就可能在某一天的某个时刻收到一系列系统告警,严重者甚至导致系统不可用,引发线上事故。如涉及明细列表相关的接口中没考虑明细的上限,某一时刻上游下发了一个大明细从而可能就引发了上述的问题。这就是日常所说的大报文,其特点就是单次请求的数据量特别大,超出了系统正常的处理能力,需要耗费较长的时间才能处理完成。
2024-03-27 20:59:05
806
原创 供应链、产业链的演进
产业链指的是一个产品或服务从原材料采购到产品制造再到最终消费者的整个生产流程。它包括了供应商、制造商、分销商和最终消费者之间的各个环节,形成了一个有机的整体,每个环节都相互依赖、相互支持。供应链是专注于原材料和零部件的供应,以及产品的制造和分发。供应链管理涉及到供应商选择、采购协商、物流运输、库存管理等一系列活动,旨在确保生产过程的高效、流畅和准时交付。从它们的定义可以看出,供应链是产业链中的一个关键环节。现代生活中,供应链与产业链的关系越来越密切,越来越密不可分。
2023-12-20 22:13:31
176
原创 Flink中state使用揭秘
在flink中,state是其重要的特性之一。有了state使得在数据流上进行状态的计算成为了可能,为flink的发展做出了重要贡献。没有state时需要在flink上进行状态的计算将会非常复杂且在复杂场景下无法实现,如集群宕机时状态快照的保存。
2022-10-09 17:17:02
2218
原创 《系统之美》读书笔记——下
系统思考是整体地、动态地、连续地思考问题的思维模式,是在复杂动态系统中的一种以简驭繁的智慧。决策者唯有深刻领悟系统思考的精髓,才能在正确的时间、正确的地点,做正确的事情。本书清晰易读,有助于各行各业的读者把握我们这个复杂世界到底是如何运作的,并善加利用。
2022-09-29 20:57:38
1607
原创 《系统之美》读书笔记——上
“会干活”的前提是“会思考”。如果你想克服自己思维中固有的缺陷,学习和提升系统思考能力,应对复杂性挑战,学会与系统共舞,那么本书对你来说将是一部从入门到精通的智慧宝典。
2022-09-29 20:43:03
525
原创 《软件设计的哲学》读书笔记
软件系统的复杂性只有深入系统后才会被发现,软件系统的一个功能并不复杂,但随着系统的日益庞大,系统的复杂度就会逐步递增。本书作者通过对软件设计的剖析,试图通过软件设计来降低日益递增的复杂度。相信通过对本书的阅读,结合日常实践,对降低软件系统的复杂度将有一定的帮助。
2022-09-27 15:03:01
413
原创 分库分表之拆分键设计
在关系型数据库中,当单表不能满足业务时,常用的办法就是用分库分表,那分库分表时,关于拆分键的设计一定是分库分表成功与否的关键,本文主要带给你了解拆分键设计的一些方法与技巧。
2022-01-25 17:58:58
3668
转载 “返回顶部”页面效果实现
首先,在body中添加“返回顶部”按钮:<body> <div class="go-top"> <div class="arrow"></div> <div class="stick"></div> </div> ... </body>重点是go-top的CSS定义:div.go-top {...
2020-05-02 21:13:44
308
原创 数据库存储技术的发展
数据库作为信息技术的存储介质,其本身也伴随着信息技术的发展而发展。随着互联网技术的发展,数据库技术也从原来以关系型数据库为主的阶段,发展到如今的仅依靠关系数据库无法解决问题的阶段。从2008年左右以web2.0的兴起,互联网呈现爆炸式增长,传统的关系数据库开始显露出自身的不足。业界急需一些新的数据存储技术来满足业务的发展。尤其是大数据、云计算、移动互联网的兴起,促使了一些非关系型数据库(如:Mon...
2020-04-12 18:20:56
2786
原创 新家开启
由于网易博客关闭,把之前写的一些文章搬到优快云,原博客目前已不对外开放,地址:http://qhxn-328-liaozx.blog.163.com/
2020-03-29 15:25:11
134
原创 WebService生成客户端的两种方式
一,用批处理生成客户端借助cxf项目,生成客户端。1,下载cxf项目,根据公司的要求,目前用的版本是apache-cxf-2.5.2。解压缩到到当前目录。2,在同级目录中,建立一个批处理文件,文件中的内容为:@echo offtitle 客户端调用外部系统接口.生成java客户端cd D:\Program_Files\Java\apache-cxf-2.5.2\bind:@echo...
2020-03-29 15:24:34
514
原创 MySQL连接池没配置导致的问题
最近的一个项目中用到了MySQL数据库。由于上线时没配置连接池信息,会时不时的出现连接用完,导致没法连接数据库。具体的异常信息如下:Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after con...
2020-03-28 20:58:17
636
原创 android访问WebService(axis)
我自己发布的webService就是不能被android访问,后面从网上查了下,我自己的webservice是用apache cxf发布的,不能访问。后面改成axis发布后就能访问了。具体原因不明确,望高手指点一二,现把axis发布的demo记录如下。前提:axis已经下载下来并部署到tomcat中。具体操作google或baidu。一,服务器端package com.zsxh.tes...
2020-03-28 20:43:37
239
原创 Spring事务管理中 org.springframework.transaction.UnexpectedRollbackException解决
最近在项目中,之前一直在调用的方法,由于调用的地方加了个try{}catch后,报了如下的异常:org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only代码的结构如下:Class A {@...
2020-03-28 20:39:47
3910
原创 三种bean拷贝的效率比较
由于在项目中用到bean属性复制,之前没太注意效率问题,直到在项目中使用后出现了性能问题,才发现各种拷贝的性能之差别。 cglib 的 BeanCopier、spring 的 BeanUtil和apache 的 BeanUtils在做属性拷贝时,性能的高低依次为:BeanCopier > BeanUtil > BeanUtils 所以,在项目中使用...
2020-03-28 20:29:03
1621
原创 python 时间日期格式化处理
python中,时间日期格式化和其他语言(如:java)稍微有不同,下面就来做个简单的记录,方便自己以后使用。 python中,使用时间,首先要导入time模块,import time。然后才能使用。代码如下:import timeprint time.time() 结果是一长串数字表示的时间,我们不能很清晰的看出时间。需要对该时间做格式化,用strftime()方法来对时间进...
2020-03-28 20:26:42
485
原创 Django亲自实践之安装步骤记录
Django是python进行web开发的一个使用较多的框架。本文主要介绍在win7下安装Django。一、下载Django项目。URL:https://www.djangoproject.com/下载完成后解压出来。二、在cmd模式下进入到解压出来的django目录。输入:python setup.py install提示错误,错误信息:ImportError: No module n...
2020-03-28 20:21:43
105
原创 eclipse下创建Django项目
1,创建项目File--->new--->Other---->PyDev---->PyDev Django Project2,项目的src下新建应用File--->new--->PyDev Module3,修改settings添加我们创建的应用4,在应用中使用模板时,在应用的文件夹下创建templates文件夹,里面主要放HTML等文件(模板文件)5...
2020-03-28 20:19:59
217
原创 MYSQL必知必会
一、mysql innodb存储引擎的特点:1,支持事务(OLTP);2,高并发(MVCC);3,行锁;4,外键;5,非锁定读;二、伪列、分页1、ROWID,如果数据库表没有设置主键,innodb会自动添加rowid主键,但是查询不到;如果有主键,则rowid默认等于主键。row_id,oracle的伪列,可以查询出来。2、limit优化:(limit 10,10 ......
2020-03-28 19:56:20
259
原创 SpringMVC从网络地址下载文件
例如有这么个地址:http://xxx/abc,直接把这个地址放到浏览器后,只能打开图片,不能下载,这个时候,我们需要做一定的处理后才能下载该地址的文件。我使用的框架是SpringMVC,所以这里的示例代码也是在SpringMVC下验证通过的。@RequestMapping(value = "/download",produces="application/octet-stream")...
2020-03-28 19:54:47
576
原创 Mysql死锁场景总结 (引擎:innodb隔离级别:RR)
概述死锁:死锁一般是事务相互等待对方资源,最后形成环路造成的。此种场景常见于Springmvc模式中,把事务交由spring管理的场景。这种模式下,由于业务的比较复杂,会导致一个事务内会有多次和数据库进行通信的机会,导致事务一直没提交,产生大事务。下面具体分析几类在工作中遇到过的死锁场景,主要介绍单表场景,死锁在多表场景中也有,可以按单表的思路进行分析。死锁场景一、upd...
2020-03-28 19:50:11
838
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人