Hadoop,云计算,Java技术分享,追逐新技术,落地在项目 <( ̄︶ ̄)↗[GO!]

接口幂等性

2018年5月16日 admin 没有评论

接口的幂等性实际上就是接口可重复调用,在调用方多次调用的情况下,接口最终得到的结果是一致的。有些接口可以天然的实现幂等性,比如查询接口,对于查询来说,你查询一次和两次,对于系统来说,没有任何影响,查出的结果也是一样。 除了查询功能具有天然的幂等性之外,增加、更新、删除都要保证幂等性。 在分布式环境中,操作互斥性问题和幂等性问题非常普遍。经过分析,我们找出了解决这两个问题的基本思路和实现原理,给出了具体的解决方案。 针对操作互斥性问题,常见的做法便是通过分布式锁来处理对共享资源的抢占。分布式锁的实现,很大程度借鉴了多线程和多进程环境中的互斥锁的实现原理。只要满足一些存储方面的基本条件,并且能够解

分类: Java 标签:

Servlet、Spring MVC和 Struts2线程安全

2018年5月9日 admin 没有评论

Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。 Spring的Ioc容器管理的bean默认是单实例的,上一次请求处理的状态信息被保持下来,并影响了下一次的请求,实际上就是Action中的类变量被不同的请求读取,出现错误结果 解决:就是不用单例, spring中bean的作用域设为prototype,每个请求对应一个实例.

分类: Java 标签:

js中return null和return false的区别

2018年4月25日 admin 没有评论

1. return返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交 2. return false,事件处理函数会取消事件,不再继续向下执行。比如表单将终止提交 这里面的return含有一些细节知识: 例如:onClick=’return add_onclick()’与 onClick=’add_onclick()’的区别 JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。 而该值决定了当前操作是否继续。 当返回的是true时,将继续操作。 当返回是false时,将中断操作。 而直接执行时(不用return)。将不会对window.event.returnvalue进行设置 所以会默认地继续执行操作 在onclick事件上这样处理

分类: Java 标签:

MyBatis获取刚刚插入对象的id

2018年4月19日 admin 没有评论

适用于对于支持自动生成主键的数据库 一、数据库表中ID的设计 id int型 自动递增 二、MyBatis的Mapper useGeneratedKeys=”true” keyProperty=”id” 是重点 <insert id="insert" useGeneratedKeys="true" keyProperty="id"> INSERT INTO rdss2_report( report_name, componets, update_date, create_date, update_by, create_by ) VALUES ( #{reportName}, #{componets}, #{updateDate}, #{createDate}, #{updateBy.id}, #{createBy.id} ) </insert> 三、Java代码 重要代码如下,在保存完对象后,mybatis会自动把ID反填入对

分类: Java 标签:

Spring MVC前端JSON数据传到后端

2018年4月17日 admin 没有评论

传送List json 前端发送数据代码: //准备数据 var componetsArray = new Array(); var dataTmp = {}; dataTmp["component_id"] = panel_biee_components.attr("id"); dataTmp["component_width"] = orgNumIndex; componetsArray.push(JSON.stringify(dataTmp)); //发送请求 $.ajax({ type: "POST", url: $("#porjectPath").val()+"/f/report/rdss2Report/saveReport", datatype: "json", data:{"listParam" : componetsArray}, success: function(data) { alert(data.result); } }

分类: Java 标签:

hive中的join

2018年3月29日 admin 没有评论

一、hive中的join inner join 等价于 join, 可以理解为 join 是 inner join 的缩写;left join 等价于 left outer join ;right join 等价于 right outer join; 二、 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行

分类: Hadoop 标签:

superset SQL生成的研究

2018年3月15日 admin 没有评论

superset类似系统,一期实现不要实现这么复杂的SQL拼接: SELECT state AS state, job_date AS __timestamp, sum(job_num) AS sum_job_num FROM (select count(1) as job_num, state, job_date from job_info group by state, job_date) AS expr_qry INNER JOIN (SELECT state AS state__, sum(job_num) AS mme_inner__ FROM (select count(1) as job_num, state, job_date from job_info group by state, job_date) AS expr_qry WHERE job_date >= STR_TO_DATE('2017-12-05 00:00:00', '%%Y-%%m-%%

分类: Java 标签:

阿里巴巴Java开发规约插件安装

2018年3月8日 admin 没有评论

Eclipse版插件支持4.2(Juno,JDK1.8+)及以上版本,我们提供自主的Update Site,通过 Help >> Install New Software 然后输入https://p3c.alibaba.com/plugin/eclipse/update 即可看到安装列表。大家可以通过 Help >> Check for Udates 进行插件新版检测。安装完成后打开java代码,右键菜单里就可以找到选项,运行查看代码质量报告。 详细使用说明:https://yq.aliyun.com/articles/224817 github地址: https://github.com/alibaba/p3c/tree/master/idea-plugin#run-plugin   PMD、FindBug、checkstyle、sonar这些代码检查工具的区别?各自的侧重点是什么? pmd:基于源代码分析,主要面向安全编码规则,如“避免声明同名变

分类: Java 标签:

什么是分布式系统中的幂等性

2018年2月28日 admin 没有评论

现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能再服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样请求有多次,那么处理数据的结果是否要统一呢?那是肯定的!尤其再支付场景。 幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会

分类: Java 标签:

TCC和两阶段分布式事务处理的区别

2018年2月25日 admin 没有评论

经常在网络上看见有人介绍TCC时,都提一句,”TCC是两阶段提交的一种”。其理由是TCC将业务逻辑分成try、confirm/cancel在两个不同的阶段中执行。其实这个说法,是不正确的。可能是因为既不太了解两阶段提交机制、也不太了解TCC机制的缘故,于是将两阶段提交机制的prepare、commit两个事务提交阶段和TCC机制的try、confirm/cancel两个业务执行阶段互相混淆,才有了这种说法。 两阶段提交(Two Phase Commit,下文简称2PC),简单的说,是将事务的提交操作分成了prepare、commit两个阶段。其事务处理方式为: 1、 在全局事务决定提交时,a)逐个向RM发送prepare请求;b)若所有RM都返回OK,则逐个发送commit请求最终提交事务;否则,逐个发送ro

分类: Java 标签: