- 博客(66)
- 收藏
- 关注

原创 深度解剖dubbo源码
-----------学习dubbo源码,能给你带来什么好处?-----------1.提升SOA的微服务架构设计能力 通过读dubbo源码是一条非常不错的通往SOA架构设计之路,毕竟SOA的服务治理就是dubbo首先提出来的,比起你去看市面上的SOA微服务架构的书籍,学到的架构原理要更丰富更有深度。2.提升自己在部门团队的技术影响力 你所在的部门团队如果使用了du
2018-01-15 12:15:11
4734

转载 架构师之路-创业互联网公司如何搭建自己的技术架构
适用范围本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍,技术架构的介绍课程后面有地址,可以点进去查看。技术指标说一下一些技术指标的计算过程可以作为其他同学的参考QPS, 如果是5万日活,使用集中在每天的4小时,每个用户大概产生100的请求,那么平均
2017-09-29 14:45:12
1511

转载 Spring Boot-RESTfull API简单项目的快速搭建
源码地址:https://github.com/roncoo/spring-boot-demo搭建一个简单的RESTfull API接口项目1. spring-boot-starter-web的引入,其依赖包的学习2. spring-boot-devtools的引入,其依赖包的学习3. 代码的实现4.
2017-08-10 16:26:04
1687

转载 微服务架构的分布式事务解决方案
分布式系统架构中,分布式事务问题是一个绕不过去的挑战。而微服务架构的流行,让分布式事问题日益突出!下面我们以电商购物支付流程中,在各大参与者系统中可能会遇到分布式事务问题的场景进行详细的分析!如上图所示,假设三大参与平台(电商平台、支付平台、银行)的系统都做了分布式系统架构拆分,按上数中的流程步骤进行分析:1、电商平台中创建订单:预留库存、预扣减积分、锁定优惠券,此
2017-07-31 14:36:36
2414
3
转载 SpringBoot+Mybatis事务管理
一、使用场景 在使用事务管理前,有必要先了解下应用场景。如实际过程中一个购买操作包含多个执行过程:查询库存、下单、更新库存,实际操作时,由于高并发存在,可能到下单结束时,更新库存出错,那本次购买操作就是失败的,其下单结果应该被回滚。这种情况就需要引入事务控制,保证整个操作的有效性。二、配置方法(1)配置applicationContext.xml bean id="t
2018-01-05 16:18:05
3619
原创 双旦技术盛典,跨年立减狂欢惠
2017年12月一到大街小巷都充斥着欢乐的气息在这个月里不仅有西方最为隆重的“圣诞节”还有“世界性的新年元旦节”崭新的2018在向我们招手!为了你能更好的“迎接2018”我们绞尽脑汁给你送福利了作为程序员的年终礼物我们不套路,不抢券只要下单就立减再享购满699元送马克杯一个所以到了12月份
2017-12-26 10:43:22
612
转载 Spring AOP + Redis缓存数据库查询
应用场景我们希望能够将数据库查询结果缓存到Redis中,这样在第二次做同样的查询时便可以直接从redis取结果,从而减少数据库读写次数。需要解决的问题操作缓存的代码写在哪?必须要做到与业务逻辑代码完全分离。如何避免脏读? 从缓存中读出的数据必须与数据库中的数据一致。如何为一个数据库查询结果生成一个唯一的标识?即通过该标识(Redis中为Key),能唯一确定一个查询结果,同一
2017-12-19 16:01:48
676
原创 大数据实时流统计实战
Spark Streaming实时流处理项目请访问:http://www.roncoo.com/course/view/1b1a07091acc4efd9a390f28db332f86Spark Streaming实时流处理项目实战,是以爱奇艺视频实时数据产生和流向的各个环节出发,通过集成主流的分布式日志收集框架Flume、分布式消息队列Kafka、分布式列式数据库HBase、及当前最
2017-12-08 15:37:26
5107
原创 2017年度最受欢迎开源中国项目:roncoo-pay参与投票评选
roncoo-pay项目正在参加 2017年度最受欢迎中国开源软件评选,请大家投上宝贵的一票,支持roncoo-pay更好的发展,为大家带来更多好用的支付功能!2017年度最受欢迎中国开源软件评选:http://www.oschina.net/project/top_cn_2017投票时间截止至2017年12月15日23:59:59
2017-11-28 10:16:44
763
原创 分布式PRC服务框架Dubbo
Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,是一个高性能优秀的服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。主要核心部件:Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消
2017-11-24 16:20:35
755
转载 如何向普通人解释机器学习、数据挖掘
随着数据科学在人工智能发展中大放异彩,数据挖掘、机器学习进入了越来越多人的视野。而对于很多人来说,诸如机器学习之类的名次听起来是神乎其技,但其真正的内涵却不为一般人所知。 特别是对于从事数据科学领域的人来说,如何向外行人解释自己所从事的工作几乎是一个超级难题。那么到底什么是机器学习,如何用通俗易懂的语言来解释?我们通过以下几重境界来解释。 一、专业理论型 百科定义+专
2017-11-22 10:30:58
668
转载 Spring Boot 实现RESTful webservice服务端示例
1.Spring Boot configurations application.ymlspring: profiles: active: dev mvc: favicon: enabled: false datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:my
2017-11-21 17:12:44
8982
转载 Spring Data Jpa 实体类自动创建数据库表失败解决
说一下遇到的这个问题,首先我是通过maven创建了一个spring boot的工程,引入了Spring data jpa,结果实体类创建好之后,运行工程却没有在数据库中自动创建数据表。 找了半天发现是一个配置的问题: hibernate.ddl-auto节点的配置,这个配置有两种方式去配置,我使用的是通过properties文件去配置:DataSource Configspri
2017-11-17 10:02:45
1281
翻译 如何做数据存储架构技术选型?
在互联网应用中,数据爆发式的增长,实际上软件架构的本质就是对数据的维护。对数据的操作可以归纳为三类:读、写和检索。 随着网站的流量越来越大,数据量也爆发式的增长,网站响应越来越慢,服务器经常宕机。传统的关系型数据库已经不能满足流量和数据的爆发式增长。于是根据不同的业务需求,出现了很多不同的数据库。 根据数据库的类型划分。有关系型数据库:mysql,oracle,sqls
2017-11-13 14:46:53
1420
转载 浅谈分布式服务协调技术 Zookeeper
Google的三篇论文影响了很多很多人,也影响了很多很多系统。这三篇论文一直是分布式领域传阅的经典。根据MapReduce,于是我们有了Hadoop;根据GFS,于是我们有了HDFS;根据BigTable,于是我们有了HBase。而在这三篇论文里都提及Google的一个Lock Service —— Chubby,哦,于是我们有了Zookeeper。随着大数据的火热,Hxx们已经变得耳
2017-11-06 12:24:01
629
转载 微服务应用容器化场景中常见问题总结
简介云原生技术栈是下一代应用转型的必然选择,它包含了微服务架构,DevOps和容器技术。对于微服务架构来说,应用是“第一公民”,他逐渐蚕食原来底层软件或者硬件的功能,例如服务注册与发现以及负载均衡;而对于容器平台来说,容器是“第一公民”,他提供了容器注册与发现和负载均衡,同时容器技术将应用和外面的世界做了隔离,这样很多应用运行的假设就会失效。那当微服务应用运行在容器中的时候,我们会遇到哪些
2017-11-03 11:42:48
635
转载 Java并发控制机制详解
在一般性开发中,笔者经常看到很多同学在对待java并发开发模型中只会使用一些基础的方法。比如Volatile,synchronized。像Lock和atomic这类高级并发包很多人并不经常使用。我想大部分原因都是来之于对原理的不熟悉导致的。在繁忙的开发工作中,又有谁会很准确的把握和使用正确的并发模型呢?所以最近基于这个思想,作者打算把并发控制机制这部分整理成一篇文章。既是对自己
2017-10-23 09:48:11
481
原创 热门开源项目:Guns-后台管理系统
Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架。Guns v3.0新增rest api服务,提供对接服务端接口
2017-10-16 11:59:31
22558
原创 开源中国颁发证书:GVP-码云最有价值开源项目(roncoo-pay)
roncoo-pay (龙果支付系统)roncoo-pay是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量、便捷、易用,且集支付、资金对账、资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需求。厉害了,龙果!《龙果开源支付系统》再次获得广大码友及开源中国码云的认同,被评为:GVP-码云最有价值开源项目(roncoo-pay
2017-10-13 10:23:48
3554
原创 架构师之路-一张图认识jvm内存
从无到有搭建中小型互联网公司后台服务架构与运维架构 http://www.roncoo.com/course/view/ae1dbb70496349d3a8899b6c68f7d10b
2017-10-11 10:43:07
874
原创 spring boot controller设置 @Transactional 不回滚的解决办法
在spring boot 中,使用事务非常简单,直接在方法上面加入@Transactional 就可以实现,以下是我的做法:@GetMapping("delete") @ResponseBody @Transactional public void delete(@RequestParam("id") int id){ try {
2017-10-09 10:32:45
7425
3
翻译 避免大规模故障的微服务架构设计之道
微服务架构通过定义明确的服务边界,能有效地隔离故障。 和其他分布式系统一样,微服务在网络、硬件和应用层上都会存在更多的问题。由于服务之间是互相依赖,因此任何组件都可能出错导致用户不能访问。为尽可能减少部分中断带来的影响,我们需要构建容错能力强的服务,以从容应对发生的某些中断。微服务架构的风险微服务架构将应用逻辑拆分成服务,服务之间通过网络交互。由于是通过网络调用,而不是在进程中调用
2017-09-27 10:59:00
983
转载 SpringCloudStream 构建消息驱动的微服务框架
前言Spring Cloud Stream,用精简的语言概括,他本质上其实就是让开发人员使用消息中间件变得简单。他基于Spring Integration并利用Spring Boot提供了自动配置,提供了极为方便的消息中间件使用体验。看到这里会有人认 为这个开源项目没有什么了不起,基于这个点的开源包有很多,甚至自己已经熟知某种中间件的编码语法何苦重复造轮子, 我就是这当中的一员
2017-09-21 10:40:33
3917
原创 Java虚拟机自动内存管理
生活规律告诉我们,在享受便利的同时一般都会付出巨大的代价,如果你在享受了便利的同时,还没有为此付出代价,不是说明没有,只是还没到付出的时候。试问,有哪个Java系统架构师不懂Java虚拟机?纵观Java程序员的发展历程,又有多少人是卡在了Java虚拟机之上。所以如果你还没有感觉到为此付出代价,说明你已经Java虚拟机的糖衣炮弹所击中,且被毒害之深。Java的自动内存管理就是这样,像毒药一样,一旦上
2017-09-20 14:35:38
456
转载 什么是微服务架构?
什么是微服务?微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。单体架构(Monolithic Architecture )企业级的应用一般都会面临各
2017-09-18 11:01:36
1890
原创 Java虚拟机的内存结构
我们都知道虚拟机的内存划分了多个区域,并不是一张大饼。那么为什么要划分为多块区域呢,直接搞一块区域,所有用到内存的地方都往这块区域里扔不就行了,岂不痛快。是的,如果不进行区域划分,扔的时候确实痛快,可用的时候再去找怎么办呢,这就引入了第一个问题,分类管理,类似于衣柜,系统磁盘等等,为了方便查找,我们会进行分区分类。另外如果不进行分区,内存用尽了怎么办呢?这里就引入了内存划分的第二个原因,就是为了方
2017-09-14 12:31:16
901
转载 MySQL主从同步那点事儿
一、前言关于mysql主从同步,相信大家都不陌生,随着系统应用访问量逐渐增大,单台数据库读写访问压力也随之增大,当读写访问达到一定瓶颈时,将数据库的读写效率骤然下降,甚至不可用;为了解决此类问题,通常会采用mysql集群,当主库宕机后,集群会自动将一个从库升级为主库,继续对外提供服务;那么主库和从库之间的数据是如何同步的呢?本文针对MySQL 5.7版本进行下面的分析,下面随笔者一起探究一
2017-09-13 16:16:53
632
转载 Dubbo与Zookeeper、Spring整合和使用
Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的
2017-09-11 15:15:11
656
转载 Dubbo 发布恢复维护后的第一个版本 2.5.4
Dubbo 发布了恢复维护后的第一个版本 2.5.4,主要是解决 issues 和依赖升级。dubbo-2.5.4Fixed issues1. 不能优雅停机的问题2. MonitorFilter监控统计功能阻塞rpc流程3. 动态配置:设置指定的consumer不生效,provider端动态配置删除后仍起作用4. 路由规则
2017-09-08 16:12:23
2273
转载 Spring + Dubbo 开发分布式REST服务实战
这个主要是使用 Spring技术栈 + dubbo 开发一个类似当当的图书电商后台的实战教程,详细演示了一个应用从单块架构到垂直应用架构再到分布式服务架构的演进过程。讲解了如何在前后端分离的架构下设计RESTful API。最终的系统对外提供REST风格的http服务,内部各个垂直应用通过dubbo共享无状态的Java服务。整个系统在Web层和服务层都可以无缝的横向扩展。1.技术体系足够系统、全面以及细致:课程中涉及的主要技术包括:Spring IO (依赖版本管理),Spring B
2017-09-06 11:52:24
3153
1
转载 分布式架构--简易版支付系统
一、工程结构pay-common-parent 项目的Maven父配置工程pay-common 公共工程,所有项目均可引用pay-common-config 公共配置工程pay-common-core 公共核心工程,service工程共用pay-common-web 公共web工程,web工程共用 pay-api-merchant 商户API工程,商户对接支
2017-09-01 15:19:58
1564
转载 浅谈分布式事务
现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。基于水平扩容能力和成本考虑,传统的强一致的解决方案(e.g.单机事务)纷纷被抛弃。其理论依据就是响当当的CAP原理。往往为了可用性和分区容错性,忍痛放弃强一致支持,转而追求最终一致性。分布式系统的
2017-08-28 11:57:21
1032
转载 一个大型MySQL分布式系统诞生
在淘宝,有一个业务系统,在一年半以前,这个业务系统很小,访问量很低,相关的表跟核心数据库放在一起,后来由于产品升级,新产品的许多功能很受会员的喜爱,会员大量使用,很快就对核心数据库造成了相当程度的IOPS冲击与威胁,也迅速消耗着核心存储的空间,为了不影响淘宝的核心业务,我们将此业务相关的表迁移出了核心库,创建了一个独立的ORACLE数据库,这种拆分数据库的方式,就是大家常说的垂直拆分。
2017-08-22 11:57:06
1861
转载 亿级Web系统搭建:单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。Web负载均衡Web负载均衡(Load Balancing),简单地说就是给我们的服务器集
2017-08-21 12:12:51
753
转载 MySQL分布式集群搭建
1、准备集群搭建环境使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示:管理节点(MGM):这类节点的作用是管理MySQLCluster内的其他节点,如提供配置数据,并停止节点,运行备份等。由于这类节点负责管理其他节点的配置,应该在启动其他节点之前启动这类节点。MGM节点是用命令“ndb_mgmd”启动的;
2017-08-16 15:03:10
19930
1
原创 Spring Boot-配置文件详解:Properties和YAML
源码地址:https://github.com/roncoo/spring-boot-demo一.配置文件的生效顺序,会对值进行覆盖:1. @TestPropertySource 注解2. 命令行参数3. Java系统属性(System.getProperties())4. 操作系统环境变量5. 只有在random.*里包含的属性会产生一个Ran
2017-08-14 18:15:27
985
转载 龙果支付系统搭建与部署
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
2017-08-09 14:41:35
954
原创 龙果开源支付系统
龙果支付系统是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量、便捷、易用,且集支付、资金对账、资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需求。
2017-08-07 15:49:52
2158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人