自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用 SingleStore 作为地理空间数据库

摘要SingleStore 是一个多模型数据库系统。除了关系数据,它还支持键值、JSON、全文搜索、地理空间和时间序列。​​此前的一篇文章​​展示了 SingleStore 管理时间序列数据的能力,而在本文中,我们将探索地理空间数据。我们使用伦敦行政区和伦敦地铁的数据,用它们的数据集执行一系列地理空间查询,以测试 SingleStore 处理地理空间数据的能力。此外,我们还将讨论一个伦敦地铁数据的实际用例,即查找网络中两点之间的最短路径。最后,使用 Folium 和 Streamlit 创建伦敦..

2022-04-06 09:45:00 570

原创 Java 实现生成MD5 UDF函数(用户自定义函数),供hive使用

背景:虽然 Hive 已经提供了很多内存的函数,但还是不能满足用户的需求,因此有提供了自定义函数供用户自己开发函数来满足自己的需求。要求:用java实现 自定义的UDF函数 该函数用于生成MD5效果如图:一、java代码实现+包依赖(文件名和里面的class要一致)package cn.geek.bigdata.hive;import org.apache.commons.lang.StringUtils;import org.apache.hadoop.hive.ql.exec

2022-04-06 09:15:00 337

原创 并发编程:并发操作原子类Atomic以及CAS的ABA问题

Atomic原子类原子类是具有原子操作特征的类。原子类存在于java.util.concurrent.atmic包下。根据操作的数据类型,原子类可以分为以下几类。基本类型AtomicInteger:整型原子类 AtomicLong:长整型原子类 AtomicBoolean:布尔型原子类AtomicInteger的常用方法public final int get() //获取当前的值public final int getAndSet(int newValue)//获取当前

2022-04-03 10:15:00 301

原创 Java 创建kafka主题

本文简要介绍Apache Kafka,并使用Java编码方式创建、配置kafka主题。Kafak 介绍Apache Kafka是强大、高性能、分布式的事件流平台。通常生产者应用程序发布事件到Kafka,消费者订阅这些事件以便读取和处理它们。Kafka使用主题来存储和分类这些事件,例如,在一个电子商务应用程序中,可能有一个“订单”主题。Kafka主题是分区的,它将数据分布在多个代理上以实现可伸缩性。分区可设置副本,从而使数据具有容错性和高可用性。主题还可设置保留策略,便于后期使用。这些都可以通过K

2022-04-02 12:30:00 903

原创 Java Lambda详解

Lambda表达式是JDK 8开始后的一种新语法形式。作用:简化匿名内部类的代码写法简化格式(匿名内部类被重写方法的形参列表) -> { 重写方法}Lambda表达式只能简化函数式接口的匿名内部类的写法形式什么是函数式接口?首先必须是接口、其次接口中有且仅有一个抽象方法的形式 通常会在接口上加上一个@FunctionalInterface注解,标记该接口必须是满足函数式接口如何使用Lambda?我们将根据下面三个问题来帮助大家理解和使用Lambda背景:我们自

2022-04-02 12:00:00 190

原创 SpringMVC源码分析:DispatcherServlet如何找到正确的Controller

SpringMVC是目前主流的Web MVC框架之一。我们使用浏览器通过地址http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个Controller中的方法,这期间到底发生了什么。本文将分析SpringMVC是如何处理请求与Controller之间的映射关系的,让读者知道这个过程中到底发生了什么事情。本文实际上是在上文基础上,深入分析<pre>HandlerMapping里的</pre><..

2022-04-02 11:15:00 719

原创 SpringMVC源码剖析:消息转换器HttpMessageConverter与ResponseBody注解

本文使用的demo基于maven,是根据入门blog的例子继续写下去的。我们先来看一看对应的现象。 我们这里的配置文件 *-dispatcher.xml中的关键配置如下(其他常规的配置文件不在讲解,可参考本文一开始提到的入门blog):(视图配置省略)<mvc:resources location="/static/" mapping="/static/**"/><mvc:annotation-driven/><context:component-scan b

2022-04-02 11:00:00 712

原创 SpringMVC源码分析:DispatcherServlet的初始化流程

除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的页面。为了更好的理解上面这个过程,以上的知识,我觉得对于你理解SpringMVC的设计思想,已经足够了。SpringMVC当然可以称得上是一个复杂的框架,但是同时它又遵循Servlet世界里最简单的法则,那就是“init-service-destroy”。我们要分析SpringMVC的初始化流程,其实就是分析DispatcherServlet类的init()方法,让我们带着这种单纯的观点,打开Dispatch

2022-04-02 10:00:00 406

原创 SpringMVC源码分析2:SpringMVC设计理念与DispatcherServlet

SpringMVC简介SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的面纱,本文的代码,都是基于Spring的 3.1.3RELEASE版本。任何一个框架,都有自己特定的适用领域,框架的设计和实现,必定是为了应付该领域内许多通用的,烦琐的、基础的工作

2022-04-02 09:30:00 110

原创 Java工程师面试指南,Lucene基础原理与实践

根据定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等。当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,当根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来处

2022-04-01 14:23:47 465

原创 2.7w字,Java基础面试题/知识点总结(2022最新版)

整篇文章的目录如下:基础概念与常识Java 语言有哪些特点? 简单易学; 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 可靠性; 安全性; 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且

2022-04-01 09:00:00 214

原创 Java 线程池原理及最佳实践(面试必问)

概述1.1 线程池是什么线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。创建线程本身开销大,反复创建并销毁,过多的占用内存。所以有大量线程创建考虑使用线程池。线程池不用反复创建线程达到线程的复用,更具配置合理利用cpu和内存减少了开销,性能会得到提高,还能统一管理任务比如服务器收到大量请求,每个请求都分配线程去处理,对服务器性能考验就比较大,如果创建5个以上线程考虑使用线程池。线程过多会带来额外的开销,其中包括创建销毁线程的开销、

2022-03-31 15:26:41 2155

原创 Spring Cloud 实战项目

把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,这就是微服务架构的架构概念,通过将功能分解到各个离散的服务中以实现对解决方案的解耦。关于微服务相关的学习资料不多,而 GitHub 上的开源项目可以作为你微服务之旅的第一站。本文推荐 7 个非常火的微服务项目,从入门到实战,这篇文章值得收藏。01.不二之选第一个推荐的项目是高赞教程:PiggyMetrics ,这个开源项目是你开启微服务之旅的不二之选。PiggyMetrics是一个很全面的微服务实践入门的实例集,它可以指导开..

2022-03-31 14:38:18 691 1

原创 Spring 中那些让你爱不释手的代码技巧

最近越来越多的读者认可我的文章,还是件挺让人高兴的事情。有些读者私信我说希望后面多分享spring方面的文章,这样能够在实际工作中派上用场。正好我对spring源码有过一定的研究,并结合我这几年实际的工作经验,把spring中我认为不错的知识点总结一下,希望对您有所帮助。一 如何获取spring容器对象1.实现BeanFactoryAware接口@Servicepublic class PersonService implements BeanFactoryAware { priv

2022-03-31 14:28:43 586

翻译 面试之Java String 编码相关

实话说,作为一个多年Java老年程序员,直到近来,在没有决心花时间搞清楚Java String的编码相关问题之前, 自己也都还是似懂非懂,一脸懵逼的。设想如果在面试中,有同学能够条理清晰的回答下面的问题,那必是非常了得之人,论 智慧武功应该均在本人之上:-)。问:请预测下面程序的输出,并解释原因。printHexBinary方法为16进制打印Byte 1 String str = "中"; 2 3 byte[] bufferGBK = str.getBytes("GBK"); 4 Sys

2022-03-31 10:45:00 246

原创 搭建分布式事务组件 seata 的Server 端和Client 端详解

一,server 端的存储模式为:Server 端 存 储 模 式 (store-mode) 支 持 三 种 :file: ( 默 认 ) 单 机 模 式 , 全 局 事 务 会 话 信 息 内 存 中 读 写 并 持 久 化 本 地 文 件 root.data , 性 能 较 高 ( 默 认 )。db: 高 可 用 模 式 , 全 局 事 务 会 话 信 息 通 过 d b 共 享 , 相 应 性 能 差 些。redis: Seata-server 1 3 及 以 上 版 本 支 持 , 性 能.

2022-03-31 10:00:00 452

原创 玩转SpringBoot之定时任务Scheduled线程池配置

对于定时任务,在SpringBoot中只需要使用@Scheduled 这个注解就能够满足需求,它的出现也给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用定时任务了。但是,我们需要注意的是,@Scheduled 并不一定会按时执行。因为使用@Scheduled 的定时任务虽然是异步执行的,但是,不同的定时任务之间并不是并行的!!!!!!!!在其中一个定时任务没有执行完之前,其他的定时任务即使是到了执行时间,也是不会执行的,它们会进行排队。也就是如果你想你不同的定时任务互不

2022-03-31 09:00:00 8881 5

原创 SpringBoot内置Tomcat启动原理源码分析

1、获取SpringBoot内置Tomcat自动配置类:  在SpringBoot项目中引入spring-boot-starter-web依赖,就默认使用Tomcat容器,该依赖中引入spring-boot-starter-tomcat、spring-webmvc,就引入了tomtcat核心依赖和springMvc相关jar包,这样就间接地引入了tomcat。  在执行SpringBoot项目启动类的main(...

2022-03-30 16:01:47 678

原创 大厂技术 大亨经验分享Linux源码安装RabbitMQ高可用集群

1.环境说明linux版本:CentOS Linux release 7.9.2009 erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.132.源码安装erlang、RabbitMQ  Rabbitmq采用erlang语言开发,所以在安装rabbitmq之前,需要安装erlang。2.1 下载erlang、RabbitMQ源码包erlang官网下载地址:Index of /download/选择opt_src_版本号.tar.g.

2022-03-30 15:40:57 7849

原创 java规则引擎easy-rules使用指南 1 - 基本用法

规则引擎能干什么规则引擎的工作方式有点像if-else,它允许你设置一些条件和动作,然后在程序运行时判断某些动作该不该执行。easy-rules是一款轻量级的java规则引擎,目前它的长期支持版本是4.1.x,所以我们就以4.1.0版本来看一下如何使用。如何引入如果使用maven,可以直接在pom中加入:<dependency> <groupId>org.jeasy</groupId> <artifactId>easy-ru

2022-03-30 13:55:35 2217

原创 集合框架(Collections工具类的方法使用----ArrayList集合存储自定义对象的排序和去除元素重复值)

Collections:是针对集合进行操作的工具类,都是静态方法。** 面试题:* Collection和Collections的区别?* Collection:是单列集合的顶层接口,有子接口List和Set。* Collections:是针对集合操作的工具类,有对集合进行排序和二分查找的方法** 要知道的方法* public static <T> void sort(List<T> list):排序 默认情况下是自然顺序。* public static <.

2022-03-30 13:45:26 639

原创 kratos 微服务框架商城实战初识 kratos

准备工作本机器这里已经安装好了 go、kratos、proto、wire、make等所需的工具。初始化项目目录进入自己电脑中存放 Go 项目的目录新建 kratos-shop/service目录,并进入到新建的目录中执行 kratos new user命令并进入 user目录,执行命令 kratos proto add api/user/v1/user.proto,这时你在 /service/user/api/user/v1目录下会看到新的 user.proto文件已经...

2022-03-30 12:30:00 1707

原创 如何设计一个易扩展、易运维的内容下发服务架构?

内容为王时代,任何一个ToC的App都会有内容下发服务,内容包含商品、图文、视频等,比如在淘系App上,首页和各个垂类频道页充满了各类内容,这些页面业务变化非常较快,如何设计一个易扩展、稳定、低延迟的内容下发接口,需要开发同学不断思考摸索。作者总结内容下发服务遇到的常见问题和挑战,设计出一套灵活架构来支持不断变化的业务,重点梳理在内容服务下发内容时需要关注的点、拆分内容下发服务各个环节,通过分层架构,最终达到易扩展、易运维的业务效果。重要术语解释 内容:包括商品、图文、视频等,服务端通过算法...

2022-03-30 11:00:00 150

原创 《ClickHouse 实战:企业级大数据分析》

计算机科学领域的所有问题,都可以通过添加一层中间层来解决。通过在用户和计算机中间添加一层逻辑层(概念模型层),于是就有了“数据库的三级模式”:数据库在三个级别 (层次)上进行 抽象 ,使用户能够逻辑地、抽象地处理数据,而不必关心数据在计算机中的物理表示和存储。数据库简介当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。数据库是一个按数据结...

2022-03-29 19:49:06 804 1

转载 Spring源码解析:高级容器的扩展

本篇我们一起来详细探究一下基于 ApplicationContext 的容器初始化和注入过程,至于 ApplicationContext 的使用方式,广大开发者应该是信手拈来,这里还是简单的举例一下:ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-core.xml");MyBean myBean = (MyBean) context.getBean("my-bean");myBean

2022-03-29 15:26:34 436

原创 如何设计一个高并发的秒杀架构?

高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参与活动,但只有极少数用户能够购买成功。这类活动商家绝大部分是不赚钱的,说白了是找个噱头宣传自己。虽说秒杀只是一个促销活动,但对技术要求不低。下面给大家总结一下设计秒杀系统需要注意的9个细节。掌握了这些,以后就可以和面试官好好聊一聊了。9个细

2022-03-29 14:35:09 302

原创 拿捏字节面试官:这92道 Spring Boot 面试题轻松应对(上)

Spring Boot面试题1、什么是Spring Boot?多年来,随着新功能的增加,spring变得越来越复杂。只需访问页面,我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同功能。如果必须启动一个新的Spring项目,我们必须添加构建路径或添加Maven依赖关系,配置应用程序服务器,添加spring配置。因此,开始一个新的spring项目需要很多努力,因为我们现在必须从头开始做所有事情。Spring Boot是解决这个问题的方法。Spring Boot已经建立在现有spri

2022-03-28 16:22:09 688

原创 spring-cloud-kubernetes背后的三个关键知识点

首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送概览总结下来有三个关键知识点需要深入理解:1、DiscoveryClient是个接口,对应的实现类是哪个?2、discoveryClient.getServices()方法取得了kubernetes的service信息,这背后的机制是什么?java应用是怎样取得所在kubernetes

2022-03-28 15:07:25 1306

原创 Spring Boot + Prometheus + Grafana 可视化监控 配图详解

一、背景Spring Boot 的应用监控方案比较多,SpringBoot + Prometheus + Grafana 是目前比较常用的方案之一。它们三者之间的关系大概如下图:二、开发SpringBoot应用首先,创建一个SpringBoot项目,pom文件如下:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo

2022-03-20 21:03:16 433

原创 Spring MVC整体结构介绍,图文+代码

Spring MVC是Spring提供的构建Web应用程序的框架,该框架遵循了Servlet规范,负责接收并处理Servelt容器传递的请求,并将响应写回Response。Spring MVC以DispatcherServlet为核心,众多组件如HandlerMapping为辅助,为用户封装了请求映射等底层逻辑,让用户可以更专注与业务逻辑的处理。本文会对Spring MVC整体结构做简单介绍。Spring MVC结构图Spring MVC是一个基于Servlet容器的Web应用框架,这里的Se.

2022-03-20 20:16:36 898

原创 AQS 源码解读之解锁

在 AQS 源码解读之加锁中,线程 A 占用着锁没有释放。然后线程 B 和线程 C 都在 CHL 队列中排队,也就是执行了 parkAndCheckInterrupt 方法将自己挂起了。现在 CHL 队列的状态:线程 Aunlock() 方法解析ReentrantLock 类中的 unlock 方法public void unlock() { sync.release(1);}sync 类中的 release 方法public final boolean rele

2022-03-20 17:08:15 479

原创 强推面试前必刷:Alibaba 内部 Java 高级架构师

最近有很多同学已经开始准备下半年的跳槽面试了,不得不说还是要给这些同学竖一个大拇指的,看来这些同学都是未雨绸缪的行家呀!老师今天就为大家分享一份 Alibaba 内部 Java 高级架构师面试题的总结!这份阿里的 Java 高级架构师面试总结涉及到的内容有:Java 基础、JVM、多线程与高并发、设计模式、操作系统、网络底层原理、Spring、SpringBoot、SpringCloud、MySQL、Redis、Dubbo、Nginx、消息中间件、ZooKeeper、分布式、ELK、Git 等等内容

2022-03-18 19:22:09 3669

原创 腾讯云开源业界微服管理框架 Femas

想了解“一线互联网公司”最新技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;

2022-03-17 15:51:39 392

原创 你还在为转换Bean对象 发愁吗.本文为你详解

前言:我们的故事要从一个风和日丽的下午开始说起!这天,外包韩在位置上写代码~外包韩根据如下定义PO(persistant object):持久化对象,可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录。 VO(view object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 BO(business object):业务对象,主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 DT

2022-03-16 14:38:36 171 1

原创 2022.Java面试 相关概念

面向对象的三个特征封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象.多态的好处允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点:可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经存在的类结构. 接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或者重写它来实现的. 灵活性: 简化性:代码中如何实现多态实现多态主要有以下三种方式: 1. 接口实现 2

2022-03-16 13:46:58 509

原创 Spring 源码学习~ 循环依赖

package com.example;import com.example.config.AppConfiguration;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import com.example.bean.A;/** <pre> </pre> <pre> @author m

2022-03-15 17:38:01 287

原创 Spring 由浅到深全方位讲解,带你走进一个更高的领域

IoC 概念框架怎么学:框架是一个软件,是其它人写好的软件。知道框架能干啥, 具体的使用步要就行。1)知道框架能做什么,mybatis--访问数据库, 对表中的数据执行增删改查。2)框架的语法,框架要完成一个功能,需要一定的步骤支持的。3)框架的内部实现,框架内部怎么做,原理是什么。4)通过学习,可以实现一个框架。spring 的第一个核心功能 iocIOC (Inversion of Control) :控制反转,是一个理论,概念,思想。描述

2022-03-15 17:21:52 470

原创 Spring Cloud 微服面试笔记

主要内容:=====第一部分介绍分布式系统的概念、分法和优缺点,提出微服务的概念,对 Spring Cloud、SpringBoot 和 REST 风格进行简单的介绍。第 1 章分布式和微服务概述 1.1 互联网系统的特征 1.2 分布式系统概述 1.3 分布式系统的设计原则 1.4 微服务架构 1.5 Spring Cloud 1.6 微服务系统样例简介 第 2 章技术基础 2.1 Spring Boot

2022-03-15 16:59:06 391

原创 Java 将PDF转为PDF/A

通过将PDF格式转换为PDF/A格式,可保护文档布局、格式、字体、大小等不受更改,从而实现文档安全保护的目的,同时又能保证文档可读、可访问。本篇文章,将通过Java后端程序代码展示如何将PDF转为符合PDF/A1A, 2A, 3A, 1B, 2B和3B标准的PDF。以下是具体方法及步骤。Jar包导入本次程序中导入的是Spire.Pdf.jar。可在Maven程序中配置pom.xml如下内容来实现下载导入:复制代码<repositories> <repository&

2022-03-12 19:17:32 370

原创 引流Java解决内存利用

Valhalla布莱恩·格茨在去年底发表了一篇名为State of Valhalla的文章,里面信息量非常大,里面提到早在2014年Java项目组就启动了一个名叫Valhalla的项目,这个项目将为JVM平台带来更加灵活的、扁平化的数据类型。在2021年该项目将有进一步的动作,值对象(value objects)、原始类(primitive classes)、专用泛型(specialized generics)即将引入JVM平台。今天先来聊聊这个值对象是个啥。我们知道什么是“值”,什么是“对象”,但

2022-03-12 19:03:49 115

空空如也

空空如也

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

TA关注的人

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