简易智能识别服务3.2—springboot 集成zookeeper(curator)实现注册发现
微服务 / 2018年10月28日

智能识别服务涉及调用zookeeper做分布式消息同步,使用curator 包(对zookeeper的简单封装)提供了一些集成的方法,  比zookeeper原生的Client好用很多,提供了很多功能包括: 自动化的连接管理: 重新建立到ZooKeeper的连接和重试机制存在一些潜在的错误case。 Curator帮助你处理这些事情,对你来说是透明的。 清理API: 简化了原生的ZooKeeper…

简易智能识别服务3.1–使用zookeeper 实现简单的分布式信息同步
笔记 / 2018年10月22日

zk 分布式同步功能,可以由3个角色组成:  zk config manager(消息生产) ,   zk config server(消息生产2),   zk config client(消息消费) zk config manager:  任务部署在web server端,主要功能: 负责创建管理所有的“serverType” ,即一级节点,用于区分不同的配置内容,   可由 管理员通过前台界面…

简易智能识别服务2—使用zuul 的过滤器&动态路由
微服务 / 2018年10月16日

zuul是spring cloud的网关组件,可以构建动态路由、服务降级、负载均衡的服务网关,通过filter链式调用进行扩展,实现统一认证、调用监控、日志管理等等功能。 核心组件: 组件 介绍 ZuulFilter 是zuul的核心,分为pre、route、post三种类型,分别对应服务调用之前、之中、之后的处理 ZuulServlet 一个HttpServlet,执行所有ZuulFilter的…

zookeeper 如何实现分布式状态通知?
笔记 / 2018年10月14日

在zookeeper中,watcher机制来通知客户端其服务端的节点信息发生的变化。原理图如下: 多个分布式进程通过ZooKeeper提供的API来操作共享的ZooKeeper内存数据对象ZNode来达成某种一致的行为或结果,这种模式本质上是基于状态共享的并发模型,与Java的多线程并发模型一致,他们的线程或进程都是”共享式内存通信“。 Watch机制是异步非阻塞的主动通知模式即,使得分布式进程之…

Java线程–优雅关闭
笔记 / 2018年10月13日

不建议用stop 操作, 比较粗鲁, 会导致其可能的一些锁被粗暴的释放,导致一些场景下的数据不一致;   样例1 :interrupt方法 public class ThreadStopGraceful1 implements Runnable { public void run() { while(true) { if (Thread.currentThread().isInterru…

java 多线程锁机制1–Synchrnized
笔记 / 2018年10月12日

原子性(Atomicity) 原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。如果一个操作时原子性的,那么多线程并发的情况下,就不会出现线程安全问题; 例如a++,对于共享变量a的操作,实际上会执行三个步骤, 1.读取变量a的值到寄存器 2.寄存器中的值+1 3.将值赋予变量a 这三个操作中任何一个操作过程中,a的值被人篡改,那么都会出现我们…

性能测试问题 初步定位方法&样例–DB
性能 / 2018年10月6日

1.DB服务常见问题 1、慢SQL,查询语句不好,没有优化,如:没有索引或者没有用到索引等 2、I/O吞吐量小,形成了瓶颈效应。 3、内存不足 4、 网络速度慢 5、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。   2. DB监控指标&工具: 资源层:和其他软件一样 业务层:              …

性能测试问题 初步定位方法&样例–java应用
性能 / 2018年10月5日

  1. 性能问题发现 1.1 用户体验 a. RT :   超时 b. TPS 率:达不到预期值 c.  错误率:比预期值高 以上数据来源为压测工具端的统计监控 1.2 被测端监控告警 资源层:系统 load 值、内存使用率、磁盘使用率、网络带宽等超过阈值 业务层:连接数满,full GC频率过高等 2.性能问题定位流程     3.  Java 类问题定位常用工具&…

笔记:Mysql BTree索引原理理解1
性能 / 2018年10月4日

一般一个项目质量活动中,性能测试经常发现一些RT时间过长问题和DB服务有关,通常慢查询类问题比较多, 一般影响查询时间长短的主要是对DB索引的理解和使用问题,比如没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷),当然也有一些其他类型的原因,比如查询出的数据量过大(可以采用多次查询或其他的方法降低数据量),锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock,s…

一个简单的线上质量预测模型
AI / 2018年10月3日

1. 问题分析 发布一个子系统到线上,根据测试流程中收集的质量数据 预测其可能的 线上问题数; 2. 模型设计 一般影响子系统质量的因素可能有哪些? 能获取到多少纬度的数据,取决于各厂的质量大数据平台的数据挖掘能力, 这里,由于本人无实际数据平台,举个样例,纬度不一定齐全 构造的训练数据: https://github.com/margaretmm/AI/blob/master/data_trai…