自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 资源 (7)
  • 问答 (9)
  • 收藏
  • 关注

原创 常用的分布式事务解决方案介绍

龙果开源支付系统 :龙果支付系统是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量、便捷、易用,且集支付、资金对账、资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需求。主要特点: 具备支付系统通用的支付、对账、清算、资金账户管理、支付订单管理...

2017-08-01 19:35:50 495 1

原创 开源支付系统--龙果支付系统搭建与部署

1. 开发工具 eclipse、git或svn、maven2. 技术框架    核心框架:Spring Framework 3.2.4    持久化框架:MyBatis 3.4.    安全框架:Apache Shiro 1.2.5    日志管理:SLF4J 1.7.21、Log4j 1.2.17    数据库连接池:Druid

2016-08-23 22:40:40 7462 2

原创 基于支付系统真实业务场景的分布式事务解决方案

分布式系统架构中,分布式事务问题是一个绕不过去的挑战。而微服务架构的流行,让分布式事问题日益突出!下面我们以电商购物支付流程中,在各大参与者系统中可能会遇到分布式事务问题的场景进行详细的分析!龙果开源支付项目地址:开源中国地址:http://www.oschina.net/p/roncoo-payhttp://git.oschina.net/roncoocom/roncoo-payGitHub地址...

2016-07-16 20:37:24 5995

转载 RabbitMQ进阶使用-延时队列的配置(Spring Boot)

依赖MAVEN配置pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>Gradle配置...

2018-10-12 14:44:18 707

转载 Spring 中的循环依赖

A 实例依赖 B 实例,B 实例依赖 C 实例,C 实例依赖 A 实例,依赖关系形成一个环,就称为循环依赖。protoType 作用域的循环依赖:循环依赖是对于单例来说的,spring 容器对于 protoType 作用域的 bean 不进行缓存,因此无法完成依赖注入。构造器循环依赖(单例):始终都在等待依赖创建成功,陷于死循环,无法解决。setter 循环依赖(单例):在 bean 实例创...

2018-10-11 16:43:26 290

转载 MySQL性能管理及架构设计:SQL查询优化、分库分表

一、SQL查询优化(重要)1.1 获取有性能问题SQL的三种方式通过用户反馈获取存在性能问题的SQL; 通过慢查日志获取存在性能问题的SQL; 实时获取存在性能问题的SQL;1.1.2 慢查日志分析工具 相关配置参数:slow_query_log # 启动停止记录慢查日志,慢查询日志默认是没有开启的可以在配置文件中开启(on)slow_query_log_file # 指定...

2018-03-27 10:55:12 2061

转载 不停机分库分表迁移

需求说明 类似订单表,用户表这种未来规模上亿甚至上十亿百亿的海量数据表,在项目初期为了快速上线,一般只是单表设计,不需要考虑分库分表。随着业务的发展,单表容量超过千万甚至达到亿级别以上,这时候就需要考虑分库分表这个问题了,而不停机分库分表迁移,这应该是分库分表最基本的需求,毕竟互联网项目不可能挂个广告牌”今晚10:00~次日10:00系统停机维护”,这得多low呀,以后跳槽面试,你跟面试官说这个...

2018-03-26 14:50:17 574

转载 springboot如何测试打包部署

有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试、打包到最后的投产上线。 开发阶段 单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了。 1、在pom包中添加spring-boot-starter-test包引用1. <...

2018-03-16 16:29:23 329

转载 springboot--邮件服务

springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了。准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5.3进行开发。发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring退出了Java...

2018-03-15 14:58:52 450

转载 springboot--springboot+mybatis多数据源最简解决方案

说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解决方案,还有的是利用aop动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。废话不多说直接上代码吧 配置文件 pom包就不贴了比较简单该依赖...

2018-03-13 11:00:22 196

转载 springboot--如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和mybatis组合的相关资料,各种各样的形式都有,看的人心累,结合了mybatis的官方demo和文档终于找到了最简的两种模式,花了一天时间总结后分享出来。orm框架的本质是简化编程中操作数据库...

2018-03-09 10:33:36 206

转载 保证分布式系统数据一致性的6种方案

在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性?具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理论。

2018-01-30 15:41:07 697

原创 深度解剖dubbo源码

———–学习dubbo源码,能给你带来什么好处?———–1.提升SOA的微服务架构设计能力 通过读dubbo源码是一条非常不错的通往SOA架构设计之路,毕竟SOA的服务治理就是dubbo首先提出来的,比起你去看市面上的SOA微服务架构的书籍,学到的架构原理要更丰富更有深度。2.提升自己在部门团队的技术影响力 你所在的部门团队如果使用了dubbo框架,必然需要懂dubbo底层核心的人;如

2018-01-24 11:19:28 1535

转载 微服务架构下的分布式数据管理

1.1 分布式数据管理之痛点 为了确保微服务之间松耦合,每个服务都有自己的数据库, 有的是关系型数据库(SQL),有的是非关系型数据库(NoSQL)。 开发企业事务往往牵涉到多个服务,要想做到多个服务数据的一致性并非易事,同样,在多个服务之间进行数据查询也充满挑战。 我们以一个在线B2B商店为例,客户服务 包括了客户的各种信息,例如可用信用等。 管理订单,提供订单服务,则需要验证某个新订单

2018-01-17 11:23:04 778

转载 Dubbo 新编程模型之外部化配置

外部化配置(External Configuration) 在Dubbo 注解驱动例子中,无论是服务提供方,还是服务消费方,均需要转配相关配置Bean:@Beanpublic ApplicationConfig applicationConfig() {ApplicationConfig applicationConfig = new ApplicationConfig();

2018-01-12 11:10:47 994

转载 spring boot redis分布式锁

随着现在分布式架构越来越盛行,在很多场景下需要使用到分布式锁。分布式锁的实现有很多种,比如基于数据库、 zookeeper 等,本文主要介绍使用 Redis 做分布式锁的方式,并封装成spring boot starter,方便使用一. Redis 分布式锁的实现以及存在的问题锁是针对某个资源,保证其访问的互斥性,在实际使用当中,这个资源一般是一个字符串。使用 Re

2018-01-09 10:34:58 637 3

转载 MySQL 慢日志线上问题分析及功能优化

MySQL 慢日志(slow log)是 MySQL DBA 及其他开发、运维人员需经常关注的一类信息。使用慢日志可找出执行时间较长或未走索引等 SQL 语句,为进行系统调优提供依据。 本文将结合一个线上案例,分析如何正确设置 MySQL 慢日志参数和使用慢日志功能,并介绍下网易云 RDS 对 MySQL 慢日志功能的增强。 MySQL 参数组功能 网易云 RDS

2018-01-05 14:29:09 284

转载 SpringBoot集成Shiro并用MongoDB做Session存储

自从SpringBoot问世之后我的项目基本上能用SpringBoot的就会用SpringBoot,用MAVEN做统一集中管理也很方便,虽然SpringBoot也提供了一套权限安全框架Spring Security,但是相对来说还是不是太好用,所以还是用Shiro来的方便一点,SpringBoot集成Shiro要比Spring MVC要简单的多,至少没有一堆XML配置,看起来更清爽

2017-12-25 16:10:23 587

转载 Java高并发之从零到放弃

本篇主要讲解如何去优化锁机制或者克服多线程因为锁可导致性能下降的问题

2017-12-22 11:04:16 198

转载 消息中间件kafka+zookeeper集群部署、测试与应用

业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处理请求;A系统向B系统发送一个业务处理请求,因为某些原因(断电、宕机。。),B业务系统挂机了,A系统发起的请求处理失败;前端应用并发量过大,部分请求丢失或后端业务系统卡死。。。。这个时候,消息中间件就派上用场了--提升系统稳定性、可用性、可扩展性。

2017-12-20 11:41:13 835

原创 Spring Cloud服务提供者与服务消费者怎么运作的?

在微服务中最基本最基本的两个角色是服务提供者与服务消费者。之前所有代码都在同一个框架的时候,比如Controller调用Service的,直接注入Service bean即可进行调用了。现在做成微服务之后,那么我们就需要有一个工程专门提供相应的服务功能,对应的有相应的工程消费这个功能,这就是服务提供者和服务消费者最基本的概念。

2017-12-15 11:17:20 1246

转载 Java并发编程:Synchronized及其实现原理

Synchronized是Java并发编程中最常用的用于保证线程安全的方式,其使用相对也比较简单。但是如果能够深入了解其原理,对监视器锁等底层知识有所了解,一方面可以帮助我们正确的使用Synchronized关键字,另一方面也能够帮助我们更好的理解并发编程机制,有助我们在不同的情况下选择更优的并发策略来完成任务。对平时遇到的各种并发问题,也能够从容的应对。

2017-12-14 10:10:11 176

转载 Spring Boot + Mybatis + Redis二级缓存(Java Web现代化开发)

SpringBoot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一。Mybatis是一个十分轻量好用的ORM框架。Redis是当今十分主流的分布式key-value型数据库,在web开发中,我们常用它来缓存数据库的查询结果。

2017-12-13 10:15:16 1562

原创 双12砍价就要简单粗暴:来试试你的刀法如何!一刀一个价

双12砍价就要简单粗暴,这是让人愉快的接受方式,没有什么是砍价解决不了的事,龙果教你解锁6到飞起的砍价技能。

2017-12-11 15:51:01 779

转载 Spring Boot 定制与优化内置的Tomcat容器

本文主要记录对内置容器优化和定制的方式,用于自己加深对SpringBoot理解。

2017-12-05 11:22:29 5428

转载 9种高性能可用高并发的技术架构

对于大型网站,分层和分隔的一个主要目的是为了切分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着可以使用更多的计算机完同样的工作,计算机越多,CPU、内存、存储资源就越多,能过处理的并发访问和数据量就越大,进而能够为更多的用户提供服务。

2017-11-30 10:23:57 298

转载 微服务MySQL分库分表数据到MongoDB同步方案

近年来,微服务概念持续火热,网络上针对微服务和单体架构的讨论也是越来越多,面对日益增长的业务需求是,很多公司做技术架构升级时优先选用微服务方式。我所在公司也是选的这个方向来升级技术架构,以支撑更大访问量和更方便的业务扩展。

2017-11-24 10:21:21 4010

转载 水平分库如何做到平滑扩展

这个对于我们常用的分库分表方案来说,有很大的优势,分库分表的扩容是一件头疼的问题,如果采用对db层做一致性hash,或是中间价的支持,它的成本过于高昂了,如果不如此,只能停机维护来处理,对高可用性会产生影响。

2017-11-22 17:07:55 944

转载 分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?

最近,开源社区发生了一件大事——使用最广的开源服务框架之一Dubbo低调重启维护,并且3个月连续发布了3个维护版本。这3个维护版本不仅解决了社区关心的一系列问题和需求,还让整个社区的活跃度得到了大幅提升。

2017-11-15 10:54:43 293

原创 架构师之路-如何构建rest接口的安全性访问(dubbox+oatuh2+rest)

建立oauth2认证需要的数据库及数据表结构CREATE SCHEMA IF NOT EXISTS `oauth2` DEFAULT CHARACTER SET utf8 ;USE `oauth2` ; -- ------------------------------------------------------- Table `oauth2`.

2017-10-18 15:05:30 1235

原创 架构师之路-在Dubbo中开发REST风格的远程调用

dubbo支持多种远程调用方式,例如dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等等,但缺乏对当今特别流行的REST风格远程调用(文本序列化 + http协议)的支持。

2017-10-16 16:39:01 666

原创 架构师之路-如何建立高可用消息中间件kafka

Kafka一、熟悉kafkal Server-1 broker其实就是kafka的server,因为producer和consumer都要去连它。Broker主要还是做存储用。l Server-2是zookeeper的server端,zookeeper的具体作用你可以去官网查,在这里你可以先想象,它维持了一张表,记录了各个节点的IP、端口等信息(以后还会讲到,它里面还存了kafka的相关信息)。

2017-10-12 18:06:25 539

原创 运维架构服务监控Open-Falcon

监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。

2017-10-11 10:52:08 1030

原创 架构师之路-创业互联网公司如何搭建自己的技术架构

创业互联网公司如何搭建自己的技术架构

2017-10-09 18:08:13 440

原创 MySQL binlog 详解

MySQL5.7 默认是不开启 binlog 日志的,具体的开启方式在开启的笔记中查看。 binlog 开启成功之后,binlog 文件的位置可以在 my.inf 配置文件中查看。也可以在 mysql 的命令行中查看。

2017-09-22 12:15:42 375

原创 MySQL binlog日志恢复数据

我们了解了MySQL 的 binlog 日志的开启方式以及 binlog 日志的一些原理和常用操作,我们知道,binlog 有两大作用,一个是使用 binlog 恢复数据,另一个就是用来做主从复制。

2017-09-20 10:32:45 443

原创 MySQL 主主复制

MySQL的主主复制就是两台 mysql 节点互为主从。搭建起来 mysql 主从,再来搭建主主复制就非常简单了。

2017-09-20 10:22:40 356

原创 MySQL 主从复制

MySQL的主从复制实现的原理就是 binlog 日志,那么我们主节点负责数据库写操作,而从节点负责读操作,这样在从节点上不需要使用事务,能够大大提高数据库的性能。那么这个时候面临的问题就是从节点如何来同步主节点数据的问题,就用到了我们之前说过的 binlog 日志。从节点通过 binlog 日志来与主节点进行数据同步。

2017-09-18 11:27:31 391

原创 MySQL 表分区

MySQL表分区和分库分表一样,都是为了提高数据库的吞吐量。分区类似与分表,分表是逻辑上将一个大数据量的表分成多个,可以是水平分也可以是垂直分。而分区是将表的一个数据文件拆分成多个。不同的数据拆分到不同的文件中。这样对于一个数据量非常大的表,有多个数据文件来进行存储,这样就提高了数据库的 io 性能。

2017-09-14 12:09:58 324

原创 MySQL 慢查询日志

MySQL有一种日志,叫做慢查询日志,主要就是用来记录一些耗时的查询操作。通过这个日志我们就可以分析出哪些的操作是影响性能的,我们需要对其进行一些优化措施。

2017-09-07 09:18:44 252

Spring Boot基础-Spring Tool Suite工具的安装

Spring Tool Suite工具的安装

2016-09-17

Dubbo zookeeper注册中心文档

Zookeeper一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心,Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据,以及订阅请求。

2016-07-27

Dubbo分布式事务解决方案

微服务架构的分布式事务处理方案

2016-07-20

Maven私有库和本地库的安装与配置教程(Sonatype Nexus + Maven)

Maven私有库和本地库的安装与配置教程(Sonatype Nexus + Maven)

2016-07-05

Dubbo监控中心的安装

Dubbo监控中心的介绍与简易监控中心的安装

2016-06-01

Dubbo应用源码

使用Dubbo进行规模服务化前的工程结构优化(带源码)

2016-06-01

Dubbo工程源码

使用Maven构建Dubbo服务的可运行jar包(带源码)

2016-06-01

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

TA关注的人

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