[置顶] 垃圾收集分析(1)-Java对象结构(上)

GC(Garbage Collection)是目前很多编程语言自带的特性,例如Java,Python;GC是一个很好的特性,能让使用这个语言编程的程序员不去关心内存回收,并且降低内存泄漏和内存溢出发生的概率。 我们以Java语言JVM为例,从其对象结构和JVM运行时内存结构出发,针对其GC算法思路和实现进行分析,同时类比其他GC算法。 首先,在Java 8中,Java对象在内存中结构包括: 1...
阅读(611) 评论(1)

[置顶] JDK核心JAVA源码解析(1) - Object

想写这个系列很久了,对自己也是个总结与提高。原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用的时候我们一般很难想起来,因为我们用的少并且不知道为什么。知其所以然方能印象深刻并学以致用。 首先我们从所有类的父类Object开始:1. Object类(1)hashCode方法和equals方法public native int hashCode(); public boolea...
阅读(2104) 评论(1)

[置顶] 由一次年会系统大战所想到的。。。(1)

上个月接到了我公司年会系统的需求,觉得做起来有些困难。后来硬着头皮接下来了。年会1月6号顺利举办结束(由于是给程序员开的年会,所以年会过程中遇到了XSS注入,SQL注入,命令注入等攻击,年会现场还在改代码),一个很明显的感受就是,给程序员开的年会,一定要注意,安全性比成本重要。。。在这里记录下用到的技术,遇到的困难和选择,以及做的处理和不足。希望对于大家有些参考。 1. 需求的确立与任务的分配...
阅读(3202) 评论(8)

[置顶] 分布式对象存储Ambry(4)Ambry-Server模块源代码解析(启动与整体通信工作篇)

Ambry一共有三个主模块:Ambry-Server,Ambry-Frontend还有Ambry-Admin。其中,Ambry-Server为其核心,我们从核心开始,一部一部剖析其源码,并会分析它的设计模式。 一个提供各种服务的服务器框架源代码,我们一般从它的Facade类开始入手进行第一步分析。Facade类就是指设计模式中的外观模式的核心类,这个类会包含这个框架几乎所有的模块。一般的,像Amb...
阅读(2208) 评论(1)

[置顶] 记一次写Java项目启动管理脚本

最近将大概每天三分之一的精力放到了改造Ambry上(改造后的叫AmbryX,项目地址),Ambry原来最蛋疼的一点就是居然没有启动shell脚本和终止shell脚本,对于运维太不友好了。昨天下午做了个Ambry的启动管理脚本,并且推到了github上,记录下写的思路。 首先,确定下需求。需求网上有一个标准的java启动脚本模板,感觉上和我的需求不太符合。他的脚本一个机器上限制只能启动一个JVM进程...
阅读(2147) 评论(1)

[置顶] 分布式对象存储Ambry(3)源代码结构与改造调试

上一篇文章中,我们对于Ambry做了简单的集群测试,但是再次强调一遍,这些只是最简单的测试,而且集群配置也不适用于生产环境。具体生产如何配置,我们之后在讲完原理之后会讲。 首先,我们目前Ambry的架构集群如下所示: 通过这幅图片,我们可以看出,ambry简单来看,分为:前端(Ambry frontend)还有后端数据负载节点(Ambry)。前端是一个简单的暴露Restful的API的包含A...
阅读(1307) 评论(0)

[置顶] 分布式对象存储Ambry(2)基本使用API与集群容错测试

在上一篇文章中,我们部署了如下一个ambry集群: 下面,我们来为这个集群做简单的测试:基本Restful API首先,简单介绍下Ambry的API:1.GET /healthCheck 这个API用来检查集群状态是否完好。 我们访问(相当于直接GET):xx.xx.8.133/healthCheck,看到返回:HTTP/1.1 200 OK Content-Length: 4 GOOD2...
阅读(1468) 评论(1)

[置顶] 分布式对象存储Ambry(1)简介与集群部署

Ambry简介LinkedIn开源了多媒体对象存储数据库Ambry,开源不久,算是一个很新的事物。Ambry用来做对象存储,非常适合用于存储像LinkedIn这种社交媒体网站的对象数据(如图片,视频等等)。 LinkedIn过去使用的是一种闭源技术,非常复杂,而且也难以随着用户数和数据量的增长而扩展。LinkedIn工程总监Sriram Subramanian在博客中指出: 我们开始尝试在市场...
阅读(2669) 评论(2)

[置顶] 高并发数据结构Disruptor解析(6)

SequenceBarrierSequenceBarrier是消费者与Ringbuffer之间建立消费关系的桥梁,同时也是消费者与消费者之间消费依赖的抽象。 SequenceBarrier只有一个实现类,就是ProcessingSequenceBarrier。ProcessingSequenceBarrier由生产者Sequencer,消费定位cursorSequence,等待策略waitStra...
阅读(2981) 评论(0)

[置顶] 高并发数据结构Disruptor解析(5)

WaitStrategy 在Disruptor中,有很多需要等待的情况。例如:使用了SequenceBarrier的消费者需要在某种条件下等待,比如A消费者和B消费者,假设A消费者必须消费B消费者消费完的。 这些等待,还有唤醒等待的方法,由如下的WaitStrategy实现: 我们先来看接口类:...
阅读(2683) 评论(0)

[置顶] 高并发数据结构Disruptor解析(4)

RingBuffer RingBuffer类是Disruptor核心的数据结构类。它是一个环状的Buffer,上面的槽(slot)可以保存一个个Event。下面是Disruptor中RingBuffer类继承关系: 除了实现之前提到过的Sequenced和Cursored接口,这里还涉及到了DataProvider这个接口。 public interface DataProvider...
阅读(2743) 评论(0)

[置顶] 高并发数据结构Disruptor解析(3)

ProducerMultiProducerSequencer下面是多生产者核心类MultiProducerSequencer的类继承关系,与之前讲的SingleProducerSequencer相似: MultiProducerSequencer是多生产者类,线程安全,与单一生产者不同的是,这里的cursor不再是可以消费的标记,而是多线程生产者抢占的标记。可以消费的sequence由avai...
阅读(2312) 评论(0)

[置顶] 高并发数据结构Disruptor解析(2)

Sequence(续)之前说了Sequence通过给他的核心值value添加前置无用的padding long还有后置无用的padding long来避免对于value操作的false sharing的发生。那么对于这个value的操作是怎么操作的呢? 这里我们需要先了解下Unsafe类这个东西,可以参考我的另一篇文章 - Java Unsafe 类。 Unsafe中有一些底层为C++的方法,对...
阅读(4059) 评论(2)

[置顶] 高并发数据结构Disruptor解析(1)

最近想解决下MyCat开统计后TPS吞吐量总上不去的问题,于是想起了Disruptor这个东西。之前想研究过,但是,由于当时并不太需要,而且感觉官方示例比较怪异,就是知道他比较快,没有想用。现在捡起来好好研究下。 首先,推荐大家并发编程网的Disruptor译文. 官网的翻译,翻译的不错,从硬件到软件,谈了Disruptor相对于传统阻塞队列的优化。这里主要针对源代码谈实现和应用。 首先,先拿一...
阅读(4867) 评论(3)

[置顶] MyCat - 源代码篇(16)

数据库路由中间件MyCat - 源代码篇(16)5. 路由模块5.5 AST语义解析路由DruidParser结构: 基本使用解析代码://sql是一组SQL语句 MySqlStatementParser parser = new MySqlStatementParser(sql); //获取每个语句粗粒度的parse结果 List statementList = pa...
阅读(3648) 评论(11)

[置顶] MyCat - 源代码篇(15)

数据库路由中间件MyCat - 源代码篇(15)5. 路由模块5.4 DDL语句路由可以分为两步,整体源代码:public static RouteResultset routeToDDLNode(RouteResultset rrs, int sqlType, String stmt,SchemaConfig schema) throws SQLSyntaxErrorException {...
阅读(3645) 评论(0)

[置顶] MyCat - 源代码篇(14)

数据库路由中间件MyCat - 源代码篇(14)5. 路由模块真正取得RouteResultset的步骤:AbstractRouteStrategy的route方法: 对应源代码:public RouteResultset route(SystemConfig sysConfig, SchemaConfig schema, int sqlType, String origSQL,...
阅读(10607) 评论(7)

[置顶] MyCat - 源代码篇(13)

数据库路由中间件MyCat - 源代码篇(13)5. 路由模块5.1 路由模块组成:路由模块,我们可以先把他当做个黑盒,看下输入和输出都是神马。 输入,很明显,就是个SQL语句,原生的,不加任何修饰的,纯洁的,从客户端发过来刚刚被解码的SQL语句。 输出呢?就是个优化,改写后的SQL语句,以及要发送到的后台分片。 这个RouteResultSet就是输出,长什么样子呢? 下图是主要涉及到...
阅读(4173) 评论(0)

[置顶] MyCat - 源代码篇(12)

数据库路由中间件MyCat - 源代码篇(12) 4.配置模块 4.2 schema.xml 接上一篇,...
阅读(3892) 评论(1)

[置顶] MyCat - 源代码篇(11)

数据库路由中间件MyCat - 源代码篇(11)4.配置模块每个MyCatServer初始化时,会初始化: MyCatServer.java:public static final String NAME = "MyCat"; private static final long LOG_WATCH_DELAY = 60000L; private static final long TIME_UPD...
阅读(8687) 评论(2)

[置顶] MyCat - 源代码篇(10)

数据库路由中间件MyCat - 源代码篇(10)Created with Raphaël 2.1.0MyCat接受客户端连接并为之建立唯一绑定的SessionMyCat接受客户端的请求,计算路由根据请求和路由创建合适的handler,这里为SingleNodeHandler从PhysicalDBNode中获取后端连接尝试获取连接,连接够用?将请求发送给对应连接,处理完之后归还连接尝试异步创建新的连接...
阅读(7832) 评论(0)

[置顶] MyCat - 源代码篇(9)

数据库路由中间件MyCat - 源代码篇(9)3. 连接模块3.5 后端连接3.5.1 后端连接获取上一节我们讲了后端连接的基本建立和响应处理,那么这些后端连接是什么时候建立的呢? 首先,MyCat配置文件中,DataHost标签中有minIdle这个属性。代表在MyCat初始化时,会在这个DataHost上初始化维护多少个连接(这些连接可以理解为连接池)。每个前端Client连接会创建Sessi...
阅读(9950) 评论(17)

[置顶] Riak - 使用篇(1)

分布式高可用键值对数据库Riak - 使用篇(1)请先参考Riak - 安装运维篇(1)安装部署并启动Riak集群(3个Node)。 Riak默认有两种端口,一种是protobuf端口,还有一种是HTTP Restful端口。 以前的Riak client java API会支持两种端口。最新的Riak client Java API作了很多改造,比如说利用netty4作为网络通信框架,简化了A...
阅读(5771) 评论(1)

[置顶] Riak - 安装运维篇(1)

分布式高可用键值对数据库Riak - 安装运维篇(1)快速安装部署启动我的操作系统是Red Hat Enterprise Linux Server release 6.6 (Santiago),这也是我们目前生产上用的。 我直接在root下安装,先切换到root用户。 首先,安装下需要的软件,Riak官网给的不全:#su - root #yum install pam-devel gcc gcc...
阅读(5268) 评论(0)

[置顶] Riak - 背景篇(3)

分布式高可用键值对数据库Riak - 背景篇(3)Dynamo对于数据版本的处理数据版本问题不止存在于分布式系统,这里针对分布式数据库系统简单讨论下。先看一个简单的例子,用户x对key1做了一次写入操作,我们设值是数字3。然后用户y读取了key1,这个时候用户y知道的值是3。然后用户x对值做了一个+1操作,将新值写入,现在key1的值是4了。而用户y也做了一次+1操作,然后写入,因为用户y读到的值是...
阅读(5897) 评论(0)

[置顶] Riak - 背景篇(2)

Dynamo备份思想因为我们用的PC机器性能不一,质量参差不齐,可能每天都会有机器挂掉或者重启。我们需要保证在某个机器挂掉或者损坏时,保证工作的正常运行。 我们可能最先想到的就是,给每个节点机器加一台备用的节点。这样,在主节点宕机时,备节点就可以顶上去。但是仔细想一下,这个方案是让人不放心的。因为当一主一备中的某一台机器坏掉,另外一台就成了一个单点运行的节点。这个时候另外一个节点一旦发生错误,服务...
阅读(6767) 评论(0)

[置顶] Riak - 背景篇(1)

分布式高可用键值对数据库Riak - 背景篇(1)Riak简介典型的现代关系数据库在某些类型的应用程序中表现平平,难以满足如今的互联网应用程序的性能和可扩展性要求。因此,需要采用不同的方法。在过去几年中,一种新的数据存储类型变得非常流行,通常称为 NoSQL,因为它可以直接解决关系数据库的一些缺陷。Riak 就是这类数据存储类型中的一种。 Riak 并不是惟一的一种 NoSQL 数据存储。另外两种...
阅读(11781) 评论(1)

[置顶] Zookeeper - 介绍篇(1)

Paxos算法Paxos算法是Zookeeper实现的核心思路,但是Paxos算法理解比较抽象。这里先简述下我的理解: 首先,Paxos算法解决的问题是:每一个处于正常工作的服务端都执行一个相同的命令序列。 意思就是:在如下的分布式系统中,有多个Client和多个Server。 每个client都可以和每个server进行交互。假设每个Client此时各发一个请求,分别是O1,O2,O3,...
阅读(10787) 评论(0)

[置顶] Zookeeper - 介绍篇(3)

ZK会话ZK会话有四种状态:NOT_CONNECTED, CONNECTING, CONNECTED, CLOSED, 会话状态转换图为 Client初始化连接,状态转为CONNECTING(①) Client与Server成功建立连接,状态转为CONNECTED(②) Client丢失了与Server的连接或者没有接受到Server的响应,状态转为CONNECTING(③) Client连上...
阅读(4023) 评论(0)

[置顶] Zookeeper - 介绍篇(2)

ZK数据结构zk整体保存数据的结构类似于文件系统的树形结构。但是每个节点可以拥有一个名字,并作为一个文件夹包括多个其他节点,同时还可以保存数据。 需要注意: 空字符(\u0000)不能作为名字 \u0001 - \u0019 和\u007F - \u009F最好不要作为名字的一部分,因为他们表示的字符不好显示或者因为他们可以被转换成多种表现形式 \ud800 -uF8FFF, \uFFF0-u...
阅读(1521) 评论(0)

[置顶] Zookeeper - 部署篇

Zookeeper 安装与配置本文采用 Zookeeper-3.4.8 为基础介绍它的安装步骤以及配置信息,下载地址:Zookeeper-3.4.8。Zookeeper功能强大,但是安装却十分简单,下面重点以伪分布式模式来介绍 Zookeeper 的安装。伪分布式模式安装Zookeeper 安装模式包括:单机模式,伪分布式模式和完全的集群模式。单机模式最简单,本文将跳过单机模式安装(单机模式安装步骤...
阅读(1145) 评论(0)

[置顶] Zookeeper - 背景篇

Zookeeper以它的稳定性,高并发并且简单易用,目前在很多分布式系统中作为协调服务的中间件。Zookeeper官方文档很全面,目前,最新稳定版本为3.4.8: Zk 3.4.8 API文档 Zk 3.4.8 开发文档 Zk 3.4.8 编程实例 网上关于Zookeeper的文档也非常多而且繁杂,但是,在各方面深入到骨髓的文章不多,博主手机了网上很多关于zk的资料,在这里整理总结并输出。最后,利用...
阅读(6410) 评论(0)

[置顶] MyCat - 源代码篇(8)

数据库路由中间件MyCat - 源代码篇(8)3. 连接模块3.5 后端连接对于后端连接,我们只关心MySQL的。 从后端连接工厂开始MySQLConnectionFactory.java: public MySQLConnection make(MySQLDataSource pool, ResponseHandler handler, String schema) t...
阅读(2581) 评论(0)

[置顶] MyCat - 测试篇

数据库路由中间件MyCat - 测试篇测试背景为了检测MyCat性能表现以及架构扩展性,设计测试。首先需要编写压力测试代码,程序基于Jmeter,并且封装了JDBC,模拟涅槃项目实际应用的连接方式。测试程序生成基于当前系统时间的随机数,并且保证这个随机数一秒内重复概率为百万分之一。 程序请求必须保证每个分片的请求量是一样的,同时,必须保证这个请求是NIO方式发送的(BIO会导致在某个分片故障时,压...
阅读(4446) 评论(2)

[置顶] MyCat - 生产进阶篇(1)

数据库路由中间件MyCat - 生产进阶篇(1)首先,利用开源产品,我们的第一个首要目标是–稳定! 1. MyCat求稳首要原则:还是用之前的例子: 1.1 事务:首先,我们可以这么理解,MyCat只应该做两件事:请求转发与结果合并。源代码篇讲过MyCat的分布式事务的弱XA原理(其实根本不算是分布式事务),这是不可靠的,我们要想稳定的高可信的利用MyCat,就要避免一切分布式事务。 从现在开...
阅读(3572) 评论(0)

[置顶] MyCat - 源代码篇(7)

数据库路由中间件MyCat - 源代码篇(7)3. 连接模块3.4 FrontendConnection前端连接 构造方法:public FrontendConnection(NetworkChannel channel) throws IOException { super(channel); InetSocketAddress localAddr = (Inet...
阅读(3627) 评论(0)

[置顶] MyCat - 使用篇(6)

数据库路由中间件MyCat - 使用篇(5)配置MyCat-eye接下来在开始使用MyCat之前,我们先把监控平台部署好。下载MyCat-eye项目,mvn打包。之后得到类似于Mycat-web-1.0-SNAPSHOT-20160215151602-linux.tar.gz这个文件,部署到和zookeeper同一台服务器上。 如果要部署到其他机器,需要修改mycat-web\mycat-web\...
阅读(6417) 评论(9)

[置顶] MyCat - 源代码篇(6)

MyCat - 源代码篇(6)3. 连接模块3.3 AbstractConnection:3.3.2 NIOHandlerNIOHandler实际上就是对于业务处理方法的封装,对于不同的连接有不同的处理方法,也就是不同的NIOHandlerpublic interface NIOHandler { void handle(byte[] data); }它的实现以及子类会在之后的对应的处理模块...
阅读(2314) 评论(2)

[置顶] MyCat - 源代码篇(5)

数据库路由中间件MyCat - 源代码篇(5)3. 连接模块如之前所述,MyCat的连接分为前端和后端,下面是连接基本相关类图: 3.1 ClosableConnection:public interface ClosableConnection { String getCharset(); //关闭连接 void close(String reason); boo...
阅读(2147) 评论(0)

[置顶] MyCat - 使用篇(5)

数据库路由中间件MyCat - 使用篇(5)配置MyCat4. 配置schema.xmlschema.xml里面管理着MyCat的逻辑库、表,每张表使用的分片规则、分布在哪个DataNode以及DataSource上。 之前的例子: ...
阅读(3602) 评论(2)

[置顶] MyCat - 源代码篇(4)

数据库路由中间件MyCat - 源代码篇(4)2. 前端连接建立与认证Created with Raphaël 2.1.0MySql连接建立以及认证过程clientclientMySqlMySql1.TCP连接请求2.接受TCP连接3.TCP连接建立4.握手包HandshakePacket5.认证包AuthPacket6.如果验证成功,则返回OkPacket7.默认会发送查询版本信息的包8.返回结果...
阅读(1954) 评论(0)

[置顶] MyCat - 源代码篇(3)

数据库路由中间件MyCat - 源代码篇(3)2. 前端连接建立与认证Created with Raphaël 2.1.0MySql连接建立以及认证过程clientclientMySqlMySql1.TCP连接请求2.接受TCP连接3.TCP连接建立4.握手包HandshakePacket5.认证包AuthPacket6.如果验证成功,则返回OkPacket7.默认会发送查询版本信息的包8.返回结果...
阅读(6409) 评论(0)

[置顶] MyCat - 源代码篇(2)

数据库路由中间件MyCat - 源代码篇(2)2. 前端通信模块Created with Raphaël 2.1.0MySql连接建立以及认证过程clientclientMySqlMySql1.TCP连接请求2.接受TCP连接3.TCP连接建立4.握手包HandshakePacket5.认证包AuthPacket6.如果验证成功,则返回OkPacket7.默认会发送查询版本信息的包8.返回结果包2....
阅读(6301) 评论(7)

[置顶] MyCat - 使用篇(4)

数据库路由中间件MyCat - 使用篇(4)配置MyCat3. 配置conf/rule.xml1.4.1中的规则配置比较笨,1.5中优化了一些,将tableRule标签和function标签合并了,并且支持Velocity模板语言,更加灵活。这里先介绍1.4.1的: <!DOCTYPE mycat:rule SYSTEM "...
阅读(7567) 评论(0)

[置顶] MyCat - 使用篇(3)

数据库路由中间件MyCat - 使用篇(3)全局序列号数据切分后,原有的关系数据库中的主键约束在分布式条件下将无法使用,因此需要引入外部机制保证数据唯一性标识,这种保证全局性的数据唯一标识的机制就是全局序列号(sequence)。1. 本地文件方式classpath下有一个sequence_conf.properties文件:GLOBAL_SEQ.HISIDS= GLOBAL_SEQ.MINID=1...
阅读(12093) 评论(6)

[置顶] MyCat - 源代码篇(1)

数据库路由中间件MyCat - 源代码篇(1)进入了源代码篇,将按照框架->模块->细节的方式进行。模块的顺序按照从前端接收请求到后端发送给数据库,之后从数据库返回结果到前端的顺序进行。 MyCat整体框架图: 1. 整体通信与业务框架:前端与后端通信框架都为NIO/AIO,因为目前生产上用的linux发行版内核都没有真正实现网络上的AIO,如果应用用AIO的话可能比NIO还要慢一些,所以,我们...
阅读(8175) 评论(0)

[置顶] MyCat - 使用篇(2)

数据库路由中间件MyCat - 使用篇(2)基本概念3. 分片3.1 分片节点(dataNode)表被水平切分后,每个分片表所在的数据库就是一个分片节点。一个分片节点对应一个数据库(mysql数据库)3.2 节点主机(dataHost)分片节点究竟被放在那个主机上。对应mysql里的mysql实例:一台主机可以部署多个mysql实例,一个mysql实例可以有多个数据库。为了规避单节点主机并发数限制,...
阅读(6892) 评论(7)

[置顶] MyCat - 使用篇(1)

数据库路由中间件MyCat - 使用篇(1)基本概念直接介绍概念太枯燥了,还是拿个和背景篇相似的例子介绍 业务场景:客户完成下单,快递员接受并更新运单状态,客户可以随时查看运单状态的任务。一票快递可能有多个子母件。同时,我们需要标记每个运单的状态,运单状态的解释和含义保存在运单状态字典表中。 因此,我们需要建立如下表: 我们现在按照业务将数据库垂直拆分成运单库(单表2000tps,6000...
阅读(4956) 评论(6)

[置顶] MyCat - 背景篇(2)

数据库路由中间件MyCat - 背景篇(2)MyCat的前世今生如前文所说,Amoeba、Cobar、MyCat等属于同宗一脉。若Amoeba能继续下去,Cobar就不会出来;若Cobar那批人不是都走光了的话,MyCAT也不会再另起炉灶。Cobar之后,有很多类似中间件仿照其架构以及思路,针对特定的业务场景,设计出了不同的中间件。MyCat算是其中业务场景比较全面,使用配置比较简便,性能优秀,而且...
阅读(6789) 评论(2)

[置顶] MyCat - 背景篇(1)

数据库分库分表(路由)中间件MyCat - 背景篇(1)SQL与NoSQL目前,对于互联网海量数据的存储以及处理,按使用场景,分为OLTP(联机事务处理,比如即时交易,强调快速响应与处理)与OLAP(联机分析处理,比如BI,强调多维数据分析)。对于这些数据的存储,主要有两种解决方案,即基于SQL的关系型数据库,和NoSQL的非关系型数据库。 非关系型数据库在某些特定场景下有奇效,比如键值存储(re...
阅读(7675) 评论(0)

【转】计数系统架构实践一次搞定

一、需求缘起很多业务都有“计数”需求,以微博为例:微博首页的个人中心部分,有三个重要的计数:关注了多少人的计数粉丝的计数发布博文的计数微博首页的博文消息主体部分,也有有很多计数,分别是一条博文的:转发计数评论计数点赞计数甚至是浏览计数 在业务复杂,计数扩展频繁,数据量大,并发量大的情况下,计数系统的架构演进与实践,是本文将要讨论的问题。 二、业务分析与计数初步实现典型的互联网架构,常常分为这么几层...
阅读(124) 评论(0)

Fastxml 简单常用注解学习笔记

Fastxml 简单常用注解学习笔记@JsonNaming@JsonIgnoreProperties@JsonIgnore@JsonFormat@JsonDeserialize@JsonSerialize@JsonProperty如下User类package com.usoft; import com.fasterxml.jackson.annotation.JsonFormat; import...
阅读(222) 评论(0)

关于2016博客之星评选的几点声明

15年毕业,之后开始工作。在16年初的时候,开始在CSDN上面写博客,主要因为喜欢MARKDOWN编辑器。写博客记录下自己的编程想法,之后慢慢的访问量变高了(主要因为MyCat相关的文章),获得了这次参与竞选2016博客之星的机会。我感觉这个活动很不错,就转发到朋友圈帮我拉了下票。各位亲朋好友还有同事们都挺支持我的,尤其是我的家人还有有的朋友还帮我转发帮我拉票(在这里再次感谢他们的热心)。结果我也没...
阅读(3208) 评论(16)

Go语言探险思考笔记(1)

最近接触对象存储,国际上鼎鼎有名的Amazon S3还有Google Cloud Service在国内由于防火墙还有机房过远的问题,并不能投入生产使用。国内有名的对象存储,大家众所周知的七牛云,后台就是Go语言实现的。对于第一个敢吃螃蟹的人,我一直很佩服。于是抱着憧憬的心态走进Go语言的大门。 首先,接触一门语言,就从最啰嗦但是最不能缺少的基础语法和顺序变成开始。对于接触这些,我一般是从搭建好自己...
阅读(1729) 评论(1)
114条 共12页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:363138次
    • 积分:4776
    • 等级:
    • 排名:第5654名
    • 原创:91篇
    • 转载:18篇
    • 译文:5篇
    • 评论:133条
    最新评论