2016技术流水账

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yeyincai/article/details/53957948

2016年度总结

我们念过往畏将来,2016年是充实的一年,也是超越的一年

过往技术

1.ELK
日志总让我们头疼,ELK为我们提供一套完整的日志收集监控方案,具体的工作流程就是logstash agent 监控并过滤日志,将过滤后的日志内容发给redis(这里的redis只处理队列不做存储),logstash index将日志收集在一起交给全文搜索服务ElasticSearch ,通过Kibana来结合自定义搜索进行页面展示。

2.Redis sentinel
redis每个互联网公司都会用,但redis部署方案有多种,单机、集群、sentinel,经过大量分析研究,选用sentinel模式最适合,整改了线上的部署方案,还封装了一套简单易用的java redis客户端.

3.GRPC
RPC是每个公司长大的必经之路,路上少不了坑,GRPC是GOOGLE基于HTTP/2协议开发,IDL采用的是protobuf,有高效的性能,单测试8万tps,还支持android & ios。包含了加解密、负载均衡、流式传输等强大功能。

4.Spring Boot
几句简单的代码就可以发布一个web服务,恰逢MicroService架构又火了起来,和Spring Boot也非常搭,自然深受大家喜爱,后继也规范了其使用方式,还用了maven 的assembly打包插件,嵌入服务脚本,发布服务也变得相当简单。

5.Consul
众多服务的管理工具,java 开发的zookeeper采用传统zabbix协议,暴露出较多问题,go开发的Consul采用raft协议,快速高效,封装了对服务注册和发现API,大大简化了分布式服务应用开发,还提供了一套简单的管理页面。

6.ETCD
半路遇见的惊喜,ETCD升级到3.0,客户端采用GRPC,与我们采用的GRPC一拍即合,最后放弃了Consul,况且Consul的服务健康检查采用的是HTTP 轮询,偶尔会导致服务莫名奇妙丢失,ETCD采用的是续约模式,因其通信采用了GRPC对于网络异常做了处理,服务状态会更加可靠,不会产生大量的TCP连接。

7.Netty
目前网络编程最好的框架没有之一,良好的架构设计,使得它的扩展性非常强,只要了解简单的API就可以开发业务,封装了Reactor NIO实现,拥有高效的性能,延时性,性能要求较高的项目或者框架都可以优先考虑它。

8.测试
测试不只是说说而已,我们需要做的更多,它已经不是技术,是一种工作方式,面向开发的测试包括:
- 单元测试(提早发现bug,代价最小,常用的框架有JUnit、TestNG、AssertJ、Mockito)
- 功能测试(需要把整体环境跑起来,验证功能完整性)
- 性能测试(通常又称为并发测试,检查代码并发情况问题,统计系统吞吐量,常用的工具JMeter、JMH)
- 稳定性测试(测试系统的健壮性,包括GC回收是否正常、JVM内存是否溢出或泄漏、线程死锁)

猜你喜欢

转载自blog.csdn.net/yeyincai/article/details/53957948