BlankCat

BlankCat


  • Home

  • Archives

  • Categories

  • Tags

  • About

  • Search
close

Big data

Posted on 2016-11-19   |   In 大数据

《刘瑜写给女儿的信:愿你慢慢长大 》
小布谷,愿你慢慢长大。
愿你有好运气,如果没有,愿你在不幸中学会慈悲。
愿你被很多人爱,如果没有,愿你在寂寞中学会宽容。
愿你一生一世每天都可以睡到自然醒。

I am BlankCat ,welcome to my blog;

技术要点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
集群分3种
负载均衡:分发机制,也会用到主从概念,咱们访问wwww.baidu.com时候,百度会对应着一个服务器
这个服务ip不是对应真正的请求服务,而是做了一层分发,这样用户请求多了,可以保证减轻服务的压力
负载均衡机制都是通过算法计算,然后完成;
高可用:针对服务概念,访问一个比较重要的服务,把服务做成高可用模式
把服务写成分解成多个,主服务和从服务(服务的总数必须是奇数个,方便投票机制),
服务与服务之间通过心跳机制去沟通,发消息,每秒钟发一次;
服务与服务之间通过投票机制产生主服务。把服务拓展成性能比较高的服务
这叫高可用服务。
并行计算,针对任务,一个大任务分成几个小任务,最后做汇总,hadoop并行计算(百度一下)
业务场景,统计(天气预报)全国的天气预报,需要每天每分钟做定时统计,这里设计业务很复杂的计算
为了完成一个任务,会把大的任务分解成一个小的任务,把小任务的结果进行汇总,完成任务的并行计算。
================================
5个九,保一年内证宕机几分钟?
5个 9的是可用性,服务的可用性,高可用性 (服务器的高可用性)
什么是“5个9”(99.999%)的可靠性?(GG一下,你就知道)
================================
cluster
LB: load balancing : 负载均衡,提高并发处理能力
health check: 健康检测
HA:hight availability: 高可用集群,检测心跳,提升服务在线能力(服务可用性)
在线时间/(在线时间+故障处理时间)
HP:hight performance : 高性能集群,并行计算集群,处理复杂计算,科学计算集群
分布式文件系统
将大任务切割成小任务,分别进行处理的机制
================================
数据库主从(读写分离)
http://www.cnblogs.com/panxuejun/p/5887118.html
主数据库master(在往log日志里面写的时候会先锁住),插入数据库的记录会进入等待,
从数据库slave,会开启两个线程(单进程多线程模式),一个io线程,一个sql线程,io读取主数据的binlog日志,
sql线程执行sql,同步数据,完成数据库的同步;
================================
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。
它支持文件上传和下载,所以是综合传输工具,
但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl
官网 https://curl.haxx.se/
curl 命令行下载工具使用方法小结 http://www.jb51.net/softjc/26483.html

net 网络知识

Posted on 2016-11-19   |   In net

I am BlankCat,welcome to my blog;

技术要点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ipv4私网地址 百度一下
IPV4 地址分类 A B C D E
http://blog.csdn.net/ylqmf/article/details/4970213
c类网段一般容纳254个主机;
网络:设置
WAN广域网
LAN局域网
WLAN无线局域网
WAN口是对外的接口,和运营商、上级网络打交道。
LAN和WLAN是对内的接口,内部的电脑、手机、PAD,都是接入到LAN或者WLAN。
一般的无线路由器,包含了完整的LAN、WAN、WLAN功能
ip地址讲解
http://blog.csdn.net/yangluoning/article/details/8667067
如何浏览器下载局域网电脑的东西
输入wifi密码,手机是如何和路由器交换数据的
python监听端口下载东西
python -m SimpleHTTPServer 80

JVM10-运行期优化

Posted on 2016-11-17   |   In JVM

Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为『热点代码』。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器。

HotSpot虚拟机内的即时编译器

解释器与编译器

HotSpot虚拟机是采用解释器与编译器并存的架构。解释器和编译器各有优势:当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即执行。在程序运行后,随着时间的推移,编译器初见发挥作用,把越来越多的代码编译成本地代码之后,可以获取更高的执行效率。

编译对象与触发条件

在运行过程中被即时编译器编译的『热点代码』有两类:

  • 被多次调用的方法
  • 被多次执行的循环体
    Read more »

JVM9-虚拟机字节码执行引擎

Posted on 2016-11-15   |   In JVM

执行引擎是Java虚拟机最核心的组成部分之一,本章将主要从概念模型的角度来讲解虚拟机的方法调用和字节码执行。

运行时栈帧结构

栈帧(Stack Frame)是用于支持虚拟机进行方法代用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机里面从入栈到出栈的过程。对于执行引擎来说,在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧,与这个栈帧相关联的方法称为当前方法,执行引擎运行的所有字节码指令都只针对当前栈帧进行操作,在概念模型上,典型的栈帧结构图如下:

Read more »

JVM8-类加载机制

Posted on 2016-11-07   |   In JVM

类加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。

类加载的时机

类被夹在到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载7个阶段。其中验证、准备、解析3个部分统称为连接,这个阶段的发生顺序如下图所示:

Read more »

JVM7-类文件结构

Posted on 2016-11-04   |   In JVM

Class类文件结构

本章说一下Java编译后的class文件结构。

魔数与Class文件的版本


我这里用sublime打开一个class文件,看到前面4个字节是十六进制0xCAFEBABE,这个是Class文件的魔数.

很多文件存储标准中都使用魔数进行身份识别,因为扩展名可以更改,魔数就是确定这个文件是否为一个能被虚拟机接受的Class文件。

然后看0000 0034,转换成十进制是52,这个表示Java编译的版本号,相信大家在工作中也遇见过Unsupported major.minor version 52.0之类的错误,指的就是这个版本号,52对应的是JDK8。

Read more »

JVM6-虚拟机性能监控与故障处理工具

Posted on 2016-11-02   |   In JVM

给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。经常使用适当的虚拟机监控和分析的工具可以加快我们分析数据、定位问题的速度。

JDK的命令行工具

JDK的安装目录bin下提供了很多工具,这些工具其实是jdk/lib/tools.jar的包装而已。

jps:虚拟机进城状况工具

jps(JVM Process Status Tool):可以列出正在运行的虚拟机进城,并显示虚拟机执行主类以及这些进城的本地虚拟机唯一ID(Local Virtual Machine IIdentifier, LVMID),这个LVMID跟系统里的PID是一致的。

Read more »

JVM5-内存分配与回收策略

Posted on 2016-11-01   |   In JVM

内存分配

之前讲了垃圾回收器体系以及运作原理,现在来看看对象内存分配那点事儿。对象的内存分配,往大方向讲就是在堆上分配,对象主要分配在新生代的Eden区上,也可能直接分配在老年代中,并不固定,取决于使用的哪一种垃圾收集器以及虚拟机参数设置。

对象优先在Eden分配

大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机会发一起一次Minor GC。

Read more »

JVM4-垃圾收集器

Posted on 2016-10-31   |   In JVM

哪些内存需要回收?

程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,方法或者线程结束的时候内存自然就跟着回收了,所以不需要考虑过多回收的问题。而Java堆和方法区就不一样了,这部分内存的分配和回收都是动态的。

Java堆内存回收

因为堆就是放对象的地方,要回收内存,首先要知道哪些对象是不可能再被任何途径使用的

引用计数法

这个算法的实现是:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器+1,当引用失效时,计数器-1。Object-C就是使用的这种方式,Java没有选用引用计数算法来管理内存,因为它很难解决对象之间相互循环引用的问题。例子如下

Read more »

JVM3-内存溢出异常实战

Posted on 2016-10-31   |   In JVM

在Java虚拟机规范的描述中,除了程序计数器,其他几个运行时区域都有发生OutOfMemoryError异常的可能。本文有两个目的:

  1. 通过代码验证Java虚拟机规范中描述的各个运行时区域存储的内容。
  2. 希望我们在工作中遇到问题的时候能迅速判断是哪个区域的内存溢出,知道什么样的代码会导致这些区域溢出,以及出现这些异常后该如何处理。

这个图展示了如何在Idea中设置VM参数。

Read more »
1…567…9
BlankCat

BlankCat

三岁学说话,一生学闭嘴!

84 posts
25 categories
46 tags
GitHub Weibo 开发导航 个人主页
© 2017 BlankCat
Powered by Hexo
Theme - NexT.Mist