自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 谈谈我对电商交易系统的理解

自我介绍:本人目前在一家独角兽电商公司做后端开发,负责电商交易链路相关功能开发,接触交易系统有一段时间了,现在谈谈我对交易系统的一些看法,算是对之前工作内容做下总结。我对交易系统总结:交易系统作为电商链路中的核心一个环节,承载着整个平台流量的变现。它依赖下游会员、促销、商品、支付等服务,并为上游横向业务提供交易功能的支撑。交易系统需要保证什么特性、或者说交易系统的难点在哪里?我这边总结了3个点:稳定性 支持业务扩展 数据一致性。本文我将从上面几个角度来谈...

2021-03-03 22:18:01 1812 2

原创 流程编排在电商系统中应用

什么是流程编排?流程编排就是将接口或者一段复杂的业务代码拆分成一个个节点/步骤然后聚合成一条执行链,流程编排适合复杂的业务系统,列如电商交易系统。名词流程: 执行处理的整个过程(通常可以理解为一个接口,如下单接口) 节点/步骤:一个完整的流程可以分为多个节点,每个节点可以完成单一的业务行为,比如下单流程中的限流、限购、拆单等。一个节点通常是一个类或者spring bean。 上下文:将节点返回的数据设置到上下文context中,让后续节点能够获取到相关数据(如拆单节点需要获取到初始化购物车节

2021-02-23 23:31:09 1978 3

原创 并发编程01—基础

一.并发概念1.并发常见的概念串行/并发/并行串行:多个任务,执行时一个执行完再执行另一个并发:多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换并行:是指多个处理器或者是多核的处理器同时处理多个不同的任务CPU调度:进程/线程由运行态切换到其他状态,或者由其他状态切换到运行态,即拥有时间片时间片:时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许...

2021-02-22 18:40:10 148

原创 spring aop学习笔记

JDK与CGLIB选择性 Spring Aop部分使用JDK动态代理或者CGLIB来为目标实现创建代理那么什么时候使用JDK,什么时候使用CGLIB?public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException { if (config.isOptimize() || config.is...

2019-01-28 21:06:04 213

原创 spring cloud ribbon客户端负载均衡

客户端负载均衡         spring cloud ribbon是一个基于HTTP和TCP的客户端负载均衡工具,基于NetFlix Ribbon实现。不同于服务端负载均衡硬件列如F5,软件列如Nginx,客户端负载均衡最大的特点服务清单所存储的位置。在客户端负载均衡中,所以客户端截点都维护着自己要访问的服务端清单,在spring cloud架构体系中,可以通过Eureka来获取服务清单。...

2019-01-22 14:34:55 248

原创 java 内存模型volatile实现与CPU缓存

CPU缓存架构       如下图所示是Intel的Skylake的CPU架构,我们可以看到缓存被分为L1、L2、L3这3层,CPU在运行中首先使用自己的寄存器,然后使用速度更快的L1缓存,其中:L1D缓存数据;L1I缓存指令;L1缓存和次快的L2同步数据;L2缓存和L3缓存同步数据(这里L2和L3按照内核数量做了等分,分给各个内核使用),我们可以简单地认为L3和内存同步数据。 CPU...

2019-01-22 13:26:20 561

原创 微信服务直达消息系统配置java

       微信的服务直达功能需要用户在小程序消息推送系统里面配置配置url来接收微信端传过来的数据,配置里面需要我们验证是否是微信请求过来的数据,如果不加以验证会出现Token校验失败以下是我们服务端的代码,注意:代码中的token需要和配置的token一致,EncodingAESKey随机生成就可以了import org.apache.catalina.servlet4prev...

2018-08-18 20:16:38 315

原创 单例模式 多线程单例 双重锁定 枚举

1:单例模式public class Singleton { private static Singleton singleton = null; private Singleton(){ } public static Singleton getSingleton(){ if (singleton == null){ r...

2018-08-08 22:39:54 190

原创 NIO多路复用器Selector

      selector简称多路复用器,它是JAVA NIO编程的基础简单来讲,selector会不断轮询注册在其上的channel,如果某个channel上面发生了读或者写事件,这个channel就会处于就绪状态,会被selector轮询出来,然后通过selectorKey可以获取就绪channel的集合,进行后续的io操作。      一个多路复用器selector可以同时轮询多个ch...

2018-08-07 22:29:54 985

转载 mysql死锁查看

解除正在死锁的状态有两种方法:第一种:1.查询是否锁表show OPEN TABLES where In_use > 0;2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程)show processlist3.杀死进程id(就是上面命令的id列)kill id 第二种:1.查看下在锁的事务 SELECT * FR...

2018-08-05 23:02:40 257

原创 dubbo四种负载均衡策略

1.随机模式。按权重设置随机概率。在一个截面上碰撞的概率较高,但调用越大分布越均匀2.轮询模式。按公约后的权重设置轮询比例。但存在响应慢的服务提供者会累积请求3.最少活跃调用数。响应快的提供者接受越多请求,响应慢的接受越少请求4.一致hash。根据服务提供者ip设置hash环,携带相同的参数总是发送的同一个服务提供者,若服务挂了,则会基于虚拟节点平摊到其他提供者上...

2018-08-02 22:05:10 18153 1

原创 java spi与dubbo spi区别

java spi与dubbo spi区别java spi :是上游产商给服务供应商提供的接口,供应商遵循接口契约提供自己的实现.。提供了服务接口的一种实现之后,在jar包的META-INF/services/目录里同时创建一个以服务接口命名的文件。该文件里就是实现该服务接口的具体实现类。而当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类

2017-05-08 07:48:40 7807 1

原创 java代码实现链表

java代码实现链表

2017-04-04 19:09:42 1662 1

原创 java中volatile和synchronized区别

volatile

2017-03-12 15:09:19 404

原创 java实现二分查询

java实现二分查询

2017-03-10 17:50:58 405

原创 java实现快速排序

java实现快速排序

2017-03-10 16:45:07 249

原创 java选择排序实现

java选择排序实现

2017-03-10 13:59:40 297

原创 java实现冒泡排序

java实现冒泡排序

2017-03-10 10:02:41 277

原创 java统计字符串中出现最多的字符

java统计字符串中出现最多的字符

2017-03-09 17:22:50 2012

转载 java实现序列化的作用

序列化作用

2017-03-09 15:58:23 4974

原创 当子类继承父类时,构造块,静态块,静态方法的执行顺序

当子类继承父类时,构造块,静态块,静态方法的执行顺序: 首先编写父类代码如下: public parent() { System.out.println("父类构造函数"); } static{ System.out.println("父类静态块"); } { System.out.println("父

2017-03-08 11:40:28 1599

原创 win7下实现Host与Ip的映射

win7下实现Host与Ip的映射 : 打开c盘目录:C:\Windows\System32\drivers\etc 找到hosts文件并且打开: 将ip填入到左边,host填入右边

2017-03-08 10:26:39 3103

原创 forward和redirect区别

forward和redirect区别:地址栏显示: forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址. redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.数据共享: forward:转

2017-02-26 19:11:04 211

原创 数据库中范式和反范式

数据库中范式和反范式在范式化的数据库中,每个事实数据会出现在并且只会出现一次。相反,在反范式化数据库中,可能会存储在多个地方。

2017-02-25 16:55:15 700

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除