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

java对象转成byte数组,在使用netty进行通信协议传输的场景中是非常常见的。比如,协议有一些定好的协议头、classid,messageid等等信息,还有一个关键的内容是payload。不同的协议内容都会放到payload中,而这个payload往往就是一个byte数组。 那么,如何方便...

2018-06-16 17:51:02

阅读数 14343

评论数 1

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

1 研究背景 分布式缓存是各大公司业务系统必不可少的组件,目前市面上开源的分布式缓存解决方案主要有redis cluster和codis,在进行了一系列调研之后,redis cluster现阶段的模块耦合使得我最后放弃了这一方案,转向了codis。在使用过程中,发现了一些codis的不足之处。因...

2018-04-25 11:44:43

阅读数 791

评论数 1

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

第一章 分布式系统介绍分布式系统的定义:组件分布在网络计算机上,组件间仅仅通过消息传递来通信并协调行动。分布式系统的意义: 升级单机处理能力的性价比越来越低 单机处理能力存在瓶颈 处于稳定性和可用性的考虑 摩尔定律:当价格不变时,每隔18个月,集成电路上可容纳的晶体管数目会增加一倍,性...

2018-01-09 12:35:00

阅读数 364

评论数 0

详解tomcat的连接数与线程池

出处: http://www.cnblogs.com/kismetv/p/7806063.html前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章 详解Tomcat配置文件server.xm...

2017-11-14 16:57:18

阅读数 463

评论数 0

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

出处: https://my.oschina.net/lujianing/blog/787745对于消息队列任务的监听,我们一般使用Java写一个独立的程序,在Linux服务器上运行。当订阅者程序启动后,会通过消息队列客户端接收消息,放入线程池中并发的处理。那么问题来了,当我们修改程序后,需要重...

2017-11-09 12:23:53

阅读数 511

评论数 0

如何优雅地关闭Go channel

出处: http://www.jianshu.com/p/d24dfbb33781 本文译自:How To Close Channels in Golang Elegantly。几天前,我写了一篇文章来说明golang中channel的使用规范。在reddit和HN,那篇文章...

2017-11-08 14:54:14

阅读数 374

评论数 0

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

负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍    LB集群的架构和原理很简...

2017-10-17 11:03:11

阅读数 415

评论数 0

java实现Multipart/form-data

maven新的maven和先前的版本的API不同<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId...

2017-10-13 15:16:45

阅读数 5786

评论数 0

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 18:39:23

阅读数 333

评论数 0

es & kibana & filebeat 部署与使用

1 概述考虑到logstash性能比较差,而且我们并不需要对日志进行解析,主要进行的是搜索日志关键字,因此我们选择跳过logstash,直接从filebeat将日志读取到es2 es部署为了保证高可用,es应该部署三台以上,下面以部署三台距离下载es安装包,5.X的版本都是要求 linux ker...

2017-10-11 15:10:12

阅读数 1530

评论数 0

Go语言 channel详解

出处: http://hustcat.github.io/channel/“网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对...

2017-09-30 18:26:20

阅读数 494

评论数 0

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

出处: https://studygolang.com/articles/5224上周末参加Go技术聚会,京东的美女工程师讲到一个select-case和time.Ticker的使用注意事项(真实的应用场景是:在测试收包的顺序的时候,加了个tick就发现丢包了),觉得很有意思,记录一下。pack...

2017-09-30 14:25:54

阅读数 642

评论数 1

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

Topom.ha.monitor本身相当于一个上帝视角的sentinel。它本身并不是一个实际的sentinel服务器,但是它负责收集各个sentinel的监控信息,并对集群作出反馈。这一讲我们就来看看Topom.ha.monitor。下面参数中的servers []string就是添加的sent...

2017-09-30 11:44:52

阅读数 681

评论数 0

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

sentinel是redis集群高可用的保障。怎么搭建sentinel,网上有很多教程,我们这里就不重复了。 添加sentinel的过程很简单。新建sentinel,调用sentinel flushconfig强制 sentinel 重写所有配置信息到配置文件,然后更新ctx.sentinel和...

2017-09-27 17:39:50

阅读数 1517

评论数 0

Go语言并发模型:使用 context

出处: https://segmentfault.com/a/11900000067442131 简介在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理...

2017-09-25 16:08:01

阅读数 447

评论数 0

navicat无法连接阿里云mysql

阿里云服务器上布了一个mysql,然后本地想要通过navicat连接,一直连接不上。后来索性本地telent阿里云服务器的3306端口,发现连不通,于是想到3306端口并没有对外开放。一开始以为是linux服务器的防火墙,不过查看了服务器的防火墙等等也都没有开。后来才知道,阿里云的服务器默认端口是...

2017-09-04 11:29:37

阅读数 15264

评论数 8

Codis源码解析——Jodis

我们在java项目里面连接已经搭建好的Codis集群时,需要用到其java客户端——Jodis。这一篇我们就来看看Jodis是如何操作对Codis集群进行操作的。 import io.codis.jodis.JedisResourcePool; import io.codis.jodis.R...

2017-09-01 18:17:03

阅读数 2614

评论数 2

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

出处: http://blog.csdn.net/u011101881/article/details/375693151.tomcat原来的默认根目录是http://localhost:8080,如果想修改访问的根目录,可以这样: 找到tomcat的server.xml(在conf目录下),...

2017-09-01 11:37:33

阅读数 466

评论数 0

Java程序员修炼之道 之 Log

出处: http://www.blogjava.net/justfly/archive/2014/08/13/416925.html1. 一个最基本的例子使用Logging框架写Log基本上就三个步骤引入loggerg类和logger工厂类声明logger记录日志下面看一个例子//1. 引入sl...

2017-08-30 14:32:48

阅读数 405

评论数 0

Kafka+Spark Streaming+Redis实时计算整合实践

出处: http://shiyanjun.cn/archives/1097.html基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming、Spark SQL、MLlib、GraphX,这些内建库都提供了高级抽象,可...

2017-08-28 10:44:10

阅读数 505

评论数 0

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