后端
文章平均质量分 90
在的XF
这个作者很懒,什么都没留下…
展开
-
使用 SingleStore 作为地理空间数据库
摘要SingleStore 是一个多模型数据库系统。除了关系数据,它还支持键值、JSON、全文搜索、地理空间和时间序列。此前的一篇文章展示了 SingleStore 管理时间序列数据的能力,而在本文中,我们将探索地理空间数据。我们使用伦敦行政区和伦敦地铁的数据,用它们的数据集执行一系列地理空间查询,以测试 SingleStore 处理地理空间数据的能力。此外,我们还将讨论一个伦敦地铁数据的实际用例,即查找网络中两点之间的最短路径。最后,使用 Folium 和 Streamlit 创建伦敦..原创 2022-04-06 09:45:00 · 536 阅读 · 0 评论 -
并发编程:并发操作原子类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 · 281 阅读 · 0 评论 -
Java Lambda详解
Lambda表达式是JDK 8开始后的一种新语法形式。作用:简化匿名内部类的代码写法简化格式(匿名内部类被重写方法的形参列表) -> { 重写方法}Lambda表达式只能简化函数式接口的匿名内部类的写法形式什么是函数式接口?首先必须是接口、其次接口中有且仅有一个抽象方法的形式 通常会在接口上加上一个@FunctionalInterface注解,标记该接口必须是满足函数式接口如何使用Lambda?我们将根据下面三个问题来帮助大家理解和使用Lambda背景:我们自原创 2022-04-02 12:00:00 · 175 阅读 · 0 评论 -
Java 创建kafka主题
本文简要介绍Apache Kafka,并使用Java编码方式创建、配置kafka主题。Kafak 介绍Apache Kafka是强大、高性能、分布式的事件流平台。通常生产者应用程序发布事件到Kafka,消费者订阅这些事件以便读取和处理它们。Kafka使用主题来存储和分类这些事件,例如,在一个电子商务应用程序中,可能有一个“订单”主题。Kafka主题是分区的,它将数据分布在多个代理上以实现可伸缩性。分区可设置副本,从而使数据具有容错性和高可用性。主题还可设置保留策略,便于后期使用。这些都可以通过K原创 2022-04-02 12:30:00 · 877 阅读 · 0 评论 -
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 · 691 阅读 · 0 评论 -
SpringMVC源码分析:DispatcherServlet如何找到正确的Controller
SpringMVC是目前主流的Web MVC框架之一。我们使用浏览器通过地址http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个Controller中的方法,这期间到底发生了什么。本文将分析SpringMVC是如何处理请求与Controller之间的映射关系的,让读者知道这个过程中到底发生了什么事情。本文实际上是在上文基础上,深入分析<pre>HandlerMapping里的</pre><..原创 2022-04-02 11:15:00 · 702 阅读 · 0 评论 -
SpringMVC源码分析:DispatcherServlet的初始化流程
除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的页面。为了更好的理解上面这个过程,以上的知识,我觉得对于你理解SpringMVC的设计思想,已经足够了。SpringMVC当然可以称得上是一个复杂的框架,但是同时它又遵循Servlet世界里最简单的法则,那就是“init-service-destroy”。我们要分析SpringMVC的初始化流程,其实就是分析DispatcherServlet类的init()方法,让我们带着这种单纯的观点,打开Dispatch原创 2022-04-02 10:00:00 · 389 阅读 · 0 评论 -
SpringMVC源码分析2:SpringMVC设计理念与DispatcherServlet
SpringMVC简介SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的面纱,本文的代码,都是基于Spring的 3.1.3RELEASE版本。任何一个框架,都有自己特定的适用领域,框架的设计和实现,必定是为了应付该领域内许多通用的,烦琐的、基础的工作原创 2022-04-02 09:30:00 · 103 阅读 · 0 评论 -
Java工程师面试指南,Lucene基础原理与实践
根据定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等。当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,当根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来处原创 2022-04-01 14:23:47 · 453 阅读 · 0 评论 -
2.7w字,Java基础面试题/知识点总结(2022最新版)
整篇文章的目录如下:基础概念与常识Java 语言有哪些特点? 简单易学; 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 可靠性; 安全性; 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且原创 2022-04-01 09:00:00 · 195 阅读 · 0 评论 -
Spring Cloud 实战项目
把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,这就是微服务架构的架构概念,通过将功能分解到各个离散的服务中以实现对解决方案的解耦。关于微服务相关的学习资料不多,而 GitHub 上的开源项目可以作为你微服务之旅的第一站。本文推荐 7 个非常火的微服务项目,从入门到实战,这篇文章值得收藏。01.不二之选第一个推荐的项目是高赞教程:PiggyMetrics ,这个开源项目是你开启微服务之旅的不二之选。PiggyMetrics是一个很全面的微服务实践入门的实例集,它可以指导开..原创 2022-03-31 14:38:18 · 667 阅读 · 1 评论 -
面试之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 · 228 阅读 · 0 评论 -
搭建分布式事务组件 seata 的Server 端和Client 端详解
一,server 端的存储模式为:Server 端 存 储 模 式 (store-mode) 支 持 三 种 :file: ( 默 认 ) 单 机 模 式 , 全 局 事 务 会 话 信 息 内 存 中 读 写 并 持 久 化 本 地 文 件 root.data , 性 能 较 高 ( 默 认 )。db: 高 可 用 模 式 , 全 局 事 务 会 话 信 息 通 过 d b 共 享 , 相 应 性 能 差 些。redis: Seata-server 1 3 及 以 上 版 本 支 持 , 性 能.原创 2022-03-31 10:00:00 · 442 阅读 · 0 评论 -
玩转SpringBoot之定时任务Scheduled线程池配置
对于定时任务,在SpringBoot中只需要使用@Scheduled 这个注解就能够满足需求,它的出现也给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用定时任务了。但是,我们需要注意的是,@Scheduled 并不一定会按时执行。因为使用@Scheduled 的定时任务虽然是异步执行的,但是,不同的定时任务之间并不是并行的!!!!!!!!在其中一个定时任务没有执行完之前,其他的定时任务即使是到了执行时间,也是不会执行的,它们会进行排队。也就是如果你想你不同的定时任务互不原创 2022-03-31 09:00:00 · 8788 阅读 · 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 · 661 阅读 · 0 评论 -
大厂技术 大亨经验分享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 · 7823 阅读 · 0 评论 -
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 · 2188 阅读 · 0 评论 -
集合框架(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 · 613 阅读 · 0 评论 -
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 · 1673 阅读 · 0 评论 -
如何设计一个易扩展、易运维的内容下发服务架构?
内容为王时代,任何一个ToC的App都会有内容下发服务,内容包含商品、图文、视频等,比如在淘系App上,首页和各个垂类频道页充满了各类内容,这些页面业务变化非常较快,如何设计一个易扩展、稳定、低延迟的内容下发接口,需要开发同学不断思考摸索。作者总结内容下发服务遇到的常见问题和挑战,设计出一套灵活架构来支持不断变化的业务,重点梳理在内容服务下发内容时需要关注的点、拆分内容下发服务各个环节,通过分层架构,最终达到易扩展、易运维的业务效果。重要术语解释 内容:包括商品、图文、视频等,服务端通过算法...原创 2022-03-30 11:00:00 · 135 阅读 · 0 评论 -
《ClickHouse 实战:企业级大数据分析》
计算机科学领域的所有问题,都可以通过添加一层中间层来解决。通过在用户和计算机中间添加一层逻辑层(概念模型层),于是就有了“数据库的三级模式”:数据库在三个级别 (层次)上进行 抽象 ,使用户能够逻辑地、抽象地处理数据,而不必关心数据在计算机中的物理表示和存储。数据库简介当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。数据库是一个按数据结...原创 2022-03-29 19:49:06 · 759 阅读 · 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 · 421 阅读 · 0 评论 -
如何设计一个高并发的秒杀架构?
高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参与活动,但只有极少数用户能够购买成功。这类活动商家绝大部分是不赚钱的,说白了是找个噱头宣传自己。虽说秒杀只是一个促销活动,但对技术要求不低。下面给大家总结一下设计秒杀系统需要注意的9个细节。掌握了这些,以后就可以和面试官好好聊一聊了。9个细原创 2022-03-29 14:35:09 · 286 阅读 · 0 评论 -
拿捏字节面试官:这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 · 660 阅读 · 0 评论 -
spring-cloud-kubernetes背后的三个关键知识点
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送概览总结下来有三个关键知识点需要深入理解:1、DiscoveryClient是个接口,对应的实现类是哪个?2、discoveryClient.getServices()方法取得了kubernetes的service信息,这背后的机制是什么?java应用是怎样取得所在kubernetes原创 2022-03-28 15:07:25 · 1280 阅读 · 0 评论 -
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 · 406 阅读 · 0 评论 -
腾讯云开源业界微服管理框架 Femas
想了解“一线互联网公司”最新技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;原创 2022-03-17 15:51:39 · 361 阅读 · 0 评论 -
引流Java解决内存利用
Valhalla布莱恩·格茨在去年底发表了一篇名为State of Valhalla的文章,里面信息量非常大,里面提到早在2014年Java项目组就启动了一个名叫Valhalla的项目,这个项目将为JVM平台带来更加灵活的、扁平化的数据类型。在2021年该项目将有进一步的动作,值对象(value objects)、原始类(primitive classes)、专用泛型(specialized generics)即将引入JVM平台。今天先来聊聊这个值对象是个啥。我们知道什么是“值”,什么是“对象”,但原创 2022-03-12 19:03:49 · 102 阅读 · 0 评论 -
Spring面试P8 总结让你轻松拿捏
还在机械地打代码?我们很多开发者在开发 Spring 的程序的时候,很多的情况下,都是被动的接受了前辈们为我们做好的 Spring 特性案例。这样以来,确实在很大的程度上减少了我们开发的成本,但是也同时丧失了一个极好的学习机会,从而限制我们开发员的横向扩展能力。只知道如何使用,却不知道做了什么,那么你注定只能是一个码农。Spring 框架几乎集成一半 Javaweb 开发的江山,但是你只知道如何写,不知道为什么要这么写,也不知道要如何优化。Spring 作为一个轻量级的 Java...原创 2022-03-11 22:12:16 · 419 阅读 · 0 评论