自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 保姆级 -- Zookeeper超详解

提供基于类似于文件系统的目录树方式的数据存储, 并且可以对树中的节点进行有效管理. 从而用来维护和监控你存储的数据的状态变化. 通过监控这些数据状态的变化,从而可以达到基于数据的集群管理. 在大数据生态系统里,很多组件的命名都是某种动物,比如 hadoop 就是大象, hive就是蜜蜂, 而 Zookeeper 就是动物管理员.方案: 可以把所有的配置都放在一个配置中心, 然后各个服务分别去监听配置中心, 一旦发现里面的内容发生变化, 立即获取变化的内容, 然后更新本地配置即可.

2023-09-27 09:29:15 2352

原创 【保姆级】-- MySql 优化(高薪常问)

索引字段的选择, 最佳候选列应当从 where 子句的条件中提取, 如果 where 子句中的组合。被打开, 严格的说也就是打开这个命令后执行的所有 sql 语句, 它都能记录下执行时间, 并。应尽量避免在 where 子句中使用!索引并非越多越好, 如果该表赠,删,改操作较多, 慎重选择建立索引, 过多索引会降低表维。使用短索引, 提高索引访问时的 I/O 效率, 因此也相应提升了 Mysql 查询效率.索引的列, 如果一条 sql 语句中对多个列进行排序, 在业务允许情况下, 尽量同时用升。

2023-09-26 17:17:44 294

原创 idea 本地项目上传到 Git 步骤

第一步:菜单栏 VCS——>import into Version control——>Create git Repository——>弹出框找到选中自己项目——>点击Ok。第四步:VCS——>git——>push——>单击Define remote——弹出框URL输入要上传的git地址。第二步:选中项目右键 ——>git——>Add 文件会变成绿色表示成功。第三步:VCS——>commit——>ok 提交到本地仓库。

2023-09-18 15:20:12 1344

原创 如何将本地的项目上传到Git

2.出现git命令框 输入git init 在当前项目的目录中生成本地的git管理(会发现在当前目录下多了一个.git文件夹)3.输入git add . 将项目上所有的文件添加到仓库中的意思,如果想添加某个特定的文件,只需把.换成这个特定的文件名即可。5.输入git remote add origin https://自己的仓库url地址 将本地的仓库关联到github上。4.输入git commit -m “提交说明”,表示你对这次提交的注释,双引号里面的内容可以根据个人的需要改。

2023-09-18 15:14:03 3175

原创 保姆级-微信小程序开发教程

一,注册微信小程序如果你还没有微信公众平台的账号,请先进入微信公众平台首页,点击 “立即注册” 按钮进行注册。注册的账号类型可以是订阅号、服务号、小程序以及企业微信,我们选择 “小程序” 即可。接着填写账号信息,需要注意的是,填写的邮箱必须是未被微信公众平台注册、未被个人微信号绑定的邮箱,而且每个邮箱仅能申请一个小程序。激活邮箱之后,选择主体类型为 “个人类型”,并按要求登记主体信息。

2023-09-08 10:00:19 2968

原创 如何用Git克隆项目到本地

5.回到cmd窗口输入git clone 刚才复制下来的地址(点击鼠标中间的滚轮可以粘贴复制下来的内容)1.首先先建一个文件夹,这个文件夹就用来保存你想要克隆的项目,并进入这个文件夹中。3.然后返回到coding界面,找到要克隆的项目,点击克隆。2.右键,并选择Git Bash Here。4.之后会弹出这个页面,点击红色圈里的内容。6.然后就克隆完成了。

2023-04-11 23:33:21 5070 1

原创 SQL函数

STUFF(char_expr1,start,length,char_expr2) 使用字符表达式替换字符表达式的一部分字符,从指定的位置开始替换指定的长度。DATEADD(日期部分,number,date) 返回带有指定数字(number)的日期(date),该数字添加到指定的日期部分(datepart)ATN2(float_expr1, float_expr2) 返回角(以弧度表示),它的正切值在两个近似的浮点表达式之间。CHAR(int_expr) 返回到之间的整数表达式的ASCⅡ字符值。

2024-05-24 16:11:49 232

原创 B+tree 与 B-tree区别

Mysq|索引使用的是B+树,因为索引是用来加快查询的,而B+树通过对数据进行排序所以是可以提高查询速度的,然后通过一个节点中可以存储多个元素,从而可以使得B+树的高度不会太高,在Mysql中一个Innodb页就是一个B+树节点,一个Innodb页默认16kb,所以一般情况下一颗两层的B+树可以存2000万行左右的数据,然后通过利用B+树叶子节点存储了所有数据并且进行了排序,并且叶子节点之间有指针,可以很好的支持全表扫描,范围查找等SQL语句。结构: 数据 向下的指针 指向数据的指针。

2023-09-28 09:12:06 176

原创 HashMap底层源码,数据结构

JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(或者红黑树的边界值,默认为 8)并且当前数组的长度大于64时,此时此索引位置上的所有数据改为使用红黑树存储。补充:将链表转换成红黑树前会判断,即使阈值大于8,但是数组长度小于64,此时并不会将链表变为红黑树。

2023-09-28 09:10:54 363

原创 SpringBoot 和 SpringCloud 的关系(必会)

3.SpringCloud 需要依赖 SpringBoot 搭建微服务, SpringBoot 使用了默认大于配。4.SpringBoot 不需要依赖 SpringCloud 就可以独立开发. SpringBoot 也可以集成。1.SpringBoot 是为了解决 Spring 配置文件冗余问题, 简化开发的框架.2.SpringCloud 是为了解决微服务之间的协调和配置问题, 还有服务之间的通信,置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,SpringCloud。Dubbo 进行开发.

2023-09-26 17:14:20 164

原创 SpringCloud 和 Dubbo 的区别(高薪常问)

Dubbo 可 以 使 用 Zookeeper 作 为 注 册 中 心 , 实 现 服 务 的 注 册 和 发 现 ,SpringCloud 功能远远超过 Dubbo, Dubbo 只实现了服务治理(注册和发现). 但。由于 Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于 TCP 协议传输的,配合。zuul 路由网关, 对请求进行负载均衡和分发. 提供熔断器, 而且和 git 能完美集成.使用 Dubbo 时, 需要给每个实体类实现序列化接口, 将实体类转化为二进制进行。

2023-09-26 17:13:17 185

原创 【保姆级】WebSocket是什么有什么用

既然WebSocket支持双向通信,功能看似比HTTP强大,那么我们是不是可以基于WebSocket开发所有的业务功能?服务器长期维护长连接需要一定的成本各个浏览器支持程度不一WebSocket 是长连接,受网络限制比较大,需要处理好重连。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建。WebSocket并不能完全取代HTTP,它只适合在特定的场景下使用。WebSocket 是基于 TCP 的一种新的。4). 股票基金报价实时更新。3). 体育实况更新。

2023-09-19 10:18:33 365 2

原创 Java 中 Comparable 接口的作用

Comparable 接口内部只有1个要重写的关键的方法.就是int compareTo(T o)这个方法返回1个Int数值, 例如 i = x.compareTo(y)如果i=0, 也表明对象x与y排位上是相等的(并非意味x.equals(y) = true, 但是jdk api上强烈建议这样处理)如果返回数值i>0 则意味者, x > y啦,反之若i

2023-09-15 14:47:52 87

原创 【2023最新Java面试宝典】—— SpringBoot面试题(44道含答案)

后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 \BOOTINF\classes 目录下才是我们的代码,因此无法被直接引用。单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文件,但是在结合Spring Cloud 时,这个配置就会经常遇到了,特别是在需要加载一些远程配置文件的时侯。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan >。

2023-09-15 10:09:35 670

原创 Redis常用应用场景

通过在Redis中设置一个特定的键来实现锁的获取和释放,可以保证多个分布式节点之间的互斥操作。Redis是一款开源的基于内存的键值存储系统,它提供了多种数据结构和丰富的功能,适用于各种不同的应用场景。:利用Redis的集群功能和主从复制机制,可以实现分布式的缓存系统。这只是Redis的一些常用应用场景,实际上,Redis具有很多功能,可以根据具体需求进行灵活的使用和扩展。

2023-09-13 16:46:08 1173

原创 HttpServletRequest是什么,有什么作用

在Java Web应用程序中,当客户端发送HTTP请求时,容器(例如Tomcat)会创建一个HttpServletRequest对象,该对象包含了客户端请求的所有信息,如请求的URL、请求方法、请求头、请求参数等。通过调用HttpServletRequest的方法,可以获取请求的参数名称、参数值以及参数的数量等信息。例如,可以通过HttpServletRequest对象获取客户端的IP地址、获取HTTP会话对象、获取请求的URL路径等。

2023-09-13 16:39:46 675

原创 保姆级--scratch连接wedo2.0超详细教程(附资源)

hosts文件用鼠标右键单击记事本打开,添加127.0.0.1 device-manager.scratch.mit.edu到末尾,保存并覆盖原Hosts文件。2. 连接wedo时,wedo会先变蓝灯并发出滴一声响。此时鼠标不要点击,需要等电脑页面刷新出成功选项,再点击返回编辑页。3.24.0是scratch版本号,scratch打开后左上角显示的就是它的版本号。1. 必须修改Hosts,不修改是不能用的。修改完之后电脑需要重启。二. 修改Hosts。

2023-09-12 19:45:55 1652

原创 stream流中anyMatch用法

很容易理解,即是有一个或一个以上的元素满足函数参数计算结果为true那整个方法返回值为true。

2023-09-12 16:55:19 1190

原创 保姆级教程 --redis启动命令

启动Redis服务后,我们就可以使用Redis客户端连接到Redis服务并执行相应的命令了。除了运行在本地的Redis服务,我们也可以连接到运行在远程主机上的Redis服务。需要注意的是,在启动Redis服务之前,需要确保已经正确配置了Redis的配置文件。7、继续输入 redis-server.exe redis.windows.conf 启动redis命令,启动成功。2、输入 redis-server.exe redis.windows.conf 启动redis命令,看是否成功。

2023-09-11 22:52:48 5929 1

原创 pro、pre、test、dev环境

大多数人都知道四个环境指的是什么,但是很多人却不知道为什么要这么区别,甚至为了省事就只有dev和pro环境。如果项目没有上线之前没有问题,如果项目上线之后就会有非常麻烦的事情发生。下面我们针对这四种环境,来分析一下对应的各种场景。test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定。pro环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。pre环境:灰度环境,外部用户可以访问,但是。

2023-09-11 16:03:17 658

原创 Git命令拉取代码

切换分支 git checkout xxx 【xxx表示分支名】 git checkout -b xxx 【xxx表示分支名,这里表示没有这个分支的话就创建分支并且切换到这个分支来】绑定仓库 git remote add xxx xxxxxxxxx 【第一个xxx代表给远程仓库起一个名字,第二个xxxx代表远程仓库的`地址】远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。查看仓库 git remote -v。

2023-09-11 11:38:32 694

原创 dubbo的@DubboReference、@DubboService注解作用分析

透明远程调用:通过@DubboReference注解引用的服务,可以像调用本地方法一样调用远程服务,无需关心底层的远程调用和通信细节。总的来说,@DubboService注解的作用是标记一个类或接口作为Dubbo服务提供者,并将其发布为一个Dubbo服务,使得其他服务消费者可以方便地远程调用该服务。总的来说,@DubboReference注解的作用是简化Dubbo服务的引用过程,使得服务消费者可以方便地引用远程服务,并通过Dubbo框架实现透明的远程调用。@DubboReference的作用。

2023-09-06 15:46:52 1208

原创 ZooInspector

1、下载https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip;3) java -jar zookeeper-dev-ZooInspector.jar //执行成功后,会弹出java ui client。二、可以使用目录bin下的zkCli.cmd,查询Zookeeper数据的方式,但是不够直观,比较乱。2)在build目录,按住shift键右键鼠标,在右键菜单出选择“在此处打开命令窗口”。

2023-09-05 16:44:27 399

原创 WebSocket与SSE区别

Server-Sent Events(SSE)是一种基于HTTP的实时通信机制,它允许服务器通过单个HTTP连接将实时事件(event)流式传输到客户端。相比于其他实时通信机制(如WebSocket),SSE不需要额外的协议握手和自定义通信协议,而是直接使用HTTP协议进行通信,因此可以更容易地与现有的基于HTTP的应用程序集成。websocket约定了一个通信的规范,通过一个握手的机制,客户端和服务器之间能建立一个类似tcp的连接,从而方便它们之间的通信。,如实时通知、实时数据展示、聊天应用等。

2023-09-04 15:54:20 1563

原创 分布式定时任务框架选型,讲的太好了

分片的分片由主节点分配,如下三种情况都会触发主节点上的分片算法执行:a、新的Job实例加入集群 b、现有的Job实例下线(如果下线的是leader节点,那么先选举然后触发分片算法的执行) c、主节点选举”一旦有新的服务器加入集群,或现有服务器下线,elastic-job将在保留本次任务执行不变的情况下,下次任务开始前触发任务重分片。默认包含三种分片策略:基于平均分配算法的分片策略、 作业名的哈希值奇偶数决定IP升降序算法的分片策略、根据作业名的哈希值对Job实例列表进行轮转的分片策略,支持自定义分片策略。

2023-09-01 10:11:24 89

原创 定时任务框架:Xxl-Job和Quartz区别

支持集群和分布式,但是没有友好的管理界面,功能单一,对于管理调用的任务比较困难。quartz使用数据库锁。在quartz的集群解决方案里有张表scheduler_locks,quartz采用了悲观锁的方式对triggers表进行行加锁,以保证任务同步的正确性。一旦某一个节点上面的线程获取了该锁,那么这个Job就会在这台机器上被执行,同时这个锁就会被这台机器占用。同时另外一台机器也会想要触发这个任务,但是锁已经被占用了,就只能等待,直到这个锁被释放。

2023-09-01 10:04:38 558

原创 Nacos服务注册和服务配置

配置文件无法区分环境。注册中心会监听实例的心跳:注册的实例会定时向注册中心发送请求,表明自己健康,当注册中心无法再接收到实例发送的请求(实例请求停止或请求无法发送到注册中心等。在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散在各个微服务中,项目后期的配置管理困难。s (service),即服务,表示 Nacos 实现的服务注册中心和配置中心都是以服务为核心的。当配置中心中的参数更新的时候,各个服务也能实时同步最新配置,使之动态更新。当服务需要获取配置的时候,从配置中心拉取自己的配置。

2023-09-01 09:20:13 443

原创 Nacos:Spring Cloud Alibaba服务注册与配置中心

Nacos 英文全称为 Dynamic Naming and Configuration Service,是一个由阿里巴巴团队使用 Java 语言开发的开源项目。Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台(参考自 Nacos 官网)。Nacos 的命名是由 3 部分组成:我们可以将 Nacos 理解成服务注册中心和配置中心的组合体,它可以替换Eureka作为服务注册中心,实现服务的注册与发现;还可以替换Spring Cloud Config 作为配置中心,实现配置的动态刷新

2023-09-01 09:15:05 100

原创 zookeeper 3.8.1安装和入门使用

配置jdk环境变量,1.3.1、开启服务端。1.3.2、开启客户端。

2023-08-30 17:08:29 752

原创 Hashmap 和 hashtable ConcurrentHashMap 区别

HashTable 使用的是 Synchronized 关键字修饰,ConcurrentHashMap 是。4、Hashtable 是同步的,而 HashMap 不是。2、HashMap 的键和值都允许有 null 值存在,而 HashTable 则不行。②即使在多线程环境下,现在也有同步的 ConcurrentHashMap 替代,没有必要因为是多线程而用。3、因为线程安全的问题,HashMap 效率比 HashTable 的要高。1、HashMap 是非线程安全的,HashTable 是线程安全的。

2023-08-25 23:06:29 202

原创 synchronized 和 volatile 的区别是什么?

1、volatile 仅能使用在变量级别;synchronized 则可以使用在变量、方法、和类级别的。2、volatile 仅能实现变量的修改可见性,不能保证原子性;4、volatile 标记的变量不会被编译器优化;synchronized 标记的变量可以被编译器优化。volatile 本质是在告诉 jvm 当前变量在寄存器(工作内存)中的值是不确定的,需要从。synchronized 则是锁定当前变量,只有当前线程可以访问该变量,其他线。变量的修改可见性和原子性。

2023-08-25 23:05:38 53

原创 idea切换Git分支时保存未提交的文件

切换到另一个分支之后,你会发现你在tenant中的修改并没有带到这个里面来,你可以放心在这个上修改。切换到这个之后,你会发现你在tenant中的修改并没有带到新的分支里面来,你可以放心修改。1、选中tenant上你不想提交的文件,右键选择Git->Repositor->Stash Changes。5、修复完成之后,切换回tenant,选择Git->Repositor->UnStash Changes。5、修复完成之后,切换回tenant,选择Shelve Changes进行UnShelve。

2023-08-24 17:41:07 2164

原创 Java 往MongoDB 写入的时间类型自动转格式

【代码】Java 往MongoDB 写入的时间类型自动转格式。

2023-08-24 17:23:42 227

原创 Java 时间String转Date类型

【代码】Java 时间String转Date类型。

2023-08-24 17:19:54 333

原创 Java8 Stream流常用方法

使用默认方法stream()生成流, default Stream<E> stream()通过Stream接口的静态方法of(T... values)生成流。创建一条流水线,并把数据放到流水线上准备进行操作。通过Arrays中的静态方法stream生成流。工具类Collectors提供了具体的收集方式。一次操作完毕之后,还可以继续进行其他操作。一个Stream流只能有一个终结方法。把Map转成Set集合,间接的生成流。Stream流的三类方法。是流水线上的最后一个操作。生成Stream流的方式。

2023-08-24 15:47:14 91

原创 Java获取当前系统时间以及时间格式转换,Date

【代码】获取系统当前时间以及当前时间前后n分钟,Date、DateTime。

2023-08-24 10:14:11 130

原创 定时任务,Timer,Quartz,Spring Task,Xxl-Job(分布式任务调度框架)

针对分布式任务调度的需求,市场上出现了很多的产品:1) TBSchedule:淘宝推出的一款非常优秀的高性能分布式调度框架,目前被应用于阿里、京东、支付宝、国美等很多互联网企业的流程调度系统中。但是已经多年未更新,文档缺失严重,缺少维护。2) XXL-Job:大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

2023-08-23 14:56:12 413

原创 雪花算法和uuid的区别

如果你想让你的数据按照时间排序,或者想要分批遍历大量数据的时候可以用雪花算法和自增id,如果是需要分布式则只能选择雪花算法,uuid无法像自增id和雪花算法一样按照时间排序和动态分批遍历。

2023-08-23 14:28:56 425

原创 Could not create connection to database server. Attempted reconnect 3 times. Giving up.

数据库账号密码不正确。

2023-08-23 14:15:38 136

原创 Java中如何获取当前系统时间

/30分钟前的时间。//30分钟后的时间。System.out.println("当前时间:" + sdf.format(now));

2023-08-23 10:19:21 184

空空如也

空空如也

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

TA关注的人

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