数据库分库分表方案

在最初,应用的数据量比较少,没有任何压力,一般会将所有的数据放在一个库中。但是随着业务的增长,数据量急剧增长,DB压力增大,似乎随时都会挂掉。

此时,优化DB的使用已经是势在必行,有几个方案:
<1> 优化对DB的使用,读写分离(肯定一开始就做了……)、索引、使用合理的sql等等。一些简单的优化可以先做,复杂的优化如果时间允许能先做是最好的,但如果是一直被业务赶着走,抽不出时间做,只好先选择其它的措施;
<2> 升级机器配置,加CPU、加内存,换SSD。简单粗暴,无论怎么样,机器比人便宜,如果没时间做业务上的优化,先走这条路,直到最后升级机器已经没有效果。[......]

Read more

Posted in 数据库 | Leave a comment

Netty使用

1. 简介
Netty是一个NIO框架,能帮助开发者方便快捷的开发网络应用。先上一个官方的整体框架图感受下(虽然并没啥用):
01
与Java NIO相比(也比较官方):
Java NIO
<1> NIO的类库和API繁杂,使用麻烦;
<2> 需要具备其他的技能做铺垫,如Java多线程编程,NIO编程涉及到Reactor模式,必须对多线程和网路编程非常熟悉,才能编写出高质量的NIO程序;
<3> 可靠性,如断连重连,网络闪断、半包读取、失败缓存、网络拥塞、异常码流等等,完成功能编写可能很容易,但可靠性补齐则难度较大;

[......]

Read more

Posted in 日常文章 | Tagged | Leave a comment

投资组合跟踪

基于简单、易执行的原则,结合指数的估值、分红情况合理配置,并跟踪实际的收益情况。

  • 沪深300etf联接
  • 中证全指消费
  • 恒生etf联接
  • 中小盘混合(综合考虑A股的情况,小盘用主动型基金)
  • 美元计价债券
  • 标普500联接

 

1. 2017-02

暂时按1:1配置。

 

 

 

Posted in 理财周边 | Leave a comment

A股市场指数估值情况(每月更新)

1. 2017-02指数估值(02-03)

0203

2. 2017-03指数估值

0303

 

 

Posted in 理财周边 | Leave a comment

JVM CMS垃圾回收器核心原理(HotSpot)

1. CMS介绍

CMS is a type of GC and is divided into phases。

uyXg3

不像其它的垃圾回收器,CMS不会压缩堆空间。CMS不会移动对象以保证空闲空间的连续性,相反,CMS保存所有空闲内存片段的列表。通过这样的方式,CMS可以避免为存活对象重新分配位置引起的开销(为对象重新分配位置是一个高开销的操作,并且会STW),不过随着堆空间的减少容易引起碎片化。为了减少碎片化的风险,CMS会对对象的size做统计分析,并保存不同size的对象的空闲列表。

 

2. CMS暂停时间

根据前面的分析,CMS有两个phas[......]

Read more

Posted in JVM | Leave a comment

2016上证A股主要指数数据汇总

经历了2015的牛熊转换,2016的A股可以说是熊冠全球,全年下跌,年初的熔断大戏更是精彩。

 

不过相对来说上证备受呵护,因此相对中小板来说,情况要好些。

 

可以来看看2016上证主要指数的汇总情况。

 

先看2016年度的走势图:

1

2

都是下跌,上证50稍好些,是大蓝筹(大烂臭)的春天要来了吗?? 还是只是GJD在耍猴?

 

看看年化收益率与波动率:

3

如果单看2016年,确实大盘股收益好些,但拉长时间看,还是小盘股的收益率更好。看来还是A股的特点??

 [......]

Read more

Posted in 理财周边 | Leave a comment

Netty5值得关注的变化

Netty5版本不像Netty3到Netty4的变化那么巨大。

核心变化

<1> 简化了handler类型分级结构
合并ChannelInboundHandler与ChannelOutboundHandler到ChannelHandler。ChannelHandler现在具有inbound与outbound的方法。
废弃了ChannelInboundHandlerAdapter,ChannelOutboundHandlerAdapter和ChannelDuplexHandlerAdapter,新增ChannelHandlerAdapter。

&[......]

Read more

Posted in 译文 | Leave a comment

Redis pub/sub模式

背景

Redis的pub/sub是一个比较尴尬的存在。无论是作为消息中间件抑或是类似zookeeper的通知机制都有明显的缺陷。不然如果应用较小且对可用性、扩展性等要求不高也可以考虑,通过自己“多做一些”的方式来满足自己的要求。
Redis支持两种类型的sub模式,一种是针对具体channel的subscribe;另一种是针对某个pattern的pSubscribe,可同时subscribe匹配的所有channel。

机制

<1> 当客户端subscribe订阅某个或某些频道是,服务器会将client与被订阅的channel在pubsub[......]

Read more

Posted in 日常文章 | Tagged | Leave a comment

GC停顿问题分析

1. 由于promotion failed引起应用响应时间上升,超时

83

首先,从日志上来看,在Allocation failure之后,JVM同时进行了CMS,这似乎跟对CMS的理解不一致。

回归一下CMS的垃圾回收过程,大概分下面几个阶段:

  • initial mark
  • concurrent marking
  • remark
  • concurrent sweep
  • resetting

其中,concurrent的是跟应用进程同步进行的,也即stop-the-world的是initial mark与remark过程,来看一个正常一点的CMS流程,如:[......]

Read more

Posted in JVM | Tagged , | Leave a comment

Tomcat 8.5.x版本升级变化

1. 其中一些重要变化(对HTTP2,SSL支持的改动较多)

<1> 不再提供对HTTP BIO,AJP BIO的支持;
<2> 重构HTTP upgrade与AJP实现,减少重复;
<3> 支持HPACK header encoding与decoding;
<4> 增加JSSE的SSL engine,同时支持ALPN;
<5> 支持HTTP/2 server push;
<6> 不再支持Comet;
<7> 对不合法的HTTP method名字直接拒绝并返回400;
<8> AJP[......]

Read more

Posted in 日常文章 | Tagged | Leave a comment
« Older