- 博客(167)
- 资源 (6)
- 收藏
- 关注

原创 推荐书籍
大型网站技术架构 核心原理与案例分析大型网站系统与Java中间件实践深入分析Java Web技术内幕(修订版)大型分布式网站架构设计与实践玩转电商系统 深入剖析智慧电商平台京东技术解密Java虚拟机精讲
2016-10-26 15:50:43
524

原创 推荐技术网站
1、云栖社区 https://yq.aliyun.com/?spm=5176.100239.headermenu.5.Le1HyC2、阿里中间件技术博客http://jm.taobao.org/
2016-10-25 16:53:12
695
原创 TiDB at 丰巢:尝鲜分布式数据库
作者:丰巢技术团队随着丰巢业务系统快速增长,其核心系统的数据量,早就跨越了亿级别,而且每年增量仍然在飞速发展。整个核心系统随着数据量的压力增长,不但系统架构复杂度急剧增长,数据架构更加复杂,传统的单节点数据库,已经日渐不能满足丰巢的需求,当单表数量上亿的时候,Oracle 还能勉强抗住,而 MySQL 到单表千万级别的时候就难以支撑,需要进行分表分库。为此,一款高性能的分布式数据库,日渐成为刚...
2018-11-21 16:09:52
720
原创 基于Spring Boot 动态主从数据库路由
本文简单的介绍一下基于Spring boot框架动态连接多数据源的实现,在配置文件中添加多个数据源,采用主从配置的方式,配置zjsz、cloud两个数据库。项目的目录结构:application.properties核心主要是dynamic和aop目录1.首先配置数据源信息,在spring5.x之后开始默认使用HikariCP来做数据源@Configurationpublic...
2018-11-20 10:12:18
715
原创 微服务之分布式跟踪系统(springboot+zipkin)
微服务之分布式跟踪系统(springboot+zipkin)一、zipkin是什么 zipkin是一个开放源代码分布式的跟踪系统,由Twitter公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。它的理论模型来自于Google Dapper 论文。 每个服务向zipkin报告计时数据,z...
2018-11-20 10:05:20
446
原创 Spring、Mybatis和Logback集成,用面向切面AOP方式捕获并打印异常Exception信息
Spring、Mybatis和Logback集成,用面向切面AOP方式打印异常Exception信息, Step 1: 首先定义文件CommonLogger.java:public class CommonLogger { Logger logger = LoggerFactory.getLogger(CommonLogger.class); public static
2018-01-31 10:50:01
2943
原创 分布式配置管理平台 - Disconf介绍
Disconf专注于各种分布式系统配置管理的通用组件/通用平台,提供统一的配置管理服务。项目地址:https://github.com/knightliao/disconf一、功能特点支持配置(配置项+配置文件)的分布式化管理配置发布统一化配置发布、更新统一化(云端存储、发布):配置存储在云端系统,用户统一在平台上进行发布、更新配置。配置更新自动化:用户
2017-11-20 09:17:14
2466
原创 当当开源sharding-jdbc,轻量级数据库分库分表中间件
近期,当当开源了数据库分库分表中间件sharding-jdbc。Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据库分库分表访问。Sharding-JDBC是继dubbox和elastic-job之后,ddframe系列开源的第3个项目。 Sharding-JDBC直接封装JDBC协议,可以理解为增强版
2017-10-19 10:34:43
2436
原创 com.alibaba.dubbo.rpc.RpcException: Forbid consumer 18.18.16.229 access service com.alibaba.dubbo.mo
com.alibaba.dubbo.rpc.RpcException: Forbid consumer 18.18.16.229 access service com.alibaba.dubbo.monitor.MonitorService from registry 127.0.0.1:2181 use dubbo version 2.5.3,dubbo:registry
2017-10-16 16:46:38
4111
原创 三种方法实现调用Restful接口
1.基本介绍 Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法比较多, 本次介绍三种: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring的RestTemplate 2.HttpURLConnection实现 1 @Controller 2 pu
2017-09-07 16:33:34
5885
原创 ing boot属性文件之多环境配置【从零开始学Spring Boot】
原本这个章节是要介绍《log4j多环境不同日志级别的控制的》但是没有这篇文章做基础的话,学习起来还是有点难度的,所以我们先一起了解下spring boot属性文件之多环境配置,当然文章中也会提到属性文件基本的一些知识,然后慢慢在升华到多环境配置。 相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring
2017-09-07 13:55:02
1869
原创 Redis 一:Linux下 安装Redis并配置服务
一、简介 1、 Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问。 2、 redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 3、 Redis支持数据的备份,即master-slave模式的数据备份。 4、Redis支持数据的持久化,可以将内存中的数
2017-08-30 11:13:18
2193
原创 centos7安装rabbitmq
先安装Erlangrpm -Uvh http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm安装rabbitmq-server 以下是官网的安装方式,但是在本人机子上安装失败了rpm --import https://www.rabbitmq.com/rabbitmq-signing-
2017-08-29 17:00:05
2057
原创 Redis 缓存失效机制
Redis缓存失效的故事要从EXPIRE这个命令说起,EXPIRE允许用户为某个key指定超时时间,当超过这个时间之后key对应的值会被清除,这篇文章主要在分析Redis源码的基础上站在Redis设计者的角度去思考Redis缓存失效的相关问题。 Redis缓存失效机制 Redis缓存失效机制是为应对缓存应用的一种很常见的场景而设计的,讲个场景: 我们为了减轻后端数据库的
2017-08-25 17:10:51
2487
原创 Java实现发邮件功能
代码如下:package com.weimob.finance.utils;import java.io.UnsupportedEncodingException;import java.util.Date;import java.util.List;import java.util.Properties;import javax.activation.DataHa
2017-08-24 17:46:45
2121
原创 一个可供参考的Java高并发异步应用案例--转
原文地址:http://chuansong.me/n/355827651252泰康在线微信公众号系泰康在线财产保险股份有限公司旗下平台,希望可以通过持续不断的创新,提升客户对于保险的认知及体验,通过对大数据技术的应用,精准的为客户设计产品以及提供服务。泰康在线微信公众号,现有1000多万粉丝。在日常的运营中,借助于红包奖励、卡券分享、消息通知、微信分享等手段,通过好的内容,好的活动、好的产
2017-08-24 17:39:37
2169
原创 使用消息队列的 10 个理由
过去几年中,我们一直在使用、构建和宣传消息队列,我们认为它们是很令人敬畏的,这也不是什么秘密。我们相信对任何架构或应用来说,消息队列都是一个至关重要的组件,下面是十个理由:1. 解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的
2017-08-24 15:53:35
1986
原创 并发 并行 同步 异步 多线程的区别
1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步
2017-08-24 15:50:45
1949
原创 消息队列的两种模式
Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。点对点与发布订阅最初是由JMS定义的。这两种模式主要区别或解决的问题就是发送到队列的消息能否重复消费(多订阅)1、定义JMS规范目前支持两种消息模型:点对点(point to po
2017-08-24 09:58:28
1584
原创 消息队列使用的四种场景介绍
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用
2017-08-23 11:52:44
2051
转载 消息中心构架设计说明书
目录1 1. 文档介绍.... 41.1 文档目的... 41.2 文档范围... 41.3 读者对象... 41.4 参考文献... 41.5 术语与缩写解释... 42 系统概述.... 53 设计约束.
2017-08-18 17:17:40
24770
1
原创 Java中的多线程你只要看这一篇就够了
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些
2017-08-18 14:05:27
1707
原创 Java集合类详解
Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Element
2017-08-18 14:04:22
1803
原创 IDEA合并多个Maven项目到同一个Maven项目下显示(类似于Eclipse的WorkSpace)
第一步:将多个maven项目拷贝到同一个文件夹(比如WorkSpace目录)下;第二步:打开IntelliJ IDEA编译器,点击菜单 File->Open...,选择刚刚的WorkSpace目录:点击OK打开WorkSpace目录。打开后界面如下:第三步:打开后,发现IDEA并没有自动识别Maven项目,这时候,需要手动在IDEA右侧的Maven Proj
2017-08-18 14:03:06
4208
原创 linux服务器配置jenkins maven svn自动部署到tomcat
linux用到的命令: 1、unzip 文件名.zip(解压zip) 2、service java status(查看指定服务) 3、cat 文件名.xml(查看文件) 4、vi ~/.bash_profile(查看Linux环境变量配置文件) 5、 chmod u+x *.sh(授权目录下所有的.sh文件) 6、查看Tomcat是否以关闭 ps -ef|gre
2017-07-26 15:43:50
2476
原创 支付宝大规模SOA系统(转载)
大家好,这里是首届QCon Beijing的现场,现在坐在我的旁边是的支付宝的首席架构师程立。先给大家介绍一下,支付宝架构发展到今天,经历哪些时期,都有哪些里程碑?我 回忆一下,支付宝系统架构发展大概有这么几点。我本人大概是2004年下半年参与支付宝系统建设的。当时的目标,支付宝系统是面向整个互联网,而不是淘宝 网内部的一个产品。那应该说是支付宝系统的一个起点,那当时非常的简单,就是一个应用程
2017-07-26 14:37:47
710
原创 Spring AOP和事务的相关陷阱
1、前言Spring AOP在使用过程中需要注意一些问题,也就是平时我们说的陷阱,这些陷阱的出现是由于Spring AOP的实现方式造成的。对于这些缺陷本人坚持的观点是:一是每一样技术都或多或少有它的局限性,很难称得上完美,只要掌握其实现原理,在使用时不要掉进陷阱就行,也就是进行规避;二是更进一步讲,我们应该接受这就是技术本身的特点,也说不上什么缺陷,它本身就在“那里”,只是我们要的结果是“这
2017-07-26 14:29:26
415
原创 淘宝海量数据产品的技术架构
淘宝海量数据产品的技术架构是什么,又是如何应对双十一的海量访问的?先看图:按照数据的流向来划分,我们把淘宝数据产品的技术架构分为五层(如图1所示),分别是数据源、计算层、存储层、查询层和产品层。位于架构顶端的是我们的数据来源层,这里有淘宝主站的用户、店铺、商品和交易等数据库,还有用户的浏览、搜索等行为日志等。这一系列的数据是数据产品最原始的生命力所在。 在数据源层实时产生的数据,通
2017-07-26 13:39:08
3521
原创 mycat分布式mysql中间件(分片规则)
mycat 分片规则 传统的分片策略都是基于单表,或者分片基于主键进行分配,或者某些场景下需要多个表依赖于一个分片,或者分片的字段并不是主键。 a. 对于传统的数据库分片方式都是基于单个表格,对于表关联这种操作,则很难处理。为了能够执行t_user与t_user_detail的联合查询, MyCAT借鉴了NewSQL领域的新秀Foundation DB的设计思路,F
2017-07-26 12:06:08
1152
原创 Mycat水平拆分之十种分片规则
水平切分分片实现 配置schema.xml 在同一个mysql数据库中,创建了三个数据库 testdb1,testdb2,testdb3。并在每个库中都创建了user表 testdb" checkSQLschema="false" sqlMaxLimit="100” >
2017-07-26 11:49:19
5156
原创 mysql处理海量数据时的一些优化查询速度方法
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此
2017-07-26 11:36:49
314
原创 zookeeper原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee
2017-07-25 09:43:10
269
原创 Java集群优化——dubbo+zookeeper构建高可用分布式集群
不久前,我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容,就是分布式,而当下流行的Dubbo框架,不容我们忽视,这里,咱们一起来探讨一下这个框架的使用。一,背景 以前我们需要远程调用他人的接口,我们是这么做的:
2017-07-24 17:40:11
237
原创 ZooKeeper学习第一期---Zookeeper简单介绍
一、分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调 度算法就轻松解决了。说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解。如果这
2017-07-24 17:20:46
240
原创 新一代Java模板引擎Thymeleaf
Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。Thymeleaf初探相比于其他的模板引擎,Thymelea
2017-07-24 17:01:10
416
原创 30分钟掌握ES6/ES2015核心内容
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。也就是说,ES6就是ES2015。虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了。所以就算你现在不打算使用ES6,但为了看懂别人的你也该懂点ES6的语法了...在我们正式
2017-07-24 16:14:48
268
原创 Vue.js——60分钟快速入门
Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。本文摘自:http://www.cnblogs.com/keepfool/p/5619070.html如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手
2017-07-24 15:49:11
412
原创 Spring Boot 集成Swagger
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。更多关于Swagger的作用,相信大家百度一下能了解的更全面,本文以SpringBoot中集成
2017-07-24 15:36:36
229
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人