自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pony Chen's Blog

Pony Chen's Blog

  • 博客(36)
  • 收藏
  • 关注

转载 Git-Flow 开发流程介绍

引言编写的目的-通过规范化的流程,使得产品、开发与测试等各个部门更高效的协同工作。-通过规范化的流程使得产品高效稳定运行。背景在多组员,多项目等环境进行协同工作时,如果没有统一规范、统一流程,则会导致额外的工作量,甚至会做无用功。所以要减少版本冲突,减轻不必要的工作,就需要规范化的工作流程。总则-统一使用Git作为版本控制的主要工具。-统一使用GitFlow流程管理控制...

2018-12-12 18:24:39 375

原创 Redis分布式锁的正确实现方式

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的...

2018-12-05 15:58:51 285

转载 redis分布式锁详解

一、使用分布式锁要满足的几个条件:系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL) 同步访问(即有很多个进程同事访问同一个共享资源。没有同步访问,谁管你资源竞争不竞争)二、应用的场景例子  管理后台的部署架构(多台tomcat服务器...

2018-12-05 14:36:34 327

转载 变态的静态资源缓存与更新

这是一个非常有趣的 非主流前端领域,这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题,入行到现在一直在学习和实践中。在我的印象中,facebook是这个领域的鼻祖,有兴趣、有梯子的同学可以去看看facebook的页面源代码,体会一下什么叫工程化。接下来,我想从原理展开讲述,多图,较长,希望能有耐心看完。让我们返璞归真,从原始的前端开发讲起。上图是一个“可爱”的index.html页...

2018-07-05 15:42:55 623 1

原创 Nginx Log日志统计分析常用命令

IP相关统计统计IP访问量(独立ip访问数量)awk '{print $1}' access.log | sort -n | uniq | wc -l查看某一时间段的IP访问量(4-5点)grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l 查看访问最频繁的前100个I...

2018-07-04 17:44:53 436

转载 DNS中的七大资源记录介绍

在Microsoft产品系列中,ADDS是一个很出色的设计平台,说到AD,那么我们就不得不提起他的合作伙伴--DNS,相信大家都知道,DNS在AD中的重要地位,就如男人和女人一样,要想有所作为,他们2个就必须进行结合,缺少任何一方,这个社会也就失去了色彩!) DNS分为正向查找区域和反向查找区域,然后在分为,主要,辅助,存根区域,在这些区域里,又存在着很多的记录,今天,就让我们来看看这些记录:1,...

2018-06-30 12:30:15 30417 3

转载 AWS - 手动创建VPC 公网,子网和NAT实例

情景 2 配置下表展示了此情景配置的主要组成部分。简单的说就是需要创建两个子网,公网(或者更传统的更准确的说法是DMZ网)里面是网页服务器和NAT服务器,都可以访问互联网,内网里面是数据库服务器,网页服务器需要从数据库上读取信息,数据库服务器只有通过NAT服务器才能访问互联网。配置向导1分钟就全都配完了,如果全手动操作,需要按顺序配置以下服务: VPC VPC下面...

2018-06-23 18:16:07 5386

转载 ActiveMQ中Consumer特性详解与优化

前言    从本文中你可以了解到如下内容:    1) consumer端消息消费的模型,session的运作机制    2) 如果提升broker和consumer端消息消费的速率    3) selector,group,exclusive对消息消费的影响    4) 如何让Priority更好的运行,提高消息的顺序性    5) Slow Consumer的产生原因,以及如何调优。     ...

2018-06-19 19:02:03 1103

转载 MySQL几个性能指标的经验数据

近期参加了一个DBA MySQL的分享,主要从MySQL的性能指标分析、同步及运维三个方面分享一些经验,其中,一些经验值还是值得记录下来的:对于一个MySQL实例,CRUD上限经验值如下:Query:3w/sInsert:2w/sUpdate:8000/sDelete:8000/s这几个值是一个经验值,即观察MySQL的性能报表,如果长时间超过这些值,说明就是不合理的,偶尔超过个人认为问题应该不大...

2018-06-19 15:42:06 1645

转载 MySQL 数据库 性能监控

SHOW STATUS;FLUSH STATUS;查看当前连接数 SHOW STATUS LIKE 'Thread_%';Thread_cached:被缓存的线程的个数Thread_running:处于激活状态的线程的个数Thread_connected:当前连接的线程的个数Thread_created:总共被创建的线程的个数Thread cache hits Thread_connected =...

2018-06-19 15:41:13 262

转载 MySQL性能的五大配置参数(内存参数)

内存参数:存储引擎/共享日志缓冲区,缓冲区池 innodb_buffer_pool_sizeinnodb_additional_mem_pool_sizeinnodb_log_buffer_size服务器/共享查询调整缓存线程高速络缓存query_cachetable_cahcetable_definition_cache连接/会话排序缓冲区,读取缓冲区,临时表binlog_cache_sizer...

2018-06-19 15:40:04 834

转载 Mysql性能分析及优化

近期在完善好项目的基本功能后,逐步开始考虑数据库性能优化的问题。一个项目性能的好坏,不全依赖于sql,程序也占一部分,这里先从优化sql开始。下面看看sql基本的分析语句,部分是借鉴的,部分是自己写的,不对之处,欢迎指正。  mysql> show global status;  可以列出MySQL服务器运行各种状态值,另外,查询MySQL服务器配置信息语句:  mysql> sh...

2018-06-19 15:39:00 265

转载 MySQL性能分析、及调优工具使用详解

本文汇总了MySQL DBA日常工作中用到的些工具,方便初学者,也便于自己查阅。先介绍下基础设施(CPU、IO、网络等)检查的工具:vmstat、sar(sysstat工具包)、mpstat、oprofile、nicstat、dstat、iotop、tsar、iostat 掌握几个即可,功能大同小异(个人常用的是 dstat、sar)。CPU:    mpstat -P ALL 1  每隔1s显示...

2018-06-19 15:37:37 2024

转载 ActiveMQ 性能数据

工作之余,公司想对ActiveMQ进行一番性能测试,测试环境: 硬盘:1T,5400  (效果不佳)  得出了一个异样的测试结果: 持久: 插入200000条JSON,共消耗:25.175 s平均:7944.389275074478 条/秒 插入200000条JSON,共消耗:34.47 s平均:5802.146794313896 条/秒 插入200000条JSON,共消耗:29.937 s数量:...

2018-06-19 15:20:09 2076

转载 百万行mysql,count()函数的思考与总结

如果你的需要是统计总行数时,为什么要使用count(*),而避免使用指定具体的列名?count()函数里面的参数是列名的的时候,那么会计算这个字段有值项的次数。也就是,该字段没有值的项并不会进入计算范围(就是网上常说的值为null的项不纳入统计)很多地方都有类似表述:COUNT ( column ) counts all non-NULL occurences (or should  …  计算所...

2018-06-14 20:55:56 2052

转载 美团点评MySQL数据库高可用架构从MMM到MHA+Zebra以及MHA+Proxy的演进

本文介绍最近几年美团点评MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新。同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望。MMM在2015年之前,美团点评(点评侧)长期使用MMM(Master-Master replication manager for MySQL)做数据库高可用,积累了比较多的经验,也踩了不少坑,可以说MMM...

2018-05-24 20:46:13 1185

转载 mysql 主从架构浅析

1.MySQL主从复制入门首先,我们看一个图:影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。 MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。 那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是所谓的MYSQL的复...

2018-05-17 17:58:21 954

转载 Redis与MySQL的组合方案

方案由从易到难的顺序,但无论哪种方法,都需要保证的是Reids和MySQL的数据一致性。方案一:程序同时写Redis和MySQL读Redis方案二:程序写MySQL, 使用Gearman调用MySQL的UDF,完成对Redis的写读Redis参考 《利用Gearman进行Mysql到Redis的复制》方案三:程序写MySQL, 解析binlog,数据放入队列写Redis读Redis参考 《利用Ca...

2018-03-22 11:05:31 1226

转载 分表分库-订单系统的垂直与水平sharding

背景原大众点评的订单单表早就已经突破两百G,由于查询维度较多,即使加了两个从库,优化索引,仍然存在很多查询不理想的情况。去年大量抢购活动的开展,使数据库达到瓶颈,应用只能通过限速、异步队列等对其进行保护;业务需求层出不穷,原有的订单模型很难满足业务需求,但是基于原订单表的DDL又非常吃力,无法达到业务要求。随着这些问题越来越突出,订单数据库的切分就愈发急迫了。这次切分,我们的目标是未来十年内不需要...

2018-03-22 09:30:08 1022

转载 Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》

  当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台、几十台、几百台。然而,用户访问时是通过如http://www.jd.com的方式访问,在请求时,浏览器首先会查询DNS服务器获取对应的IP,然后通过此IP访问对应的服务。  因此,一种方式是www.jd.com域名映射多个IP,但是,存在一个最简单的问题,假设某台服务器重启或者出现故障,DNS会有一定的缓存时间,故障...

2018-03-20 18:59:16 532

转载 智能合约 web3.js ABI Address三者的关系

web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON RPC API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等,其中最重要的就是与智能合约交互的API。下面就介绍如何使用web3.js提供的接口调用智能合约。系统和软件Ubuntu 16.04 64位nodej...

2018-03-14 10:23:52 8804 2

转载 一个区块链上不错的公用库(用来和互联网进行交互)

区块链应用中,外部世界如何与智能合约交互往往是一个容易被忽视的问题,很多的智能合约应用场景是根据一些外部事件,输出相应的结果,而传统的IT数据交互方式实际上并不能投入真正的工作。例如,按照农产品价格情况来支付投保人赔款的农产品价格险保单。传统IT人员一般认为是如下的流程:智能合约会在预定的时间,从期货交易场所获取农产品价格,然后按照获取的数据采取预设的行动。听起来很简单,但却不可能实现。为什么呢?...

2018-03-14 10:04:22 2682 1

转载 编写调试一个以太坊的智能合约

一、       智能合约IDE简介    目前以太坊上支持三种语言编写智能合约,    Solidity:类似JavaScript,这是以太坊官方推荐语言,也是最流行的智能合约语言。具体用法参加Solidity文档,地址:https://solidity.readthedocs.io/en/latest/    Serpent:类似Python风格,文档地址:https://github.com...

2018-03-14 09:57:13 1143 1

转载 部署及运行一个以太坊的智能合约(图形界面)

网络上不少部署智能合约的文章,但是都有一个共同的特点,就是采用命令行的方式来部署,先是建立SOLC的编译环境,然后部署Geth或者Eth节点,然后一步一步生成钱包、ABI、合约地址进行部署,对初学者来说晦涩难懂而且容易失败,本文主要介绍如何在图形化界面下一键部署和调用智能合约。对于其他区块链知识,请参考我的其他文章:http://blog.csdn.net/sportshark一、       智...

2018-03-14 09:54:55 4675 2

转载 如何通过以太坊智能合约来进行众筹(ICO)

前面我们有两遍文章写了如何发行代币,今天我们讲一下如何使用代币来公开募资,即编写一个募资合约。写在前面本文所讲的代币是使用以太坊智能合约创建,阅读本文前,你应该对以太坊、智能合约有所了解,如果你还不了解,建议你先看以太坊是什么众筹先简单说下众筹的概念:一般是这样的,我一个非常好的想法,但是我没有钱来做这事,于是我把这个想法发给大家看,说:我做这件事需要5百万,大家有没有兴趣投些钱,如果大家在30天...

2018-03-12 22:46:07 409

转载 以太坊智能合约编程简单教程(全)

有些人说以太坊太难对付,于是我们(译注:指Consensys, 下同)写了这篇文章来帮助大家学习如何利用以太坊编写智能合约和应用。这里所用到的工具,钱包,应用程序以及整个生态系统仍处于开发状态,它们将来会更好用!第一部分概述,讨论了关键概念,几大以太坊客户端以及写智能合约用到的编程语言。第二部分讨论了总体的工作流程,以及目前流行的一些DApp框架和工具。第三部分主要关于编程,我们将学习如何使用Tr...

2018-03-12 22:03:40 39177 1

转载 Fabric 1.0 Release 架构浅读

Hyperledger是被业界非常看到的联盟链的实现,包括IBM、Intel、R3、各个大型商业银行等都参与其中,带给我们关于区块链技术与软件工业、金融、保险、物流等领域碰撞结合的想象空间;在这个联盟中,有超过1/4的成员都来自中国,这更是我们对于它的一举一动都非常关注。很大程度上,Hyperledger和它背后的联盟体系就代表着区块链在产业环境中的未来(仅仅个人观点,欢迎拍砖,呵呵 :-))。作...

2018-03-12 17:28:14 773

转载 Hyperledger Fabric架构浅读-2

Hyperledger Fabric架构使用具有保证的发布-订阅模式消息传递通道(如Kafka中的主题分区)将共识服务与交易日志(账本)分离。 共识服务由称为Orderers的网络节点提供,并且账本由Peer节点管理。每个Peer节点连接到共识服务的一个或多个通道,就像发布-订阅通信系统中的客户端一样。 在通道上广播的交易按共识的顺序排列(例如PBFT、kafka),订阅通道的Peer节点接收到加...

2018-03-12 09:01:05 737

转载 Fabric架构浅读

超级账本Fabric项目自诞生之日起就吸引了全球众多企业的密切关注,已经先后发布了两个大的版本,0.6实验版本(2016年9月)和1.0正式版本(2017年7月)。目前,超级账本Fabric架构上核心特性主要包括:解耦了原子排序环节与其他复杂处理环节,消除了网络处理瓶颈,提高可扩展性;解耦交易处理节点的逻辑角色为背书节点(Endorser)、确认节点(Committer),可以根据负载进行灵活部署...

2018-03-08 09:48:44 16281 3

原创 简单的语言描述Dashimoto算法的过程

以太币(ether)的挖矿算法叫做Ethash, 又名Dashimoto (Dagger-Hashimoto),是Hashimoto算法结合Dagger之后产成的一个变种。接下来让我们看看Dashimoto的基本流程:对于每一个块(block),先计算出一个种子(seed)。种子的计算只依赖于当前块的信息,例如block number以及block headers。使用种子产生32MB的伪随机数据...

2018-03-07 17:26:17 758

转载 以太坊数据结构、存储、区块头的关系与分析

在Ethereum的世界里,数据的最终存储形式是[k,v]键值对,目前使用的[k,v]型底层数据库是LevelDB;所有与交易,操作相关的数据,其呈现的集合形式是Block(Header);如果以Block为单位链接起来,则构成更大粒度的BlockChain(HeaderChain);若以Block作切割,那么Transaction和Contract就是更小的粒度;所有交易或操作的结果,将以各个个...

2018-02-27 22:42:23 11630 2

转载 以太坊白皮书[中文]

当中本聪在2009年1月启动比特币区块链时,他同时向世界引入了两种未经测试的革命性的新概念。第一种就是比特币(bitcoin),一种去中心化的点对点的网上货币,在没有任何资产担保、内在价值或者中心发行者的情况下维持着价值。到目前为止,比特币已经吸引了大量的公众注意力,就政治方面而言它是一种没有中央银行的货币并且有着剧烈的价格波动。然而,中本聪的伟大试验还有与比特币同等重要的一部分:基于工作量证明的...

2018-02-27 20:41:43 2259

转载 联盟链多链与跨链的思考

源于数字加密货币在公众中的广泛流行,其背后的区块链技术也逐渐得到了公众广泛关注与主流机构的研究。当下区块链行业发展方兴未艾,各种技术发展迅速。目前对区块链技术的主流划分主要有公有链、联盟链、私有链。以比特币、ZCash、以太坊等为代表的公链,有去中心化、去信任化、抗审查、加密数字货币经济、开放的智能合约生态等主要特点。以R3、Hyperledger、金链盟为代表的联盟链,强调同业或跨行业间的机构或...

2018-02-27 09:20:29 15728 6

转载 Web高并发-秒杀场景浅谈

一、大规模并发带来的挑战[电商秒杀与抢购]:在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常状态。我们现在一起来讨论下,优化的思路和方法哈。1. 请求接口的合理设计[电商秒杀与抢购]:一个秒杀或者抢购页面,通常分为2个部分,一个是静态的HTML等内容,另一个就是参与秒杀的Web后台请求接...

2018-02-26 09:16:46 785

转载 高并发接入层的线程切换深度分析

典型的两个现实案例:我们先看两个用Go做消息推送的案例实际处理能力。360消息推送的数据:16台机器,标配:24个硬件线程,64GB内存 Linux Kernel 2.6.32 x86_64 单机80万并发连接,load 0.2~0.4,CPU 总使用率 7%~10%,内存占用20GB (res) 目前接入的产品约1280万在线用户 2分钟一次GC,停顿2秒 (1.0.3 的 GC 不给力,直接升...

2018-02-26 09:12:02 480

转载 以太坊源码研究:PoW及共识算法深究

本系列的前两篇分别介绍了以太坊的基本概念,基本环节-交易,区块、区块链的存储方式等,这篇打算介绍一下“挖矿“得到新区块的整个过程,以及不同共识算法的实现细节。1.待挖掘区块需要组装在Ethereum 代码中,名为miner的包(package)负责向外提供一个“挖矿”得到的新区块,其主要结构体的UML关系图如下图所示:处于入口的类是Miner,它作为公共类型

2018-02-25 11:56:08 7010

空空如也

空空如也

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

TA关注的人

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