自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JavaEdge

全是硬核干货的公众号:JavaEdge

原创 JVM源码实战 - 对象头

JVM是由一个对应角色的oop对象来描述Java对象 instanceOopDesc用来描述普通实例对象 arrayOopDesc用来描述数组对象 这些类型的oop对象均是继承自oopDesc。 oopDesc主要包含 _mark _mark是一个markOop实例,它描述了一个对象的头信息,...

2019-11-28 01:32:23

阅读数 210

评论数 0

原创 JVM源码实战 - OOP-Klass模型

1 OOP-Klass(Ordinary Object Pointer)模型 OOP-Klass模型用来描述class的属性和行为 设计为OOP和Klass两部分是因为不希望每个对象都有一个C ++ vtbl指针, 因此,普通的oops没有任何虚拟功能。 相反,他们将所有“虚拟”函数转发到它们的k...

2019-11-28 01:20:46

阅读数 231

评论数 0

原创 Dubbo源码解析实战 - 服务本地暴露流程分析

Dubbo 处理服务暴露的关键就在 Invoker 转换到 Exporter 的过程 面试主要问得多是远程暴露,因为远程暴露涉及到了zookeeper和netty.比如和zookeeper相关的最常问的两道题是服务提供者能实现失效踢出是根据什么原理?,dubbo中zookeeper做注册中心,如果...

2019-11-26 23:31:34

阅读数 313

评论数 0

原创 Dubbo源码解析实战 - 服务暴露原理

欢迎关注全是干货的技术公众号 dubbo面试中比较喜欢问的两个点:服务发布和服务引用. 人性的拷问 服务发布过程中做了哪些事 dubbo都有哪些协议,他们之间有什么特点,缺省值是什么 什么是本地暴露和远程暴露,他们的区别 直入主题 从启动日志说起 这里不同颜色的框将关键的地方画了出来,一共...

2019-11-24 20:59:05

阅读数 192

评论数 0

原创 Dubbo源码解析实战 - 负载均衡算法LoadBalance

1 简介 本篇尽量用一些简单的数学式子和流程图和大家一起梳理一下这些集群容错算法. 2 灵魂拷问 谈谈dubbo中的负载均衡算法及特点 最小活跃数算法中是如何统计这个活跃数的 简单谈谈你对一致性哈希算法的认识 3 接口的继承体系 4 RandomLoadBalance(随机) 随机,按权重...

2019-11-23 02:14:06

阅读数 290

评论数 0

原创 Java 网络编程实战(二) -

网络编程的本质是进程间通信 2 通信的基础是IO模型 输入流 文件,Java对象,字符串都可以是数据源 输出流 3 java.io 家族 字符流 字节流 4 设计模式 - 装饰器模式 奶茶店里面的装饰器模式(珍珠只是装饰) Socket也是一种数据源 Socket是网络通信...

2019-11-23 01:39:21

阅读数 190

评论数 0

原创 Elasticsearch 实战(四) - document数据格式

1 document数据格式 1.1 面向文档的搜索分析引擎 (1)应用系统的数据结构都是面向对象的,复杂的 (2)对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式,相当麻烦 (3)ES是面向文档的,文档中存储的数据结构,与面向对象的数据结构是一样的,基于这...

2019-11-19 03:37:15

阅读数 250

评论数 0

原创 Dubbo源码解析实战 - 路由Router的奥秘

集群容错中的第二个关键词Router,中文意思就是路由 前端的路由和后端的路由他们是不同的,但是思想是基本一致的. 鉴于很多技术文章都有一个诟病,就是只讲概念,却不讲应用场景,其实Router在应用隔离,读写分离,灰度发布中都有它的影子.因此本篇用灰度发布的例子来做前期的铺垫 灰度发布 百度百科...

2019-11-19 03:31:11

阅读数 235

评论数 0

原创 Java 网络编程实战(一) - 简介

网络编程进化石 为什么学习呢! 业务逻辑无非是增删改减 会用框架却不懂底层模型 教程计划 特色

2019-11-17 22:51:11

阅读数 226

评论数 0

原创 Elasticsearch 实战(三) - Mac OS上安装和启动Elasticserch, Kibana

1 安装JDK 至少1.8.0_73以上版本 java -version 2 下载 brew install elasticsearch 启动Elasticsearch es本身特点之一就是开箱即用,如果是中小型应用,数据量少,操作不是很复杂,直接启动就可以用了 elasticsearch ...

2019-11-17 22:44:16

阅读数 280

评论数 0

原创 Elasticsearch 实战(二) - 核心概念:NRT、索引、分片、副本等

1 lucene和elasticsearch的前世今生 lucene,最先进、功能最强大的搜索库,直接基于lucene开发,非常复杂,api复杂(实现一些简单的功能,写大量的java代码),需要深入理解原理(各种索引结构) elasticsearch,基于lucene,隐藏复杂性,提供简单易用的r...

2019-11-17 22:18:21

阅读数 211

评论数 0

原创 Dubbo 最佳实践

1 服务治理的意义 服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。 服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器? 2 dubbo-admin安装使用 Maven方式部署 git clone ...

2019-11-17 16:54:18

阅读数 204

评论数 0

原创 Python分布式爬虫框架Scrapy 打造搜索引擎(四) - 爬取博客网站

相关源码 搭建scrapy的开发环境,本文介绍scrapy的常用命令以及工程目录结构分析,本文中也会详细的讲解xpath和css选择器的使用。然后通过scrapy提供的spider完成所有文章的爬取。然后详细讲解item以及item loader方式完成具体字段的提取后使用scrapy提供的pi...

2019-11-17 14:54:04

阅读数 1329

评论数 2

原创 Dubbo入门 - 分布式系统开发技术

本文学习目标 ➢ 了解dubbo的用途 ➢ 掌握dubbo的架构 ➢ 掌握dubbo的使用 1 1 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 1.1 单一应用架构 当网站流量很小...

2019-11-16 21:03:32

阅读数 187

评论数 0

原创 RPC服务治理框架实战(一) - 手写RPC

1 从使用者考虑 用,户使用RPC框架开发过程时需要做什么? 定义过程接口 服务端实现过程 客户端使用生成的stub代理对象 2 设计客户端 客户端生成过程接口的代理对象 设计客户端代理工厂,用JDK动态代理即可生成接口的代理对象。 思考 1、在ClientStubInvocationH...

2019-11-16 01:14:17

阅读数 357

评论数 0

原创 RPC服务治理框架实战(一) - RPC技术

1 RPC是什么 remote procedure call (RPC) :远程过程调用 过程 就是业务处理、计算任务,更直白理解,就是程序。(像调用本地方法一样调用远程的过程。) RPC采用Client-Server结构,通过request-response消息模式实现。 1.1 RPC VS...

2019-11-14 13:21:16

阅读数 517

评论数 2

原创 Kafka实战(六) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处理。 ● Streams API 允许一个应用程序作为一个流处理器,...

2019-11-14 00:56:48

阅读数 977

评论数 0

原创 Kafka实战(三) - Kafka的自我修养与定位

Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务...

2019-11-13 00:30:21

阅读数 29851

评论数 1

原创 RocketMQ 实战(六) - 最佳实践

1 Producer 一个应用尽可能用一个Topic,消息子类型用tags来标识,tags可以由应用自由设置 只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker做消息过滤 message.setTags("TagA"); 如有可靠性...

2019-11-11 02:23:57

阅读数 190

评论数 0

原创 RocketMQ 实战(五) - 批量消息和事务消息

1 批量消息 1.1 为什么使用批量消息 在很多调优的时候,比如数据库批量处理,有些请求进行合并发送等都是类似批量的实现 RocketMQ批量发送也是为了追求性能,特别在消息数量特别大的时候,批量效果就非常明显 1.2 使用批量消息的限制 同一批次的消息应该具有相同主题、相同的消息配置 不支...

2019-11-11 00:46:10

阅读数 167

评论数 0

原创 RocketMQ 实战(四) - 订阅机制和定时消息

1 RocketMQ的发布订阅 1.1 基本概念 发布订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都将得到通知。 RocketMQ的消息订阅分为两种模式 Push模式 (MQPushConsumer) : Broker主动向消费者推送 ...

2019-11-10 22:34:28

阅读数 226

评论数 0

原创 RocketMQ 实战(三) - 消息的有序性

■ RocketMQ有序消息的使用 1 为什么需要消息的有序性 比如用户张三终于挣了一百存在在银行卡里存取款,对应两个异步的短信消息,肯定要保证先存后取吧,不然都没钱怎么发了取钱的消息呢! M1 - 存钱 M2 - 取钱 而mq默认发消息到不同q显然是行不通的,会乱序 需要发往同一个q,先进先出...

2019-11-10 21:40:01

阅读数 243

评论数 0

原创 基于RabbitMQ消息队列的分布式事务解决方案 - MQ分布式消息中间件实战

1、5分钟了解MQ 介绍Rabbitmg用于解决分布式事务必须掌握的5个核心概念 一款分布式消息中间件,基于erlang语言开发, 具备语言级别的高并发处理能力。和Spring框架是同一家公司。 支持持久化、高可用 核心5个概念: Queue: 真正存储数据的地方 Exchange: 接收请...

2019-11-09 11:41:29

阅读数 765

评论数 0

原创 深入理解JVM --- 垃圾收集算法终章

大部分的Java对象只存活一小段时间,而存活下来的小部分Java对象则会存活很长一段时间 pmd中Java对象生命周期的直方图,红色的表示被逃逸分析优化掉的对象 之所以要提到这个假设,是因为它造就了Java虚拟机的分代回收思想 就是将堆空间划分为两代,分别叫做新生代和老年代 新生代用来存储新建...

2019-11-05 00:10:40

阅读数 309

评论数 0

原创 RocketMQ实战(二) -架构

1 RocketMQ角色介绍 RocketMQ由四个角色组成 Producer: 消息生产者 Consumer:消费者 Broker: MQ服务,负责接收、分发消息 NameServer:负责MQ服务之间的协调 2 RocketMQ架构方案 NameServer提供轻量级服务发现和路由。 每...

2019-11-03 18:27:48

阅读数 202

评论数 0

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