antony9118
码龄9年
关注
提问 私信
  • 博客:892,201
    社区:189
    892,390
    总访问量
  • 62
    原创
  • 2,385,168
    排名
  • 275
    粉丝
  • 0
    铁粉

个人简介:蚂蚁金服内推,简历发送至taiyi.wj@antfin.com

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2016-05-10
博客简介:

橙子wj的博客

查看详细资料
个人成就
  • 获得468次点赞
  • 内容获得171次评论
  • 获得761次收藏
  • 代码片获得403次分享
创作历程
  • 3篇
    2018年
  • 78篇
    2017年
  • 36篇
    2016年
成就勋章
TA的专栏
  • Codis源码解析
    17篇
  • 并发
    20篇
  • JVM
    8篇
  • IDEA
    6篇
  • 框架
    8篇
  • 其它
    12篇
  • code
    3篇
  • js
    6篇
  • 网络
    18篇
  • 分布式
    9篇
  • linux
    3篇
  • Go
    6篇
  • codis
    16篇
  • spark
    1篇
  • 数据库
    2篇
  • rocketmq
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    架构
  • 搜索
    elasticsearch
  • 服务器
    linux
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

java对象转成byte数组的三种方法

java对象转成byte数组,在使用netty进行通信协议传输的场景中是非常常见的。比如,协议有一些定好的协议头、classid,messageid等等信息,还有一个关键的内容是payload。不同的协议内容都会放到payload中,而这个payload往往就是一个byte数组。那么,如何方便的将一个java对象构造成一个byte数组呢?1 bytebuf填充我们以下面这个对象举例...
原创
发布博客 2018.06.16 ·
76917 阅读 ·
12 点赞 ·
5 评论 ·
47 收藏

一站式分布式缓存解决方案codisX

1 研究背景分布式缓存是各大公司业务系统必不可少的组件,目前市面上开源的分布式缓存解决方案主要有redis cluster和codis,在进行了一系列调研之后,redis cluster现阶段的模块耦合使得我最后放弃了这一方案,转向了codis。在使用过程中,发现了一些codis的不足之处。因此笔者在官方codis的基础上(基于最新版本3.2.2),修改了源码,做出了codisX。先说一下...
原创
发布博客 2018.04.25 ·
2230 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

大型网站系统与Java中间件实践

第一章 分布式系统介绍分布式系统的定义:组件分布在网络计算机上,组件间仅仅通过消息传递来通信并协调行动。分布式系统的意义: 升级单机处理能力的性价比越来越低 单机处理能力存在瓶颈 处于稳定性和可用性的考虑摩尔定律:当价格不变时,每隔18个月,集成电路上可容纳的晶体管数目会增加一倍,性能也将提升一倍。线程与进程的执行模式冯诺依曼结构:输入设备、输入设备、运算器、控制器、存储器。基于共享容
转载
发布博客 2018.01.09 ·
968 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

详解tomcat的连接数与线程池

出处:http://www.cnblogs.com/kismetv/p/7806063.html前言在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于
转载
发布博客 2017.11.14 ·
1125 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Java消息队列任务的平滑关闭

出处: https://my.oschina.net/lujianing/blog/787745对于消息队列任务的监听,我们一般使用Java写一个独立的程序,在Linux服务器上运行。当订阅者程序启动后,会通过消息队列客户端接收消息,放入线程池中并发的处理。那么问题来了,当我们修改程序后,需要重新启动时,如何保证消息都能够被处理呢?一些开源的消息队列中间件,会提供ACK机制(消息确认机制),当订阅
转载
发布博客 2017.11.09 ·
1297 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

如何优雅地关闭Go channel

出处: http://www.jianshu.com/p/d24dfbb33781 本文译自:How To Close Channels in Golang Elegantly。几天前,我写了一篇文章来说明golang中channel的使用规范。在reddit和HN,那篇文章收到了很多赞同,但是我也收到了下面几个关于Go channel设计和规范的批评:在不能更改channel
转载
发布博客 2017.11.08 ·
1196 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用LVS实现负载均衡原理及安装配置详解

负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍    LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的
转载
发布博客 2017.10.17 ·
614 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java实现Multipart/form-data

maven新的maven和先前的版本的API不同<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.3</version></dependency>上传import java.io.File;import java.
原创
发布博客 2017.10.13 ·
21696 阅读 ·
7 点赞 ·
0 评论 ·
14 收藏

Java 里如何实现线程间通信?

出处: http://wingjay.com/2017/04/09/Java%E9%87%8C%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BA%BF%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1%EF%BC%9F/正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间
转载
发布博客 2017.10.11 ·
624 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

es & kibana & filebeat 部署与使用

1 概述考虑到logstash性能比较差,而且我们并不需要对日志进行解析,主要进行的是搜索日志关键字,因此我们选择跳过logstash,直接从filebeat将日志读取到es2 es部署为了保证高可用,es应该部署三台以上,下面以部署三台距离下载es安装包,5.X的版本都是要求 linux kernel 大于7的,所以如果本地 kernel 是6系列的,最好还是下载之前的版本。es 5.X之前的最新
原创
发布博客 2017.10.11 ·
4439 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Go语言 channel详解

出处:http://hustcat.github.io/channel/“网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对并发支持使得它有更好的性能。Goroutine和channel是Go在“并发”方面两个核心feature
转载
发布博客 2017.09.30 ·
1484 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

go里面select-case和time.Ticker的使用注意事项

出处: https://studygolang.com/articles/5224上周末参加Go技术聚会,京东的美女工程师讲到一个select-case和time.Ticker的使用注意事项(真实的应用场景是:在测试收包的顺序的时候,加了个tick就发现丢包了),觉得很有意思,记录一下。package mainimport ( "fmt" "runtime" "time"
转载
发布博客 2017.09.30 ·
1811 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Codis源码解析——sentinel的重同步(2)

Topom.ha.monitor本身相当于一个上帝视角的sentinel。它本身并不是一个实际的sentinel服务器,但是它负责收集各个sentinel的监控信息,并对集群作出反馈。这一讲我们就来看看Topom.ha.monitor。下面参数中的servers []string就是添加的sentinel的ip:port所组成的字符串数组,有多少个sentinel,数组的长度就有多少func (s
原创
发布博客 2017.09.30 ·
1505 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Codis源码解析——sentinel的重同步(1)

sentinel是redis集群高可用的保障。怎么搭建sentinel,网上有很多教程,我们这里就不重复了。 添加sentinel的过程很简单。新建sentinel,调用sentinel flushconfig强制 sentinel 重写所有配置信息到配置文件,然后更新ctx.sentinel和zk上存储的信息。但是刚刚添加sentinel的OutOfSync属性默认为true,也就是说,此时与集
原创
发布博客 2017.09.27 ·
2737 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言并发模型:使用 context

出处: https://segmentfault.com/a/11900000067442131 简介在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的
转载
发布博客 2017.09.25 ·
773 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

navicat无法连接阿里云mysql

阿里云服务器上布了一个mysql,然后本地想要通过navicat连接,一直连接不上。后来索性本地telent阿里云服务器的3306端口,发现连不通,于是想到3306端口并没有对外开放。一开始以为是linux服务器的防火墙,不过查看了服务器的防火墙等等也都没有开。后来才知道,阿里云的服务器默认端口是不对外开放的,如果想要供外部访问,需要在安全组中手动添加规则。。。。这是个大坑啊首先创建安全组,然后再安
原创
发布博客 2017.09.04 ·
25968 阅读 ·
9 点赞 ·
4 评论 ·
29 收藏

Codis源码解析——Jodis

我们在java项目里面连接已经搭建好的Codis集群时,需要用到其java客户端——Jodis。这一篇我们就来看看Jodis是如何操作对Codis集群进行操作的。import io.codis.jodis.JedisResourcePool;import io.codis.jodis.RoundRobinJedisPool;import redis.clients.jedis.Jedi...
原创
发布博客 2017.09.01 ·
6560 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

maven-3.5.0

发布资源 2017.09.01 ·
gz

Tomcat中更改网站根目录和默认页的配置方法

出处: http://blog.csdn.net/u011101881/article/details/375693151.tomcat原来的默认根目录是http://localhost:8080,如果想修改访问的根目录,可以这样: 找到tomcat的server.xml(在conf目录下),找到:<Host name="localhost" appBase="webapps" u
转载
发布博客 2017.09.01 ·
1083 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java程序员修炼之道 之 Log

出处: http://www.blogjava.net/justfly/archive/2014/08/13/416925.html1. 一个最基本的例子使用Logging框架写Log基本上就三个步骤引入loggerg类和logger工厂类声明logger记录日志下面看一个例子//1. 引入slf4j接口的Logger和LoggerFactoryimport org.slf4j.Logger;im
转载
发布博客 2017.08.30 ·
798 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多