分布式事务

分布式事务场景如何设计系统架构及解决数据一致性问题,个人理解最终方案把握以下原则就可以了,那就是:大事务=小事务(原子事务)+异步(消息通知),解决分布式事务的最好办法其实就是不考虑分布式事务,将一个大的业务进行拆分,整个大的业务流程,转化成若干个小的业务流程,然后通过设计补偿流程从而考虑最终一致性。

Read More

Dubbo性能调优

性能优化

dubbo序列化+netty

目前客户端数据接口的场景99%为1k数据量以内,根据各种协议性能测试对比分析,选用dubbo序列化与netty传输方式可达到性能最大化,以下为阿里官方给出的性能测试结果,提供参考:

1k string 场景:

image

Read More

Javassist动态编程

Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态”AOP”框架。

Read More

Dubbo架构分析

Dubbo是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。

Read More

super-diamond配置管理中心+Docker

super-diamond

  • 配置管理系统提供系统参数配置管理,例如数据库的配置信息等,配置参数修改以后可以实时推送到客户端(基于netty4),
    方便系统动态修改运行参数。
  • 可以建多个项目,每个项目分为三种profile(development、test、production), 能够控制profile 级别的权限。
  • 所有参数均由development profile配置,test和production profile继承development profile配置,也可以覆盖其配置。
    test和production profile只提供修改功能。
  • client 备份配置信息到本地文件系统,如果server不可用,可以使用本地备份。client 能够定时重连server,保证client高可用。
  • client 提供ConfigurationListener,当某个属性发生变化(add、update、clear), ConfigurationListener能够接收到ConfigurationEvent。
  • server 备份配置文件系统系统,如果数据库不用,能够保证对客户端提供数据(待完善)。
  • 支持php项目从superdiamond中获取配置参数。

    Read More

订单ID设计

订单ID生成规则设计

<订单ID生成工具类>
<订单ID生成算法:包含属性与每个属性固定的二进制位数为:unix时间戳占用39bit+订单版本号2bit+分库5bit+分表5bit+机器号6bit+自增序号6bit=63bit>


unix时间戳区间如下:
{
100000000000000000000000000000000000000
274877906944
111111111111111111111111111111111111111
549755813887
}
历史时间与系统最大支撑时间计算公式:
历史时间=系统上线时间-274877906944
最大支撑时间=系统上线时间+549755813887

Read More

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Generate and deploy to remote sites

1
$ hexo g -d