- 博客(326)
- 资源 (13)
- 收藏
- 关注
原创 Springboot整合Elastic-job
Elastic-Job 最开始只有一个 elastic-job-core 的项目,定位轻量级、无中心化,最核心的服务就是支持弹性扩容和数据分片!从 2.X 版本以后,主要分为 Elastic-Job-Lite 和 Elastic-Job-Cloud 两个子项目。应用在各自的节点执行任务,通过 zookeeper 注册中心协调。节点注册、节点选举、任务分片、监听都在 E-Job 的代码中完成。下图是官网提供得。
2023-12-28 16:13:17
1623
原创 Springboot整合quartz
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。官网地址:https://www.quartz-scheduler.org/
2023-12-22 16:53:41
1136
转载 Maven打包可执行jar包
如上面的manifest文件中,Class-Path的值中,每个jar包的前缀都是libs/。配置正确了才能找到依赖。要运行该应用程序,只需在控制台中编写以下代码:java -jar target/webapp.jar,并通过在浏览器中指定localhost:8080/来测试它。:jar文件中的依赖项,您可以在每个可访问的位置运行它,打包工件的高级控制,从jar文件中排除依赖项等,以及打包war文件。提供了自定义类加载器,它知道如何从归档文件中的jar加载类和资源,而不是从文件系统中的jar加载。
2023-12-07 20:41:22
629
原创 idea报“Could not autowire. No beans of ‘UserMapper‘ type found. ”错解决办法
idea报“Could not autowire. No beans of ‘UserMapper‘ type found. ”错解决办法
2023-08-10 11:15:49
5666
原创 Less常见命令
pattern: 搜索包含指定模式的文本,可以使用向上或向下箭头浏览搜索结果。less filename: 查看指定文件的内容。Ctrl + g: 显示当前行号和文件名。n: 在搜索结果中跳转到下一个匹配项。N: 在搜索结果中跳转到上一个匹配项。Ctrl + f: 向下滚动一屏。Ctrl + b: 向上滚动一屏。Ctrl + d: 向下滚动半屏。Ctrl + u: 向上滚动半屏。G: 跳转到文件的最后一行。f: 显示文件名和当前行号。g: 跳转到文件的第一行。u: 向上滚动一屏。d: 向下滚动一屏。
2023-07-10 10:47:49
2867
原创 docker和k8s基础介绍
通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写)是一个完备的分布式系统支撑平台。Kubernetes具有完备的集群管理能力,包括多层次的安全防护和准入机制/多租户应用支撑能力、透明的服务注册和服务发现机制、内建智能负载均衡器、强大的故障发现和自我修复功能、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制,以及多粒度的资源配额管理能力。同时kubernetes提供了完善的管理工具,这些工具覆盖了包括开发、测试部署、运维监控在内的各个环节;
2023-04-24 14:01:10
4087
1
原创 分布式链路追踪之SkyWalking
在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调用的先后顺序?如何定位每个模块的性能问题?本文将为你揭晓答案。衡量一个接口的性能好坏,一般我们至少会关注以下三个指标。
2023-04-20 14:35:16
3530
1
原创 springboot中记录链路日志traceId
从上面的代码实现,还可以看到,如果我们使用原生的 InheritableThreadLocal类则在子线程中修改变量,可能会影响到父线程的变量值,及其他子线程的值。该类扩展了 ThreadLocal,为子线程提供从父线程那里继承的值:在创建子线程时,子线程会接收所有可继承的线程局部变量的初始值,以获得父线程所具有的值。通常,子线程的值与父线程的值是一致的;但是,ThreadLocal有一个问题,就是它只保证在同一个线程间共享变量,也就是说如果这个线程起了一个新线程,那么新线程是不会得到父线程的变量信息的。
2023-04-19 17:12:29
4057
原创 分布式之搜索解决方案es
在默认情况下,我们创建一个库的时候,默认会帮我们创建5个主分片(primary shrad)和5个副分片(replica shard),所以说正常情况下是有10个分片的。同一个节点上面,副本和主分片是一定不会在一台机器上面的,就是拥有相同数据的分片,是不会在同一个节点上面的。所以当你有一个节点的时候,这个分片是不会把副本存在这仅有的一个节点上的,当你新加入了一台节点,ES会自动的给你在新机器上创建一个之前分片的副本。
2023-04-18 14:09:35
355
转载 搜索实现之lucene
Lucene是一套用于全文检索和搜寻的开源程序库,由Apache软件基金会支持和提供Lucene提供了一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工Lucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品。官网:http://lucene.apache.org/
2023-04-17 15:27:10
341
原创 跨越DDD从理论到工程落地的鸿沟
这三种架构模型的设计思想微服务架构高内聚低耦合原则的完美体现,而它们身上闪耀的正是以领域模型为中心的设计思想,将核心业务逻辑与外部应用、基础资源进行隔离。红色框内部主要实现核心业务逻辑,但核心业务逻辑也是有差异的,有的业务逻辑属于领域模型的能力,有的则属于面向用户的用例和流程编排能力。按照这种功能的差异,我们在这三种架构中划分了应用层和领域层,来承担不同的业务逻辑。
2023-04-13 20:55:58
696
转载 领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)
目前领域驱动设计是目前比较流行的一种架构设计,只需要按照领域驱动设计的四重边界进行架构设计,就能够很好的对各个领域解耦,对后期的业务垂直扩展、功能的水平扩展提供了良好的基础。
2023-04-12 15:18:02
447
原创 分布式之事务解决方案seata
首先需要知道XA模型是什么,XA 规范早在上世纪 90 年代初就被提出,用于解决分布式事务领域的问题,他也是最早的分布式事务处理方案,因为需要数据库内部也是支持XA模式的,比如MYSQL,XA模式具有强一致性的特点,因此他对数据库占用时间比较长,所以性能比较低。XA模式属于两阶段提交。第一阶段:进行事务注册,将事务组册到TC中执行sql语句。第二阶段:TC判断事务是否出错,并通知所有的事务参与者,进行事务提交和回滚。
2023-04-03 13:23:09
929
转载 分布式之分布式事务是什么
我们都知道 Seata是一个分布式事务的解决方案,今天我们就来带大家了解一下什么是分布式事务,首先我们先来了解一下基础的知识,事务是什么?事务是由一系列数据库操作组成的逻辑过程,可以是一个SQL查询,也可以是一组SQL查询。具备四个特性,也就是ACID。事务分为:本地事务和分布式事务。
2023-03-31 15:44:58
233
原创 Redis之缓存穿透+缓存雪崩+缓存击穿
在生产环境中,会因为很多的原因造成访问请求绕过了缓存,都需要访问数据库持久层,虽然对Redsi缓存服务器不会造成影响,但是数据库的负载就会增大,使缓存的作用降低。
2023-03-30 16:40:00
886
原创 mysql之索引类型
MySQL官方对索引的定义是:索引(Index)是帮助MySQL高效获取数据的数据结构。索引最形象的比喻就是图书的目录。注意只有在大量数据中查询时索引才显得有意义。所以索引创建的好对于数据库的数据查询性能很重要。
2023-03-30 14:39:33
684
原创 Zookeeper工作原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户,主要为了解决分布式架构下数据一致性问题,典型的应用场景有分布式配置中心、分布式注册中心、分布式锁、分布式队列、集群选举、分布式屏障、发布/订阅等场景。
2023-03-28 16:11:58
1772
原创 MQ之kafka
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。
2023-03-27 21:39:07
1243
原创 Redis之底层数据结构
Redis底层数据结构有三层意思:从Redis本身数据存储的结构层面来看,Redis数据结构是一个HashMap。从使用者角度来看,Redis的数据结构是String,List,Hash,Set,Sorted Set。从内部实现角度来看,Redis的数据结构是ict,sds,ziplist,quicklist,skiplist,intset。
2023-03-27 15:49:54
1375
原创 Jvm之内存泄漏
如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。对于内存泄露的处理页就是提高程序的健壮型,因为内存泄露是纯代码层面的问题。Memory Leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。一般问题出现都是在某次上线后导致的,可以先将最近上线的代码,按照本文的2.2分析一下,分析一下看看能不能定位到问题。2)其次,这些对象是无用的,即程序以后不会再使用这些对象。
2023-03-24 16:14:48
2026
原创 Jmm之Java内存模型
关键字来提供可见性的。Java 作为高级语言,屏蔽了 CPU 多层缓存这些底层细节,用 JMM 定义了一套读写内存数据的规范,虽然我们不再需要关心一级缓存和二级缓存的问题,但是,JMM 抽象了主内存和工作内存的概念。每个线程只能够直接接触到工作内存,无法直接操作主内存,而工作内存中所保存的正是主内存的共享变量的副本,主内存和工作内存之间的通信是由 JMM 控制的。:这里的操作指的是复合操作,例如(加、减等),因为复合操作代表有着三个过程读取变量的值、对变量进行修改操作、写入内存,整个过程不具备原子性。
2023-03-14 22:12:02
197
原创 MQ是什么?
消息队列,也成为“消息中间件”。消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。
2023-03-08 14:29:17
464
原创 Js对象之原型链详解
在刚开始接触js的时候,一直对js中的原型链一知半解,只知道对象的最顶层是Object。Array,Number等类是Object原型链下的子类。下面将以Function对象为例子来说。在使用类的一些公共方法 | 属性 的时候,会使用Funciton.方法名|属性名来进行调用,如果在函数的原型上自定义了一些方法,后期在实例化的对象中可以随便调用定义在Function原型上的方法。而且实例化的对象不...
2019-08-03 16:47:02
334
转载 Flex 布局教程:实例篇
你会看到,不管是什么布局,Flex往往都可以几行命令搞定。我只列出代码,详细的语法解释请查阅《Flex布局教程:语法篇》。我的主要参考资料是Landon Schropp的文章和Solved by Flexbox。一、骰子的布局骰子的一面,最多可以放置9个点。下面,就来看看Flex如何实现,从1个点到9个点的布局。你可以到codepen查看Demo。如果不加说明,本节...
2019-05-31 20:47:59
281
2
转载 Flex布局教程:语法篇
网页布局(layout)是 CSS 的一个重点应用。布局的传统解决方案,基于盒状模型,依赖display属性 +position属性 +float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地...
2019-05-31 20:46:16
309
转载 CSS之Grid网格布局
一:概述网格布局(Grid)是最强大的 CSS 布局方案。它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了。上图这样的布局,就是 Grid 布局的拿手好戏。Grid 布局与Flex布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。Flex 布局是轴线布局,只能指定"项目"针...
2019-05-31 20:25:47
776
原创 ubuntu下安装svn服务器
1 介绍 Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可 以很方面恢复到以前的版本,并可以查看数据更改细节。目前,Subversion已成为主流的开源代码版本管理软件之一,简称SVN。2. 安装和服务器搭建 执行下列指令安装sudo apt-get install sub...
2019-03-20 12:57:38
241
原创 变量提升和闭包
变量提升1,什么是变量提升? 当栈内存栈内存(作用域)形成,JS代码自上而下执行之前,浏览器首先会把所有带 “VAR”/“FUNCTION” 关键词的进行提前 “声明” 或者 “定义” ,这种预先处理机制称之为 “变量提升” =>声明(declare):var a (默认值undefined) =>定义(defined):a=12 (定...
2019-02-28 11:15:25
472
原创 初识Docker
一:什么是docker以及docker优势 Docker 是一个开源项目,这个项目旨在通过把应用程序打包为可移植的、自给自足的容器(引用语)DocKer一次构建可放在任何地方就可以运行,不需要进行任何改变DocKer 就类似于一个容器。这个容器就好像咱们常用的虚拟机一样,当我们虚拟机里面安装过VS、SQL、浏览器 ...... 之后咱们就把虚拟机镜像备份下来、等到下一次需要重新搭一...
2019-02-26 11:51:29
291
原创 js之数据类型转换
JS中的数据类型分为以下两种类型。基本数据类型:数字 number,字符串 string,布尔 boolean,空 null,未定义 undefined引用数据类型: 对象 object:普通对象,数组对象 (Array),正则对象 (RegExp),日期对象 (Date),数学函数 (Math 函数 function真实项目中,根据需求,我们往往需要把数据类型之间进行转换...
2019-02-22 15:24:18
507
原创 js之es6对象
Js中的对象和c++,Java中的不一样,在Js中是使用原型(prototype)来创建对象的实例。在es5中,Js的类操作都是通过原型的构造函数来实现的,继承通过原型链来实现。理解起来比较复杂。但是在es6中引入了class关键字用来创建类,这样的概念让用户理解起来就非常方便了,至于es5中的原型和原型链,后来有时间的话,我会再更新一篇对应的文章。本文主要介绍es6中的class,读者需要对 对...
2018-12-27 20:43:21
583
2
原创 js之String字符串操作
JavaScript的字符串就是用''或""括起来的字符表示。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识。例如:'I\'m \"OK\"!';//输出:I'm "OK"!具体的转义的特殊字符如下图: 字符串也可以是对象。通常, JavaScr.
2018-12-26 19:18:43
1057
原创 js之数据类型
js中的数据类型主要分为以下几个:1,基本类型:数字(Number),字符串(String),布尔(boolean),null,undefined。Symbol(es6)2,引用类型:数组(Array),对象(Object),Set和Map(es6)其中Symbol,Set和Map是es6中新增的数据类型在本文后面会讲到,本文主要是讲述es6之前的数据类型。1,Underfined...
2018-12-26 18:20:27
268
转载 12个JavaScript技巧
在这篇文章中将给大家分享12个有关于JavaScript的小技巧。这些小技巧可能在你的实际工作中或许能帮助你解决一些问题。使用!!操作符转换布尔值有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值。为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单。对于变量可以使用!!variable做检测,只要变量的值为:0、null、" "、und...
2018-12-26 14:57:49
228
原创 nodejs之generator,promise和async
promise:是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。https://blog.csdn.net/swimming_in_IT_/article/details/78350126generator: 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。http://es6.ruanyifeng.com/#docs/gener...
2018-12-24 19:36:57
279
php版本的demo修改后
2017-11-15
spin进度条
2017-09-27
sublime3.14中文破解版
2017-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人