- 浏览: 60662 次
- 性别:
- 来自: 上海
最新评论
文章列表
高并发下怎么生成唯一订单号
方案一:
如果没有并发的话,订单号只在一个线程中产生,不同订单的时间戳不同,
时间戳+随机数(自增数)区分订单
如果有并发的话,并且订单号在同一台主机产生多个进程,只要把进程的ID添加到序列号中就可以保证订单号唯一。
如果有并发,订单在不同主机中,把IP地址 CPU序列号 能区分的号码添加到序列号中就能保证唯一。
方案二:
时间戳+用户ID+随机数+乐观锁
方案三:
可以用redis的原子递增,做高可用集群
redis本身就有生成序列号的功能,使用执久化的线程安全的
方案四:
java自 ...
支付成功后去再次验证支付状态
try {
// 到微信查询支付状态
Map<String, String> accountParamsMap =accountsMap.get(SalesOrder.PAY_ACCOUNT_KEY_WECHAT);
OrderQueryResponseCommand queryResult = wechatPaymentService.orderQuery(accountParamsMap.get(PaymentAccountCommand.Wechat.appi ...
支付必须的四个参数
/** appId(微信分配的公众账号ID). */
app_id,
/** secret(公众账号ID对应的密钥). */
secret,
/** partnerId(商户号). */
partner_id,
/** paySignKey(商户号签名). */
pay_sign_key,
1.企业公众号
app_id 18位左右
secret 32位
2.商户号
partner_id 8,10位左右
pay_sign_key 32位
二.二维码支付
2.1传参数:
2.2 传参错误校验
sign是根据参数按照顺序(A ...
nunipay:
5100030
2017-06-02 13:52:18.281 [http-nio-8003-exec-1] DEBUG SDKUtil.java:275 com.baozun.nebulaplus.payment.unionpay.utils.SDKUtil -encoding-->UTF-8
2017-06-02 13:52:18.282 [http-nio-8003-exec-1] DEBUG SDKUtil.java:275 com.baozun.nebulaplus.payment.unionpay.utils.SDKUtil -version--&g ...
订单支付后才能拆单,
订单支付前前端能取消订单,支付后oms才可以取消订单
订单超时关闭取消解决方案:
1.延迟队列,超时时间后插入队列,另开启线程监听处理队列。
Delayqueue中的对象需要实现Delayed接口
缺点:异常回复困难,适用于单机,分布式或集群实现困难。
2.定时任务,轮训数据库订单表。
3.redis,redis相当于有序队列,时间戳和订单号,作为score和member。
加到redis
Jedis redis = jedisPool.getResource();
redis.zadd(key,score,member);
取redis数据
Jedis re ...
微信支付:
https://pay.weixin.qq.com/wiki/doc/api/index.php
蚂蚁金服:
支付宝需开通服务:
API 1.0
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.xXBAjT&treeId=62&articleId=104743&docType=1
API 2.0
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.KPiF2E&treeId=203&art ...
[img][/img]http://lib.csdn.net/article/redis/35914
https://mp.weixin.qq.com/s/507jyNbL4xCkxyW6Xk15Xg
瞬时高并发(秒杀/活动)Redis方案
https://blog.csdn.net/zhiguozhu/article/details/50517527
redis整合spring(redisTemplate工具类):
https://blog.csdn.net/qq_34021712/article/details/75949706
sentinel[ˈsentɪnl] 哨兵
http://blog.csdn.net/peterwanghao/article/details/44980085
一.哨兵机制:
Redis Sentinel是Redis官方提供的集群管理工具,使用一个或多个sentinel和Redis的master/slave(主/从)可以组成一个群集,可以检测master实例是否存活,并在master实例发生故障时,将slave提 ...
CDN的全称是Content Delivery Network,即内容分发网络:
cdn 二级域名 ,一个绑定一个站点。
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串:
智能dns 有逻辑,一个域名去哪个ip站点。 nginx,提供服务一模一样。
dubbo 配置文件详解
- 博客分类:
- dubbo
dubbo中文文档:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html
dubbo 配置文件详解:http://www.cnblogs.com/linjiqin/p/5859153.html
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=" ...
pom.xnl
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
spring-mvc.xml
<be ...
solr搜索引擎_电商搜索(java代码实现)
- 博客分类:
- 搜索引擎
pom.xml:
<!--solr搜索引擎-->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>4.10.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.so ...
mysql服务端安装(centos)
- 博客分类:
- 数据库+缓存
http://jingyan.baidu.com/article/fec7a1e5f8d3201190b4e782.html
http://www.centoscn.com/CentosBug/osbug/2016/0111/6643.html
概述:
CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14。
正文:
一:卸载旧版本
使用下面 ...
使用场景:
域A调用域B,跨域访问时使用,正常的ajax不可以跨域使用。
项目中场景:
不同域名的购物车实现—两个不同域商城调用第三个域公用接口,把所有购物车信息保存到此公用域的Cookie。
而不同域网站调用第三个域公用接口,这属于跨域访问,所以用到jsonp。
jsonp跨域响应时记得把这个响应头加进去 P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
前端js:
// 使用jsonp发送文本对象(aja ...
git分布式
元数据来存储
git没有一个全局的版本号
git性能优于svn
一.centos安装git:
[root@git ~]#yum install -y git
1.1 创建仓库,新增文件,提交文件:
git init 将此文件夹创建成git仓库。
git add 命令让git知道新增了文件,需要git进行版 ...