自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 dubbo的集群容错和负载均衡机制

Dubbo提供了4种负载均衡机制:权重随机算法:RandomLoadBalance最少活跃调用数算法:LeastActiveLoadBalance一致性哈希算法:ConsistentHashLoadBalance加权轮询算法:RoundRobinLoadBalancedubbo mock配置 基于服务降级dubbo自身是支持mock服务的,在reference标签里,有一个参数mock,该参数有四个值,false,default,true,或者Mock类的类名。分别代表如下含..

2021-01-04 13:38:10 173

原创 springcloud feign

springcloud feign 源码流程图

2020-11-05 10:25:42 158 1

原创 springcloud ribbon

Spring cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Riboon实现的。Ribbon是客户端负载均衡器,这有别语例如Nginx服务端负载均衡器。Ribbon本身提供了不通负载均衡策略使用不通的应用场景。bibbon负载均衡源码流程图如下...

2020-11-04 18:12:55 146

原创 手写springboot starter

starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。虽然不同的starter实现起来各有差异,但是他们基本上都会使用到两个相同的内容:ConfigurationProperties和AutoConfiguration。Starters 是一组可以让你很方便在应用增加的依赖关系描述符的集合。或者可以这样理解,平时我们开发的时候很多情况下都会有一个模块依赖另一个模块,这个时候我们一般都是采用 maven 的模块依赖,进行模块的依赖pom 依赖..

2020-10-29 10:41:44 136

原创 elasticsearch服务器 上创建索引库

1 构建工程2public class HtmlBean {private int id;private String title;private String content;private String url;public int getId() {return id;}public void setId(int id) {...

2020-10-26 22:36:24 201

原创 搭建elasticsearch服务器

1 lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像http://www.baidu.com/或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Ela.

2020-10-18 14:53:43 662

原创 spring中bean的生命周期以及初始化过程 以及IOC AOP 2.0版本

在之前1.0版本做了优化处理之后,对AOP做了详细补充以及底层 源码的实现。spring 中是我们常见的bean bean的生命周期以及初始化过程Spring ioc(控制反转)1ClassPathXmlApplicationContext类 容器加载配置文件bean.xml 文件 通过构造方法2AbstractApplicationContext 在这个类中初始化refresh()方法调用obtainFreshBeanFactory()加...

2020-09-28 22:41:26 429

原创 Spark 操作hive

spark 读取hive数据在 hive的目录下 启动hive 服务hive --service metastoreobject CreateDateFrameFromHive {def main(args: Array[String]):Unit = {val spark = SparkSession.builder().appName("CreateDataFrameFromHive").enableHiveSuppo...

2020-09-24 22:34:34 319

原创 Zookeeper watcher源码底层分析

Zookeeper的Watcher机制Zookeeper提供了数据的发布/订阅功能,多个订阅者可同时监听某一特定主题对象,当该主题对象的自身状态发生变化时(例如节点内容改变、节点下的子节点列表改变等),会实时、主动通知所有订阅者。watcher架构Watcher实现由三个部分组成:Zookeeper服务端;Zookeeper客户端;客户端的ZKWatchManager对象;客户端首先将Watcher注册到服务端,同时将Watcher对象保存到客户端的Watch管理器中。当ZooK

2020-09-23 17:54:28 176

原创 Zookeeper 选举底层分析

zookeeper入口类QuorumPeerConfig 解析zookeeper conf 文件下的 zoo.cfg配置文件涉及到网络通信 (1选举 多个zk节点之间的通信,2 客户端请求(应用程序连接到zkserver) 3 leader follower 之间的数据同步)进入loadDataBase() 加载数据 cnxnFactory.start()(暴露端口给别人访问) 通信 startLeaderElection() 选举机制NIOServer...

2020-09-22 18:00:33 128

原创 基于zookeeper ApI 操作实例

zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。1 首先启动本地zookeeper2 构建zookeeper案例public class ZookeepperDemo {public static void main(String[] args) throws Exception {.

2020-09-17 15:18:13 151

原创 Jmap

jmap作为jvm 的使用方式 查看内存使用情况 jstack 查看线程使用情况查看内存使用情况, 导出dump文件启动jvisualvm 监控

2020-09-11 16:03:23 620

原创 基于Netty版本的RPC框架

netty是由JBOSS提供的一个java开源框架,现为Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。1 构建工程 目录apipub...

2020-09-02 13:46:33 163

原创 Spark 资源调度和任务调度源码分析图

spark 资源调度和任务调度源码分析

2020-09-01 10:02:22 160

原创 手写mini版本tomcat

搭建工程 nettyhttp包下的 GpRequest GpResponse GpServlet 类public class GpRequest {private String method; private String url; public GpRequest(InputStream inputStream) {//拿到http协议的内容 String content =""; byte [] bu...

2020-08-31 18:01:32 193

原创 Spark 任务调度

park 资源调度和任务调度源码分析

2020-08-29 21:30:28 81

原创 Spark宽窄依赖之间的案例

1 正常spark 算子之间的转换关系def main(args: Array[String]):Unit = {val conf =new SparkConf()conf.setAppName("day03")conf.setMaster("local")val sc =new SparkContext(conf)sc.setLogLevel("error"); val rdd1 = sc.parallelize(List[Strin...

2020-08-27 21:47:00 197

原创 spark 任务提交模式

spark 任务提交模式

2020-08-20 22:20:32 87

原创 搭建spark集群

SPARK(计算引擎)Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法Spark 是在S..

2020-08-16 22:12:50 136

原创 dubbo服务消费

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)前面讲到服务发布 这里主主要讲dubbo消费端主体流程如下:ReferenceConfig 类中

2020-07-02 17:37:01 161

原创 dubbo服务发布 2.0版本

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)前面讲到dubbo spi机制 这篇主要将如何发布服务配置文件DubboBeanDefin..

2020-07-01 17:41:15 427

原创 spring中bean的生命周期以及初始化过程 细化版

spring 中是我们常见的bean bean的生命周期以及初始化过程Spring ioc(控制反转)1ClassPathXmlApplicationContext类 容器加载配置文件bean.xml 文件 通过构造方法2AbstractApplicationContext 在这个类中初始化refresh()方法调用obtainFreshBeanFactory()加载loadBeanDefinitions()方法 加载配置文件路径XmlB...

2020-06-22 10:33:49 473

原创 手写springmvc 2.0版本

springmvc 2.0版本在之前的基础上 添加了模板引擎的配置,添加了 aop 配置 实现了springmvc 和 springaop的动态分离 工程结构如下由于工程代码多这里不过多展示 具体参见源码 随后会放在github上、参考地址https://github.com/wxwSmile/springdemo演示效果如下...

2020-06-17 11:04:51 135

原创 搭建sqoop 工程

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。1 搭建步骤:2 修改配置环境变量3 将mysql 中的数据导入到hadoop hdfs 上在 dirsqoop 新建文件option执行命令执行结果

2020-06-14 21:02:22 105

原创 springmvc 手绘时序图

springmvc 时序图

2020-06-10 10:04:13 180

原创 手写springmvc 框架1.0版

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建Web应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等。springmvc工作流程图搭建项目pom 依赖项目启动配置jet..

2020-06-03 15:41:09 133

原创 如何搭建Flume日志收集框架

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。具体可以参考官网http://flume.apache.org/..

2020-05-25 22:02:34 228

原创 springcloud eureka 源码解读

springcloud 作为微服务框架 eureka作为注册中心 f注解 EnableEurekaServer1 通过@Import({EurekaServerMarkerConfiguration.class}) 找到EurekaServerAutoConfigurationInstanceRegistry 作为注册类2EurekaClientAutoConfiguration 加载Eureka配置信息 获取yml的配置信息默认的心跳检测是 30s3 拉取注...

2020-05-20 09:58:50 213

原创 手写jedis mini版

上篇文章中讲到redis 并且如何搭建redis集群参考链接 这篇讲如何更加深入了解jedis源码并手写jedis新建工程 包 api (操作redis) connection(连接通道) protocol(传输协议)package api;import connection.Connection;import protocol.Protocol;import java.io.IOException;//api操作层public class Client {...

2020-05-12 22:47:46 168

原创 java 创建Excel工具

一 导入对应的excel jar包import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;二 动态创建excelpublic class CreateExcelUtil {/*** 将list集合转成Excel文件 * @param l...

2020-05-11 17:44:36 214

原创 搭建redis集群

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。”搭建一个redis.

2020-05-10 22:51:54 94

原创 Tomcat性能优化

tomcat是常用的web容器,tomcat架构两大核心组件Connector组件:连接器,主要负责Tomcat与客户端的通讯Container组件:Servlet容器一个请求的处理流程httpConnector就是链接器httpProcessor是具体的处理类Container是容器(servlet)下载源码(8.0版本):http://mir...

2020-05-06 11:52:35 114

原创 简单rpc 框架的实现

RPC(Romote Procedure Call):远程过程调用,允许一台计算机程序远程调用另外一台计算机的子程序,不用关心底层,网络通信,在socket基础上实现,比socket需要更多资源。先看demo实现 如下 分为client端和server端Client实现如下:接口package com.gupao.rmi.Demo.rpcClient;p...

2020-04-30 16:04:56 123

原创 Java 中的tcp协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793[1]定义。建立2个类TcpServerTcpClientpublic class TcpServer {public static void main(String[] args)throws IOException...

2020-04-29 17:25:25 369

原创 Java 中的网络传输模型

Java中的网络传输模型通常是七层网络传输通常分为应用层 :为应用程序提供服务表示层 : 数据格式转化 数据加密会话层 :建立连接 管理和维护会话 传输层 :建立管理和维护端对端的连接网络层 :IP地址及路由选择链路层 :提供介质访问和路由管理物理层 :物理传输下面主要是基于Tcp协议 控制传输协议Tcp的三次握手 建立Tcp的三次握手主要建...

2020-04-29 14:13:46 226

原创 Java中的常见设计原则

Java中设计原则分6大类 分别是1 单一职责原则 :一个类只负责一个项目原则,不要参与其他类功能进来2 里氏替换原则 : 子类可以扩展父类的功能,但是不要修改父类原有的功能3 依赖倒置原则: 面向接口编程4 接口隔离原则:设计接口功能尽量细粒度 最小功能单元5 迪米特法则:降低耦合 (局部变量不要引入新的类)6 开闭原则:对外扩展 对修改关闭...

2020-04-28 17:05:09 116

原创 dubbo种spi机制

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)...

2020-04-26 18:52:44 118

原创 spring中bean的生命周期以及初始化过程

1ClassPathXmlApplicationContext类 容器加载配置文件bean.xml 文件 通过构造方法2AbstractApplicationContext 在这个类中初始化refresh()方法3 在finishBeanFactoryInitialization() 中完成bean的 初始化AbstractAutowireCapableB...

2020-04-26 14:44:18 445

原创 Spring aop的具体实现

spring源码框架中用到了很多ioc aop现在具体对aop 的实现、aop更多的运用于日志类的切面编程1 定义一个切面类@Aspectpublic class LogAspect {@Before("pointCut()")public void start() {System.out.println("开始执行start() 方法");}@...

2020-04-23 14:59:22 100

原创 Java手动版线程池实现

线程池是我们常用的对象主要用于在开发中减少频繁创建对象减少cpu 等资源的性能损耗下面简单的实现一个线程池的实现定义一个线程池的实现类MyThreadPool 具体代码如下:public class MyThreadPool {//默认初始化线程数 private static int WORK_NUM =5; //默认队列任务数 privat...

2020-04-20 18:05:31 197

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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