自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

温故而知新

Nothing is more terrible than ignorance in action

原创 线程池的监控与优化

多线程池是我们最常用的并行编程工具,多线程是性能优化在多核处理器时代是最常用的手段。而线程池是处理并发请求和任务的常用方法,使用线程池可以减少在创建和销毁线程上所花的时间以及系统资源的开销,解决系统资源利用不足的问题,创建一个线程池来并发的任务看起来非常简单,其实线程池的参数是很有讲究的。 以 J...

2020-03-27 22:31:05

阅读数 3

评论数 0

原创 内存溢出不可怕,手足无措才尴尬

内存溢出错误简称OOM,也就是 Out Of Memory Error , 是Java中常见也是最严重的错误之一. C及 C++程序最烦人的内存泄漏和溢出错误,在Java程序中由于垃圾回收似乎已经不存在了,其实不然,它一直都在。 前一阵子,产品线就出现了一个内存溢出的问题,结合实例,总结回顾一下此...

2020-01-27 15:39:24

阅读数 8

评论数 0

原创 MetricBeat 快速上手

MetricBeat wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.4.1-linux-x86_64.tar.gz tar xvfz metricbeat-7.4.1-linux-x86_64.t...

2019-10-28 22:25:01

阅读数 24

评论数 0

原创 微服务之性能测试

性能测试怎么做? 什么性能测试工具最称手?仁者见仁,智者见智。 性能测试的目的是为了充分了解系统及服务 所能承受的最大容量是多少, 有无性能瓶颈? 如果有性能瓶颈,瓶颈在哪里? 最重要的有三点: 1)响应时间 2)吞吐量 3)成功率 1. 协议层面的考量 以最常用的 HTTP 协议, 我们要...

2019-10-28 21:37:13

阅读数 87

评论数 0

原创 Ansible 快速上手

三部曲 1. 安装 先安装 python3, 然后通过 pip 来安装 sudo easy_install pip sudo pip install paramiko PyYAML jinja2 sudo pip install ansible 或者用系统自带的包管理工具来安装 centos: ...

2019-10-26 23:39:39

阅读数 11

评论数 0

原创 微服务协议之RTP

为满多媒体应用传输实时数据的需要, IETF RFC 3550 定义了实时传输协议RTP: A Transport Protocol for Real-Time Applications 即为实时应用程序所定义的传输协议, 它为交互式音频和视频聊天和会议应用提供端到端的传输服务. 解决的问题 让我...

2019-08-18 11:27:31

阅读数 11

评论数 0

原创 JWT

JWT JWT: Json Web Token JWS Json Web Signature JWE: Json Web Encryption JWT是一种在双方之间传输的紧凑的,URL安全的令牌表示方式 JWT 表示为编码的 JSON 对象, 可用于 JWS 的的负载, 或者 JWE 的明文 签...

2019-06-16 15:21:04

阅读数 5

评论数 0

原创 机器学习数据集之泰坦尼克

泰坦尼克号乘客数据集和鸢尾花数据集一样, 是机器学习中最常用的样例数据集之一 下载数据集 登录 https://www.kaggle.com , 在帐户页面中 https://www.kaggle.com/walterfan/account 页面上选择 "Create API Token...

2019-06-01 08:09:52

阅读数 11

评论数 0

原创 微服务之断流

我们每个人应该都对保险丝很熟悉, 熔断器也是类似的设备, 一旦电流过载,电压异常,保险丝熔断, 电路就会自动断开, 从而保护电器和设备。 受此启发, 熔断器模式在微服务的设计中也大行其道。 微服务在分布式系统中, 多个微服务之间是存在诸多依赖关系, 当其中一个服务出现故障, 很可能会...

2019-05-28 21:33:14

阅读数 14

评论数 0

原创 微服务之限流

回想我们在银行和政府机关去办事时, 都会有一个排队机, 先取一个号, 然后等待叫号, 办事窗口多, 号就叫得快, 办事窗口少, 号就叫得慢, 排队机是一个了不起的发明, 这里有许多值得我们在编程时借鉴的东西。 排队机 它其实应用了 leader/follower 的并发模式, 每个办...

2019-05-27 21:17:59

阅读数 10

评论数 0

原创 事件溯源和命令和查询责任分离模式

Achievement provides the only real pleasure in life CRUD模式 在 Web Service 中我们一般分为三层: Controller Service Repository 而作用于这三个层次的对象有: DTO (Data Transf...

2019-03-09 22:08:58

阅读数 14

评论数 0

原创 命令和职责链模式的快速实现 commons chain

commons chain 是命令与职责链模式的经典实现 commons chain 基本概念 它有如下概念: Context Command Chain Filter Catalog 1) Context 上下文 Context 表示一个应用程序的状态, 它其实是一个 java.util.m...

2019-03-08 15:59:39

阅读数 8

评论数 0

原创 如何定义和实现流程

很多程序员在上大学的时候都学过如何画流程图, 或根据流程写代码, 或者根据代码写流程图. 来让我们看看如下的流程, 我们用 www.plantuml.com 所提供的工具绘制如下语音交互应答, 所对应的场景是打电话查询帐户余额 ivr_flow_sample.txt: @startuml st...

2019-03-03 23:02:38

阅读数 6

评论数 0

原创 日志分析之ELK

所谓ELK 是指 Elasticsearch, Logstash, Kibana 这三个开源日志收集, 分析和展现工具. ElasticSearch Elasticsearch简称 ELS , 它是ELK 技术栈中的核心组件,它是基于 Apache Lucene 的一个高度可扩展的开源全文搜索和分...

2019-02-26 11:14:09

阅读数 4

评论数 0

原创 微服务之 Spring Boot

Spring Boot 项目是 Spring 大家族的后起之秀, 它通过 内置的 Tomcat/Jetty, 可以创建独立的Spring 程序, 无需依赖于 web 容器 自动配置, 封装一些 starter 依赖库, 大大简化了以往繁琐的依赖配置, 无需代码生成,无需编写一行 xml 配置文...

2019-02-23 23:34:07

阅读数 7

评论数 0

原创 为你的股票绘制趋势图

手里有一点点公司的股票, 拿不准在什么时机抛售, 程序员也没时间天天盯着看,不如动手写个小程序, 把股票趋势每天早上发到邮箱里,用 python 的 pandas, matplotlib 写起来很容易, 几十行代码搞定。 准备环境 python3 -m venv venv source ./ven...

2019-02-16 19:28:35

阅读数 129

评论数 0

原创 微服务数据库与 NOSQL 选型

传统单体应用典型的架构是几点个应用程序服务器, 连接后台的 Oracle 或 MySQL 服务器, 彼此之间也可以使用数据库来共享数据. 随着业务的增长, 后台数据库会变得越来越庞大, 不得已进行分表分库, 不同的租户或应用使用不同的数据库和表. 由于数据共享的要求, 经常还要做一些数据复制. 比...

2019-02-08 20:43:08

阅读数 8

评论数 0

原创 微服务 REST API 设计原则

REST API 设计原则 REST API 的设计很有讲究,我司总结了一些规范和原则,详见 Cisco REST API 规范,编译如下: REST 方法 GET 方法的响应是由所请求URL代表的资源的表示 GET 方法不会改变请求URL所代表的资源 POST 请求在所请求的URL ...

2019-02-08 19:27:34

阅读数 12

评论数 0

原创 微服务之 Spring 框架核心

Spring 如雷贯耳, 在 Java Web 开发领域无人不晓, 似乎也没什么可说的, 不过时至今日, Spring 已经不仅仅是一个应用程序框架, 一个控制反转容器, 而是一个开源框架的集合, Spring 也已经是 Java 世界中事实上的标准, J2EE 从标准制定者变为模仿者. Spri...

2019-01-05 16:17:50

阅读数 3

评论数 0

原创 系统指标监控 collectd + influxDB + grafana

Collcted collectd 是一个守护程序,它定期收集系统和应用程序性能指标,并提供以各种方式存储值的机制。 collectd 从各种来源收集指标,例如 操作系统,应用程序,日志文件和外部设备,并存储这些信息或通过网络传输。 这些统计数据可用于监视系统,发现性能瓶颈(即性能分析)和预测未来...

2019-01-05 16:08:20

阅读数 6

评论数 0

原创 微服务之负载均衡

微服务都是分布式系统, 多个服务工作在一起齐心协力完成所需的工作, 事情不能交给一个人做, 所工作分担到多个微服务上是为负载均衡. 负载均衡策略 负载均衡 Load Balance 是最基本的分流策略, 将负载尽量均匀地分布到下游节点上, 但是如何分派, 是有讲究的. 大致有以下四种基本策略: ...

2018-11-11 20:08:10

阅读数 21

评论数 0

原创 微服务版本分支管理与特性开关

在微服务的开发中, 我们会开发很多功能, 并在最短时间内上线, 也就是说经过了单元测试, API 测试, 自动化的集成测试, 以及少量的手动端到端的测试, 新增的改动就会在几天内部署到产品线上. 这样做符合"唯快不破"的理念, 而且很多开发人员也充满自信, 不过毕竟风险太大,...

2018-11-02 14:51:25

阅读数 8

评论数 0

原创 微服务设计方法

概述 服务就是代表特定功能的软件实体, 是不依赖于任何上下文或外部服务的自治构件.微服务设计就是软件设计的一个子范畴, 它主要是指如何设计这样的服务来满足需求, 而这个服务是微小且自治的, 满足微服务的若干特征. 先让我们看看传统软件设计的流程: 需求分析--概要设计--详细设计 软件设计 需求分...

2018-11-02 09:41:48

阅读数 21

评论数 0

原创 VUE 起步

单页面 SPA 网页应用的关键在于路由, 过去一个个按钮都会跳转到一个个独立的页面, 由服务器端渲染, 填充相应的数据, 然后展现给用户。 作为一个后端工程师, 这是我曾经熟悉的模式, 无论十多年前的 PHP, JSP 还是后来的 SSH 框架, 无不是如此, 前端做的其实很简单, 不过是一些 ...

2018-10-02 17:54:32

阅读数 13

评论数 0

原创 微服务之并发与异步

并发 顺序执行在大多数情况下都挺好的, 简单明了, 一个时间专心做一件事, 不容易出错. 但是在多核时代, 追求更高更快更强, 应对复杂的计算和逻辑处理, 并发是不二法门. 这方面的经典书籍有两本我很喜欢 1. Pattern-Oriented Software Architecture Volu...

2018-08-25 08:12:18

阅读数 8

评论数 0

原创 微服务实战测试之Java实例篇

测试分为好多种类型 测试用例的组织 单元测试 集成测试 端到端测试 消费者测试 契约测试 这是著名的测试金字塔, 也叫测试冰淇淋, 意谓我们应该从下到上地组织编写我们的测试, 大量地单元测试覆盖80%的代码行数, 有了一个坚实的基础, 我们再添加组织测试, 集成测试, API 测试, 端到端和...

2018-08-24 21:03:11

阅读数 5

评论数 0

原创 微服务之会话管理

Session 会话 通常我们所说的会话是两个或更多个通信设备之间或计算机和用户之间的半永久性交互式信息交换, 会话在某个时间点建立,然后在稍后的时间点拆除。 建立的通信会话可以在每个方向上涉及多于一个消息, 这些消息只存在这个会话中, 而与其他会话隔离. 会话通常是有状态的,这意味着至少一个通信...

2018-08-05 08:36:14

阅读数 6

评论数 0

原创 机器学习数据集之波士顿房价

该数据集包含美国人口普查局收集的美国马萨诸塞州波士顿住房价格的有关信息, 数据集很小,只有506个案例。 数据集都有以下14个属性: CRIM--城镇人均犯罪率 ZN - 占地面积超过25,000平方英尺的住宅用地比例。 INDUS - 每个城镇非零售业务的比例。 CHAS - Charles ...

2018-07-08 11:53:06

阅读数 10

评论数 0

原创 绘图利器 seaborn

seaborn 是一个基于 matplotlib的绘图工具库, 提供比较高层的接口来绘制精美的统计图表 看看官方文档上给的一个例子, 泰坦尼克上的乘客数据分析 import seaborn as sns sns.set(style="darkgrid") titanic = s...

2018-07-08 06:45:16

阅读数 4

评论数 0

原创 用Python 做大数据分析入门

Python 为数据分析和机器学习提供诸多工具, anaconda 是其中一个著名的科学计算发行版, 包括近200多个工具包, 常见的有 numpy, scipy, pandas, ipython, matplotlib, sklearn 等等 conda 是它的一个工具,也是一个可执行命令,其核...

2018-07-07 18:57:35

阅读数 2

评论数 0

原创 机器学习数据集之鸢尾花

Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集, 它包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。 自变量 feature 特性 petal length 花瓣长度 petal width 花...

2018-07-07 17:25:30

阅读数 6

评论数 0

原创 十几行 python 搞定女儿的练习题

女儿在做英语练习题, 有一种类型叫做字母组合, 就是将打乱顺序的字母组合成学过的单词, 女儿常常想不出来, 我也经常搔头, 顺序是乱的, 查字典也不好使. 这个难不住程序员, 打开电脑写了十几行 python 程序, 这种问题以后就是小菜一碟了 首先下载一个英语字典的单词文本文件 wget h...

2018-07-07 16:26:00

阅读数 13

评论数 0

原创 微服务协议之 SIP

微服务协议之 SIP 在网络的世界里, 可不是只有电脑, 还是各种各样的通信设备, 还有电话, 手机, 网络会议终端, 不仅只有文本, 还有语音, 视频, 远程共享和控制等等, 这些构成了网络聊天, 网络会议, 网络直播等等应用. 在这些应用场景里, 我们都需要建立或中止多媒体会话, 参与会话的各...

2018-06-21 21:56:24

阅读数 6

评论数 0

原创 微服务之协议概述

微服务协议 互联网协议很多,TCP IP 是基础协议,在它之上有众多应用层协议,这里关注的微服务以什么协议向外提供服务, 即以什么方式, 或者说以什么手段, 通过什么媒介来提供面向用户或者其他服务提供他们所需要的服务。传统的单体服务对外一般提供RPC (远程方法调用)的接口, 对内的组件之间通过方...

2018-06-02 14:48:24

阅读数 8

评论数 0

原创 从瞎忙到搞定,你需要 GTD

目录 GTD - Get Things Done ZTD - Zen To Done 我的印象笔记GTD系统 常用工具 参考资料 GTD - Get Things Done "Your Mind is for having idea , not for hold them&quo...

2018-01-27 23:20:25

阅读数 12

评论数 0

原创 Vagrant 快速上手教程

Vagrant 是用Ruby写的脚本工具, 以一个简单工作流构建和管理虚拟机环境, 使用它可以方便地利用标准技术来配置可重复和可移植的工作环境. 1. 安装 Vagrant 下载地址: http://www.vagrantup.com/downloads.html VirtualBox下载地址:...

2018-01-19 23:06:15

阅读数 5

评论数 0

原创 微服务实战之Mock

模拟对象 一般都叫 Mock 或 Stub, 两者差不多, 都是模拟被测组件对外依赖的模拟, 存根 stub 就在那里, 不需要检查它和被测组件的交互, Mock 则可以用来检查于被测对象的交互 Mock Mock 是测试驱动开发必备之利器, 只要有状态, 有依赖, 做单元测试就不能没有 Mock...

2018-01-17 23:12:45

阅读数 7

评论数 0

原创 重回Java世界之七七八八

在告别 Java 五年之后, 今年算是正式从 C++ 世界重回 Java 世界了. 当年 Java 6 才出来, 如今已是 Java 8 了. 颇有洞中方一日, 世上已千年的感觉. 在这五年中, Java 到底发现了哪些变化呢? 语言本身当然还是那些东西, 可是已非当年吴下阿蒙, 我的知识还停留在...

2017-12-23 20:25:14

阅读数 8

评论数 0

原创 微服务缓存漫谈之Guava Cache

原理 Cache 仿佛一直以来都是提高性能, 特别是I/O密集型服务提高性能的法宝 参见下面一组数字, 比较不同媒介的存取速度: 缓存 > 内存 > 网络 > 磁盘 (来自 Google Fellow Jeff Dean 的 PPT ) 每个人都应知道的一组数字 : 存...

2017-10-15 13:21:28

阅读数 11

评论数 0

原创 十九岁的诗

偶然翻到一本旧书, 看到我十九岁时在书末的空白页上写的一首小诗 对视 你看着我 又仿佛看着我身后的墙 我朝你笑 你似笑非笑 好象我很可笑 我看着你的眼睛 你的眼睛象那蔚蓝天空 空空荡荡 不知望向何方 只听见心中 梦想的翅膀 轻轻扇响 --此处空余诗,斯人已憔悴 ...

2017-09-04 20:24:08

阅读数 8

评论数 0

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