【项目总结】
文章平均质量分 92
钟艾伶
这个作者很懒,什么都没留下…
展开
-
大事务拆分项目应用-再看事务嵌套
一、何为事务嵌套最简单的事务嵌套情况:开启了一个事务的情况下,再开启一个事务2。或者:在t1、t2分别为两个事务操作,而外层t3事务包含t1(t2),t3跟t1(t2) OR 例如在支付系统中,在进行支付校验时,事务1负责更新账单状态&插入历史表,事务2负责创建支付记录及明细,如果假设更新账单状态成功,二创建支付记录失败,则导致账单状态与支付状态丢失数据一...原创 2018-04-16 18:13:08 · 3160 阅读 · 0 评论 -
秒杀业务缓存应用分析
内存的数据操作时间为纳秒级别,而一次SSD盘数据访问在几十微妙,SATA盘在几十毫秒,可以看出内存和磁盘IO上存在量级的差异。所以在对性能有高要求的系统中,一般都采用缓存(大多缓存实现都是基于内存处理的)将数据load进内存中,提高处理率和吞吐。尤其是高并发量的电商秒杀业务。那秒杀又分为小库存商品秒杀和大库存商品秒杀,例如100台3c产品和1w带洗衣液。下面分别对两种秒杀类型在缓存使用上进行分析。...原创 2018-04-12 21:54:04 · 624 阅读 · 3 评论 -
互联网一致性架构实践
同样沈主席分享,分别从如何保证Session一致性、主从、主主一直、缓存一致以及时间问题待分享的冗余数据的一致性、多库事务的一致性、库存扣减的一致性、消息时序的一致性进行讨论。单机部署必然不会出现保证一致性的系统设计,一致意味着至少大于等于2台服务节点,才有必要考虑双机数据一致的问题。数据多种类型,如上提到的session数据、db集群数据、缓存与db的数据。从具体到抽象,先分别看看各种数据类型在...原创 2018-05-17 11:04:33 · 729 阅读 · 0 评论 -
数据库设计——smallint(5) VS varchar(5)
一个比较有意思的case,写出来自嘲一下。背景很简单,同事调用我方创建账单接口,创建失败,查日志显示Data truncation: Out of range value for column 'channel' at row 1明显,对方传入的channel字段超过了smallint的最大值。(业务上该值不会超过smallint最大值,对方误传告终)。于是笔者顺手百度了两个点1、smallint...原创 2018-05-23 14:50:27 · 5760 阅读 · 2 评论 -
善其事l利其器篇——FastJson API
FastJson作为阿里的开源框架,基于JSON协议进行序列化、反序列化;支持Json对象与任意Java Bean Class、Collection、Map、Date之间的转换。项目中经常用到,故作此总结,主要针对常用API,侧重实践。对象及API(常用)1、JSON解析器:负责实现对象与json串之间的转换工作(序列化、反序列化操作)2、JSONObject:普通key-value键值对Stri...原创 2018-06-05 17:06:10 · 414 阅读 · 0 评论 -
JDK 序列化 serialVersionUID应用
通常,RPC调用有多种序列化方式,本文简单介绍一下JDK自带的序列化接口Serializable使用事项。一、serialVersionUID一般实现Serializable接口的序列化对象会要求声明一个long型的serialVersionUID(非强制,不写会有默认值),该变量有何用?1、序列化操作时,系统会把当前类声明的serialVersionUID写入到序列化文件中,用于反序列化时系统会...原创 2018-06-12 18:22:47 · 1055 阅读 · 1 评论 -
(一)服务容量预估
昨天一大神又做了一次精彩的分享,关于服务容量预估和常用的优化策略。鄙人将分享内容case及个人理解写出来,一在自我回顾总结,二在分享给大家,一起讨论。Case用户运营提出某活动价促销需求(优惠力度很大),且活动商品无限量供应。计划给1000w用户发送促销短信。问:你是负责该活动的RD,这次活动需要加机器吗? 回答这个问题需应基于历史活动的访问量、机器性能指标表现而定;且是否加机器首先还得清楚机器硬...翻译 2018-05-29 17:47:52 · 3633 阅读 · 3 评论 -
(二)常用的优化策略
一、性能瓶颈的定位查看操作系统负载1、CPU (查看各性能指标命令集合-待整理)2、IO3、带宽4、其他使用Profiler测试,另外外部工具例如Java的JProfiler/TPTP/CodePro Profiler;通过日志查询二、性能优化策略(具体case)空间换时间1、将远程调用改为数据初始化到heap堆中(us级),服务提供端本地查找时间、减少RPC 网络传输时间。2、当jvm heap...翻译 2018-05-29 18:59:39 · 543 阅读 · 0 评论 -
Spring AOP项目应用——方法入参校验 & 日志横切
应用一:方法入参校验由于系统多个方法入参均对外封装了统一的Dto,其中Dto中几个必传参数在每个方法中都会进行相同的校验逻辑。笔者考虑采用Spring AOP进行优化,拦截方法进行参数校验。测试case实现如下:Before/** * 被代理的目标类 */@Servicepublic class PayOrderTarget { @Autowired private Pay...原创 2018-06-06 16:39:22 · 1943 阅读 · 2 评论 -
善其事l利其器篇——Maven Profile按需加载开发、测试和产品环境的配置文件
本文介绍如何使用Maven Profile按需加载开发、测试和产品环境的配置文件,可以避免在测试环境和产品环境进行部署时反复更改配置文件的工作。使用开发环境的配置文件,编译和启动tomcat容器编译项目:mvn clean install -Denv=dev启动容器:mvn tomcat7:run -Denv=dev1234使用测试环境的配置文件,编译和启动tomcat容器编译项目:mvn...转载 2018-06-06 17:43:01 · 434 阅读 · 0 评论 -
Spring AOP事务管理
前两篇写了将Spring AOP应用与入参校验和拦截方法进行日志打印。本篇继续应用三AOP应用于事务管理,顺便把事务相关技术点统一Review一遍。(同样基于case)事务管理回顾基于用户支付成功后,创建支付订单和支付记录(两个表的insert操作)来回顾事务管理。一共涉及3个方法1)创建pay支付记录逻辑 2)创建order支付订单逻辑 3)组合方法:调用方法1、2同时创建支付记录和支付订单Ca...原创 2018-06-07 14:11:06 · 1873 阅读 · 1 评论 -
JVM线程、内存问题排查
一、高CUP排查排查思路1)找出占用高的进程 2)找出占用高的线程 3)找出具体的代码工具jstack + top 命令排查步骤 1、找出占用高的进程,执行“top -c”命令,显示进程运行信息列表,键入大写P,按CPU使用率降序排列 如上,找出了进程ID :63821 占用CPU第一,为2%。(这里只是随意找了台测试机,2%的CPU占用率实际情况基本可以忽略)。Top命令...翻译 2018-06-01 16:11:22 · 2580 阅读 · 2 评论 -
Top命令详解
top命令提供了实时的对系统处理器的状态监视.结果显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用情况、内存使用情况、执行时间对任务进行排序; 一、系统整体信息top - 12:38:33 up 50 days, 23:15, 7 users, load average: 60.58, 61.14, 61.22Tasks: 203 total, 60 running, 139 s...转载 2018-06-01 16:16:23 · 829 阅读 · 3 评论 -
单点登录系列之——HTTP请求与Cookie讲解
HTTP、Cookie、Session HTTP协议作为无状态协议,无状态并不陌生,EJB bean中就有有状态、无状态之分,对于HTTP协议而言,无状态同样指每次request请求之前是相互独立的,当前请求并不会记录它的上一次请求信息。那么问题来了,既然无状态,那完成一套完整的业务逻辑,发送多次请求的情况数不胜数,使用http如何将上下文请求进行关联呢?机智的人类通过优化原创 2016-04-09 20:04:21 · 3272 阅读 · 3 评论 -
SSO系列之——同域下单点登录系统介绍
Single-Sign-On即单点登录,从一个页面登录,就可以访问其他互信系统,避免用户重新登录,例如登录了百度,则百度云等其他百度旗下其他网站均可免登录访问。在整个业务服务群中起到了辅助、集成的作用。 SSO体系结构客户端调用模块认证中心认证中心是SSO系统的核心,它先验证用户是否有权限访问系统,如果有让用户访问系统资源;如果没有,提供一个登录页面。原创 2016-04-09 21:13:22 · 5043 阅读 · 4 评论 -
使用cookie实现跨域系统单点登录
上一篇博客介绍了单点登录的认证流程和实现,本文将介绍通过cookie实现单点登录。 单点登录作为目前比较流行的服务于企业业务整合的解决方案之一, 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。实现这一需求的思路和技术各有千秋.一、SSO 的主要实现方式有:1、 共享 cookies基于共享同域的 cookie 是原创 2016-04-18 15:30:01 · 16040 阅读 · 4 评论 -
数据同步平台——FTP
FTP服务器: 主要作用就是让用户连接上一个远程计算机,查看远程计算机上的文件,并可实现将文件在本机和远程计算机之间的传递。简言之,在两台电脑都运行着FTP服务程序时,通过FTP协议远程操作另一台pc机,对其进行文件的复制、移动、删除。FTP协议: FTP协议规定了计算机之间的标准通信方式,使不同类型、不同操作系统的电脑之间实现文件的互传传输。通过用户登录权限验证操原创 2015-08-10 21:25:33 · 2350 阅读 · 5 评论 -
数据库连接池JNDI
数据库的连接和关闭是非常消耗系统资源的,在多层结构的应用环境中,这种资源消耗又直接的反映到系统性能上来。在项目实际应用中,最常用的解决方案便是建立数据库连接池。 一、数据库连接池基本原理当程序启动时,系统主动建立出足够的数据库连接,并将这些连接组成一个连接池。每次应用程序请求数据库连接时,无需重新建立,直接从链接池中获取已建立连接。使用完毕后,无需关闭,直接归还给数据库连接池,以备...原创 2016-01-19 08:08:32 · 4556 阅读 · 0 评论 -
MongoDB应用篇——面向集合的数据库操作
上篇博客已经对mongoDB在windows平台下的安装配置进行操作,接下来双击monge.exe,开始对数据库进行数据操作。插入记录:【insert】下面我们来建立j 和 t 两个对象,并保存到集合test中去。插入一条记录(id为3,姓名为Max):查询记录:【find】1、普通查询:2、条件查询原创 2014-12-23 11:43:27 · 1347 阅读 · 20 评论 -
MongoDB基础篇——走进非关系型数据库mongoDB
NoSQL之MongoDB入门1、关系模型数据库1)简单来说,关系模型指的就是二维表格模型,而一个关系模型数据库就是二维模型与其之间的联系 (relation)组织而成。2)关系模型常用要素:记录:二维表中的一行,也叫做元组字段:二维表中的一列,也叫做属性关系:一张二维表,由记录和字段构成2、关系型数据库的弊端关系型数据库原创 2014-12-22 21:51:51 · 3874 阅读 · 61 评论 -
敏捷开发——Scrum核心
在上篇博文中,博主主要对教授课程中所透露的现代开发热点词汇进行了总结和介绍。本文将分享自己对敏捷开发的认识,和实现敏捷开发思想的核心方法。敏捷开发:一、什么是敏捷开发? AgileDevelopment是一种以人为核心、迭代、循序渐进的开发方法。1、以人为核心 vs 以文档为驱动 瀑布模型大家都不会陌生,其主要特点原创 2015-08-21 20:48:21 · 4264 阅读 · 0 评论 -
什么是REST?以及RESTful的实现
什么是REST?REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。Web 应用程序最重要的 REST转载 2016-03-17 18:25:18 · 762 阅读 · 1 评论 -
微服务实战(一):微服务架构的优势与不足
英文原文:Introduction to Microservices 这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现在他为企业提供如何开发和部署应用的咨询服务。他也经常在http://microservices.io上发表有关微服务的文章。 微服务正在博客、社交媒体讨论组转载 2016-04-05 19:45:44 · 2603 阅读 · 2 评论 -
About JAVA ,You Should Know-程序员的自我修养
从java jdk Alpha and Beta 到Java SE 10;从1998年的JPE(Java Professional Edition)开始到2014年推出的Java EE8,经过了漫长的发展与完善,java在程序开发中逐步奠定自己平台的王国。对于一个java企业开发人员而言,每个版本涌现的新技术是我们必须了解的。下面从J2SE和J2EE两个版本分别总结一下原创 2016-04-26 11:09:44 · 1038 阅读 · 1 评论 -
Restfu架构设计l概述
一、restful简介 Rest是Fielding 博士在2000年提出的一个互联网软件的架构原则,起名为Rest即 Representational State Transfer。 关于Restful风格的架构设计具有以下一些专有名词和特点: 1、表现层资源 所谓资源,表示网络上的一个具体信息或实体,在Restful风格中,URI、网页page等原创 2016-04-26 11:51:11 · 1553 阅读 · 1 评论 -
OpenStack 和云计算(扫盲篇)
背景:工程尾期,将全套应用服务部署到OpenStack上。没用过,于是抽丝剥茧,研究研究啥是OpenStackWhat is OpenStackOpenStack是一个可以管理整个数据中心里大量资源池的云操作系统,包括计算、存储及网络资源。管理员可以通过管理台管理整个系统,并可以通过web接口为用户划定资源。基于Iaas(Infrastructure as a Servic,基础设施即...原创 2019-08-13 12:02:16 · 2834 阅读 · 0 评论