自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1178)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 如何更好地学习dubbo源代码

http://jm.taobao.org/2013/11/14/3138/ 很荣幸,作为这样一款业界使用率和好评率出众的RPC框架的维护者,今天这个文章主要是想帮助那些热爱开源的同学,更好的来研究dubbo的源代码。 一、Dubbo整体架构1、Dubbo与Spring的整合Dubbo在使用上可以做到非常简单,不管是Provider还是Consumer都可以通过Spring的...

2018-09-14 17:28:53 594 2

原创 Java中的Date和时区转换

1.Date中保存的是什么在java中,只要我们执行Date date = new Date();就可以得到当前时间。如:Date date = new Date();System.out.println(date); 输出结果是:Thu Aug 24 10:15:29 CST 2017也就是我执行上述代码的时刻:2017年8月24日10点15分29...

2018-08-30 15:29:24 3784

原创 采用zookeeper的EPHEMERAL节点机制实现服务集群的陷阱

笔者在一个Websocket中间件产品(Apush,https://market.aliyun.com/products/56928004/cmapi020699.html#sku=yuncode1469900000)的集群管理中使用了zk的EPHEMERAL节点机制。在编码过程中发现很多可能存在的陷阱,毛估估,第一次使用zk来实现集群管理的人应该有80%以上会掉坑,有些坑比较隐蔽,在网络问题或...

2018-08-30 10:34:16 1949

原创 分布式系统-关键技术点

CAP 理论抽屉理论Quorum 机制 HDFS rqmZooKeeper fencing 问题Zookeeper 的 ZAB(Zookeeper Atomic Broadcast)RAFT 协议Zookeeper 选主Redis sentinelRedis 分布式锁存在的安全问题Zookeeper election epochZooKeeper zx...

2018-08-27 19:26:55 811

原创 TCP连接状态异常记录

参考:http://blueskykong.com/2018/07/26/tcp-close-wait/问题描述分布式事务Lottor在测试环境中运行一段时间之后,出现Lottor客户端连接不上Lottor Server的情况。经过排查,发现根源问题是Lottor客户端获取不到Lottor Server的集群信息。Lottor Server启动了两个端口:9666为Tomcat容器的...

2018-08-16 14:36:39 625

原创 HTLL 设计原则

设计不管你是否使用HTTL,都欢迎看一下此设计文档,可能对你设计上有帮助,因为设计理念是相通的。静态视图查看大图模型划分原则按实体域,服务域,会话域划分。不管你做一个什么产品,都一定有一个被操作的主体,比如:服务框架管理的Service,任务框架管理的Task,Spring管理的Bean等,这就是实体域。即然有被操作者,就一定有操作者,它管理被操作者的生命周期,发...

2018-07-26 18:27:01 645

原创 服务治理过程演进

转于自己在公司的Blog: http://pt.alibaba-inc.com/wp/experience_1402/service-governance-process.html  在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。 (1) 当服务越来越多时,服务URL配置管理变得非常困难,F...

2018-07-26 18:25:30 198

原创 log4j 和slf4j的 类冲突解决

1. 检查 log4j 和slf4j的冲突 public class Log4jTest { public static void main(String[] args) { try { Class.forName("org.slf4j.impl.Log4jLoggerFactory"); } catch (ClassNotFoundException e)...

2018-07-14 16:11:05 3486

原创 Raft

前言上篇文章说解决问题要分而治之,先把分片的问题解决了再考虑多个副本的一致性问题。那么什么是一致性问题?因为同一数据存在多个副本,在并发的众多客户端读/写请求下,如何维护数据一致性视图非常重要,即在存储系统外部使用者看起来即使是多个副本数据,其表现也和单份数据一样。简单来说,要使多个副本的数据一致,需要通过某种一致性协议来对副本进行更新。如果不按照某种一致性协议进行更新,数据...

2018-07-12 14:20:55 250

原创 MySQL 中的重做日志,回滚日志 ,以及二进制日志的简单总结

ImportNew 5天前(点击上方公众号,可快速关注)来源:MSSQL123 ,www.cnblogs.com/wy123/p/8365234.htmlMySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一...

2018-06-06 17:44:25 495

原创 中间件内置logger功能

在开发中间件的时候有时候希望日志能强制输出到我们制定的地方而不需要用户关心,这个可以通过JAVA API的方式实现[code="java"] static public final Logger log = new LoggerContext().getLogger(ClientImpl.class); private static void initLog() thr...

2018-05-31 15:50:25 588

原创 FASTJSON 增加对泛型的支持

FASTJSON 默认没有开启对泛型的支持。通过SerializerFeature.WriteClassName增加[code="java"] Map map = new HashMap(); map.put("now", new Date()); String str = JSON.toJSONString(map,SerializerFeature.WriteCla...

2018-05-31 15:02:18 1146

原创 51信用卡 限流 实践

为什么需要限流我们都知道,构建高并发的系统有三大利器:缓存、降级、限流。通过使用缓存,可以让用户在获取数据链路的过程变的更短、获取数据的速度变得更快,从而提升系统的吞吐量,通过使用降级手短,可以把非核心业务的资源用来保证核心业务的正常服务。然而有些场景并不能用缓存和降级来解决,比如稀缺资源的秒杀、抢购、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景...

2018-05-18 16:05:54 430

原创 分布式事务消息中心TMC

系统原理     贷款和理财是51信用卡目前最主要的业务。金融相关的应用,往往对数据的一致性有着较高的要求,通常对DB的操作都是用事务来保障。但是在分布式的环境下,要保持事务的一致性从来都不是一件容易的事,传统通过两阶段、三阶段提交方式实现的XA事务由于代价太高,性能损失太大,在互联网公司中并不常用,而更常用的是实现最终一致性,即系统允许短暂的不一致,但是最终能达到一致的状态。   ...

2018-05-18 15:51:51 1213

原创 java8 lamda 例子记录

1. stringjoinexpectList=[1,2,3,4,5]expectList.stream().map(status -> status.int()).collect(Collectors.joining(","))  

2018-05-12 14:14:57 243

原创 HikariPool-1 - Connection is not available, request timed out after

 在开发中遇到HikariPool-1 - Connection is not available, request timed out after 3000ms 代码是之前别人写,通过调试发现由于没有conn.close(),很快连接池里的连接用完就会抛出这个异常了...

2018-05-07 19:13:04 2723 1

原创 java.io.StreamCorruptedException: invalid stream header: EFBFBDEF

Java代码  public class TestDeserialize extends TestCase {      public void testDeserialize() throws IOException, ClassNotFoundException {          ByteArrayOutputStream baos = new ...

2018-05-03 16:54:39 2781

原创 grafana 监控 nginx日志

参考:https://grafana.com/dashboards/2292http://www.vincentblog.cn/Nginx%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F-%E4%BA%94-Grafana%E9%85%8D%E7%BD%AE.html 安装Gr...

2017-09-25 18:57:06 2166 1

原创 Nginx日志分割脚本

#/bin/bashLOGS_PATH="/usr/local/nginx/logs"YESTERDAY=$(date -d "yesterday" +%Y%m%d)pid_path="/usr/local/nginx/logs/nginx.pid"cd $LOGS_PATHfor log_name in ` ls *.access.log `domv ${LOGS_...

2017-09-25 18:53:39 240

原创 grafana+influxdb 监控

https://grafana.com/dashboards/1443http://www.vincentblog.cn/%E4%BD%BF%E7%94%A8telegraf-influxdb-grafana%E6%89%93%E9%80%A0%E9%A2%9C%E5%80%BC%E7%88%86%E8%A1%A8%E7%9A%84%E7%9B%91%E6%8E%A7%E7%B3%BB%E...

2017-09-25 18:50:57 621

原创 spring+mybatis利用interceptor(plugin)兑现数据库读写分离

使用spring的动态路由实现数据库负载均衡 系统中存在的多台服务器是“地位相当”的,不过,同一时间他们都处于活动(Active)状态,处于负载均衡等因素考虑,数据访问请求需要在这几台数据库服务器之间进行合理分配, 这个时候,通过统一的一个DataSource来屏蔽这种请求分配的需求,从而屏蔽数据访问类与具体DataSource的耦合;系统中存在的多台数据库服务器现在地位可能相当也可...

2017-09-20 16:16:32 183

原创 java uuid

在java中产生uuid的方式是使用java.util.UUID。UUID.randomUUID().toString();我在测试redis性能时,使用uuid产生测试数据,发现多线程测试redis的rpush接口的时候,性能老是上不去。查看cpu利用率也不高,网卡流量也不大。就是tps上不去。但是如果用两台client去测,又可以达到更高的tps。后来直接用jstack查看了下堆...

2017-09-14 18:18:33 183

原创 JAVA 编码规范

https://google.github.io/styleguide/javaguide.html https://www.zhihu.com/question/55642203

2017-09-06 11:34:58 110

原创 Spring boot 通用配置文件模板

Spring boot 通用配置文件模板  001 # ===================================================================002 # COMMON SPRING BOOT PROPERTIES003 #004 # This sample file is provided as a guideline. Do...

2017-08-17 11:35:29 166

原创 Spring Boot自动配置

http://blog.javachen.com/2016/02/19/spring-boot-auto-configuration.html  在上篇文章如何运行Spring Boot应用中,已经熟悉了如何通过maven或者gradle创建一个Spring Boot应用,这篇文章主要学习Spring Boot的自动配置,包括注解的使用以及一些配置约束等等。关于Spring Bo...

2017-08-16 17:05:38 185

原创 Spring Boot特性

1. SpringApplicationSpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 SpringApplication.run 这个静态方法:public static void main(String[] args) { SpringApplication.run(MySpring...

2017-08-16 16:57:54 131

原创 Spring Security(03)——核心类简介

参考:http://www.cnblogs.com/fenglan/category/887982.htmlSpring Security(03)——核心类简介 目录1.1     Authentication1.2     SecurityContextHolder1.3     AuthenticationManager和AuthenticationProvi...

2017-08-16 12:06:01 127

原创 springboot 整合freemarker

Spring Boot入门——freemarker 使用步骤:1、在pom.xml中添加相关依赖  <!-- 添加freemarker依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <ar...

2017-08-15 11:43:34 164

原创 MD5 算法总结

MD5总结 package com.medishare.platform.pharos.client.common;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/** * * @author jiangyunpeng * */p...

2017-08-07 16:06:29 256

原创 apache kafka技术分享系列(目录索引)

http://blog.csdn.net/lizhitao/article/details/39499283

2017-07-14 14:53:51 171

原创 一种范围统计和聚合的SQL

例子: select sum(case when age<=6 then 1 else 0 END) as '0-6', sum(case when age>=7 and age<=18 then 1 else 0 END) as '7-18', sum(case when age>=19 and age<=25 then 1 else 0 EN...

2017-06-03 15:24:45 244

原创 分布式Snapshot和Flink Checkpointing简介

最近在学习Flink的Fault Tolerance,了解到Flink在Chandy Lamport Algorithm的基础上扩展实现了一套分布式Checkpointing机制,这个机制在论文"Lightweight Asynchronous Snapshots for Distributed Dataflows"中进行了详尽的描述。怀着对Lamport大神的敬仰,我分别下载研读了两篇论文,在...

2017-05-03 16:03:50 305

原创 NoSQL database: Big Table

关系型数据库曾经在网站和企业应用中都是占统治地位的结构化数据存储技术。自从上世纪70年代关系型数据诞生,一直到本世纪初,关系型数据库和SQL语言几乎是结构化数据存储和访问的唯一选择。这几乎是一个奇迹 - 想象一下, 同一时期,硬件技术,软件开发技术变化可以用天翻地覆来形容。而这个领域几乎没有发生革命性的改变。 变革起初发生在数据访问层面上。 如早期的EJB体系中的实体Bean,到SSH...

2017-04-19 09:55:36 146

原创 Uber实时数据处理架构

Kafka 2016 Summit上Uber工程师Danny Yuan分享了一个Streaming Processing PPT,如何解决Uber里Operation Team所需要的需求。看了整个视频觉得介绍很细致,这对于大部分LBS (Location Based Service)有很好的借鉴意义。业务需求Realtime OLAP对于Operation部门而言,实时性很重要:...

2017-04-11 15:37:09 779

原创 gitconfig

git 配置,新建.gitconfig,放在~/.gitconfig 目录 [core] excludesfile = /Users/jiangyunpeng/.gitignore_global quotepath = false[difftool "sourcetree"] cmd = opendiff \"$LOCAL\" \"$REMOTE\" path =...

2017-03-22 15:38:40 169

原创 Beringei高性能时间序列内存数据库原理

时间戳压缩算法 1. 首先普通的时间戳如下:2017年3月3日 3:00:00 14884812002017年3月3日 3:01:02 14884812622017年3月3日 3:02:02 14884813222017年3月3日 3:03:02 1488481382秒级别的时间戳用long类型存储需要占用8bytes。 如果直接存储以上数据需要...

2017-03-21 11:08:41 1152

原创 jstorm消息处理的容错语意

jstorm消息处理的容错语意 分布式流式计算的容错问题分布式计算不仅带来了系统的横向扩展能力,同时也带来了网络通信的复杂性和更大的故障概率等问题。因此,分布式计算平台、系统首要解决的问题就是容错,在出现网络不畅、机器宕机、进程失效等问题时,能够及时发现故障,采取处理措施,保证计算的正确性。 相比批处理,分布式流式计算面临的容错考验会更大,因为流式计算一般调度处理的数据单元粒...

2017-03-21 10:59:31 349

原创 混合检测

  什么是混合检测?它能为我们带来什么?混合检测,是 Google Stackdriver 提出的一个概念,它是指将监控、记录和诊断融为一体,使用户能够洞察应用系统的健康、性能和可用性,更快地找到并解决问题。它能够为我们提供以下几方面能力。 全局环境视图,将同一用户或应用的所有指标、日志和元数据合并到一个全局环境视图中,进行综合分析。针对外部用户,应能实现跨云整合(混合云)。...

2017-03-15 15:11:15 1658

原创 NoSQL database: Big Table

关系型数据库曾经在网站和企业应用中都是占统治地位的结构化数据存储技术。自从上世纪70年代关系型数据诞生,一直到本世纪初,关系型数据库和SQL语言几乎是结构化数据存储和访问的唯一选择。这几乎是一个奇迹 - 想象一下, 同一时期,硬件技术,软件开发技术变化可以用天翻地覆来形容。而这个领域几乎没有发生革命性的改变。 变革起初发生在数据访问层面上。 如早期的EJB体系中的实体Bean,到SSH中的H...

2017-03-07 17:33:27 239

原创 NoSQL HBase

Hbase架构Hmaster: 元数据,schema管理。 region分配,负载平衡,但是不介入直接的数据访问Region server: 读写请求处理,Region分裂管理。介绍我们以一个实际的业务例子来粗浅地看看在面对不同数据规模的互联网业务时,数据体系的一个演变过程。Hush是一家提供短链接服务的互联网公司。它把客户的长HTTP链接转换成一个短HTTP链接,方便客...

2017-03-07 16:39:46 177

jvm规范

最权威的JVM规范,深入讲解classloader,class装载时机,类装载安全

2007-11-06

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

TA关注的人

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