- 博客(115)
- 资源 (28)
- 收藏
- 关注
原创 合并git上的两个远程项目
项目命名为test,新项目命名为test1。目的是将test1的内容添加到test中。(以下命令均在需要合并的分支上操作)1、首先本地克隆旧项目:git clone https://github.com/leniy/test.git2、把新项目添加到旧项目中:git remote add dev_newhttps://github.com/test1.git3、切换到需要合并的分支 dev3、验证一下:git remote -v4、抓取新项目:git fetch dev_new5..
2022-01-20 15:25:07
870
原创 统一日志打印
https://github.com/rozidan/logger-spring-bootSetupIn order to add logger to your project simply add this dependency to your classpath:<dependency> <groupId>com.github.rozidan</groupId> <artifactId>logger-spring-boot&..
2022-01-05 16:55:35
357
原创 git分支规范
git版本管理中主要有以下几种类型的分支:master、dev、feature、release、hotfix。其中master和dev分支只能有一个;feature branch会有多个,代码版本开发过程中每个模块或开发某个功能点建的分支;release branch为发布某个版本建的分支,一般指对外发布的版本;hotfix branch指的是针对发布的release版本进行bug修复而建立的分支,修复完以后代码需要merge到dev上。针对AiLPHA产品的特殊性,增加几种类型分支
2022-01-05 16:53:11
3815
原创 布隆过滤器详解
解决缓存穿透的办法之一,就是布隆过滤器布隆过滤器(Bloom Filter),是1970年,由一个叫布隆的小伙子提出的,距今已经五十年了,和老哥同样老。redis它其实是一个很长的二进制向量和一系列随机映射函数,二进制你们应该都清楚,存储的数据不是0就是1,默认是0。算法主要用于判断一个元素是否在一个集合中,0表明不存在某个数据,1表明存在某个数据。spring懂了吗?数组布隆过滤器用途 解决Redis缓存穿透(今天重点讲解)缓存 在爬虫时,对爬虫网址进行过滤,已经存
2021-09-09 22:34:48
567
原创 03-Spring之Bean生命周期源码解析上
Spring核心IOC(对象创建)、AOP,而启动Spring就是为创建Bean对象做准备,所以我们先明白Spring到底是怎么去创建Bean的,也就是先弄明白Bean的生命周期。Bean的生命周期就是指:在Spring中,一个Bean是如何生成的,如何销毁的Bean生命周期流程图Bean的生成过程1. 生成BeanDefinitionSpring启动的时候会进行扫描,会先调用org.springframework.context.annotation.ClassPathS.
2021-09-09 08:44:05
316
原创 02- spring之底层架构核心概念解析
BeanDefinitionBeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如:class,表示Bean类型 scope,表示Bean作用域,单例或原型等 lazyInit:表示Bean是否是懒加载 initMethodName:表示Bean初始化时要执行的方法 destroyMethodName:表示Bean销毁时要执行的方法 还有很多...在Spring中,我们经常会通过以下几种方式来定义Bean:<be
2021-09-09 08:36:47
100
原创 Mysql索引底层数据结构与算法
索引是帮助MySQL高效获取数据的排好序的数据结构索引数据结构二叉树红黑树Hash表对索引的key进行一次hash计算就可以定位出数据存储的位置很多时候Hash索引要比B+ 树索引更高效仅能满足 “=”,“IN”,不支持范围查询hash冲突问题B-Tree叶节点具有相同的深度,叶节点的指针为空所有索引元素不重复节点中的数据索引从左到右递增排列B+Tree(B-Tree变种)主键索引(对应存储所有数据)非叶..
2021-09-07 15:24:20
84
原创 03: Dubbo-SPI源码解析
内容Dubbo SPI案例演示 Dubbo SPI主流程源码解析 Dubbo中的Adaptive机制源码解析 Dubbo中的依赖注入源码解析 Dubbo中的AOP实现源码解析Dubbo SPI 架构图DemoExtensionLoader<Protocol> extensionLoader = ExtensionLoader.getExtensionLoader(Protocol.class);Protocol http = extensionLoader.ge
2021-09-07 08:34:37
66
原创 02: Dubbo应用
内容负载均衡、集群容错、服务降级 本地存根、本地伪装、参数回调 异步调用、泛化调用、动态配置 管理台、动态配置、服务路由官网:http://dubbo.apache.org/zh/docs/v2.7/user/管理台github地址:https://github.com/apache/dubbo-admindemo项目地址:https://gitee.com/archguide/dubbo-tuling-democlone地址:https://gitee.com/archguide/
2021-09-07 08:29:01
76
原创 01: Dubbo框架介绍
什么是RPC维基百科是这么定义RPC的:在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。如果涉及的软件采用面向对象编程,那么远程过程
2021-09-06 22:59:11
108
原创 Dubbo的负载均衡原理
负载均衡介绍负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技术可以用最少的投资获得接近于大型主机的性能。负载均衡方式负载均衡分为软件负载均
2021-09-06 22:42:44
95
原创 01-Spring底层核心原理解析
Bean查找先根据Bean的类型去(spring容器中-(map))查找,若类型查询不到再根据类型的名称去查找名称重复会覆盖本节课会把Spring中核心知识点都给大家进行串讲,让大家对Spring的底层有一个整体的大致了解,比如: Bean的生命周期底层原理 依赖注入底层原理 初始化底层原理 推断构造方法底层原理 AOP底层原理 Spring事务底层原理 但都只是大致流程,后续会针对每个流程详细深入的讲解并分析源码实现。先来看看.
2021-09-06 20:54:45
213
原创 最新架构图
技术架构:spring cloud Alibaba、Sentinel、nacos、gateway、Ribbon、dubbo、Rocketmq、redis(哨兵模式)、elasticsearch、mysql
2021-08-16 13:36:55
240
原创 策略模式动态地调用某个接口的实现类
后端需要根据实体类中的某一个字符串,动态地调用某一个类的方法。代码演示我们先定义一个接口public interface TestService { //返回用户的主要任务 String task();}两个实现类@Service("student")public class StudentServiceImpl implements TestService { @Override public String task() { ...
2021-07-08 09:35:55
427
原创 rocketMq
注:异常被捕获者不会进入重试接收消息通道和发送消息通道名不可以重复。即使destination一样接收消息的时候报如下错误。 Caused by: org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers1. 按照消费端的`GroupName`来分组重试队列,如果消费端消费失败,消息将被发往重试队列中,比如图中的`%RETRY%ConsumerGroupA`。.
2021-05-26 17:49:58
852
原创 自定义Java规则 Sonar
下载对应项目:https://gitee.com/sonar-code/sonar-java-custom-rules.gitsonarqube-7.4下载地址:https://download.csdn.net/download/qq_32653205/19095642sonarqube-7.4包已集成(自定义检验规则、gitlab集成、中文集成、jdk1.8、mysql5.6~8.0) namerules下添加自定义规则类 2.Rul...
2021-05-26 17:23:16
465
1
原创 改造Sentinel Dashboard源码实现Nacos持久化
前言 之前虽然也一直在使用sentinel实现限流熔断功能,但却没有好好整理之前看的源码与资料,今天有时间将之前自己整理过的资料写成一篇博文,或者是是一篇关于Sentinel(基于目前最近版本1.8,如果没有特殊说明,都指最新1.8版本)持久化Nacos的指南,因为我发现网上的一些博文虽然有参考价值但却没有好好完善好细节,一知半解,或者版本比较老不具备参考价值。比如说为什么要做这一步,这一步需要完成什么具体工作等等。所以尽我所能,详细介绍下手把手整合Sentinel与Nacos,实现Sentinel
2021-01-19 18:56:42
664
原创 springboot 集成elasticsearch
百度云下载地址:链接:https://pan.baidu.com/s/11y5zGKJDsyb8f_ScLasPTQ提取码:xut1复制这段内容后打开百度网盘手机App,操作更方便哦1、介绍 ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索 引擎,基于 RESTfulweb 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的 开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时..
2020-12-18 18:33:43
318
1
原创 三种常见的限流算法
1、漏桶算法 漏桶算法其实很简单,可以粗略的认为就是注水漏水过程,往桶中以一定速率流出水,以任意速率流入水,当水超过桶流量则丢弃,因为桶容量是不变的,保证了整体的速率。2、令牌桶算法 令牌桶算法是比较常见的限流算法之一,大概描述如下: 1)、所有的请求在处理之前都需要拿到一个可用的令牌才会被处理; 2)、根据限流大小,设置按照一定的速率往桶里添加令牌; 3)、桶设置最大的放置令牌限制,当桶满时、新添加的令牌就被丢弃或者拒绝; 4)、请求达到后首先要获取令牌桶中的令牌,拿着令牌才可以进行其他的业务逻辑
2020-12-17 23:21:07
519
原创 MySQL索引优化分析
为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等啥子?撸起袖子就是干!案例分析我们先简单了解一下非关系型数据库和关系型数据库的区别。MongoDB是NoSQL中的一种。NoSQL的全称是Not only SQL,非关系型数据库。它的特点是性能高,扩张性强,模式灵活,在高并发场景表现得尤为突出。
2020-12-01 14:12:17
69
原创 敏捷开发与Gitlab CI/CD持续集成
敏捷开发的流程分为几个阶段:编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署。而CI/CD是实现这一理念的方法。一:持续集成CI(Continuous integration) 持续集成(Continuous integration),简称CI,是一种软件开发实践。开发人员提交代码后,系统自动进行构建、(单元)测试,通过自动化测试保障所有的提交在合并主线之后不会出现质量问题,对可能出现的一些问题进行预警。需要具备的条件 需要为...
2020-11-30 14:24:15
584
原创 注册中心选型
一、什么是微服务微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。二、微服务的特点复杂度可控每一个微服务专注于单一功能简化部署在一个单块系统中,只要修改了一行代码,就需要对整个系统进行重新的构建、测试,然后将整个系统进行部署。而微服务则可以对一个微服务进行部署。灵活组合在微服务架构中,可以通过组合已有的微服务以达到功能重用的目的。技术选型灵活技术选型是去中心化的,在一个大型系统中,不同的功能具有不同
2020-11-30 14:18:01
248
原创 网关-选型
一、什么是API网关API网关可以看做系统与外界的统一入口,我们可以在网关进行处理一些非业务逻辑的逻辑,比如权限验证,监控,缓存,请求路由等,也可以对接口进行过滤、聚合、校验等。二、关注功能点接口字段过滤 接口聚合三、API网关选型 Spring Cloud Gateway Kong Zuul Zuul2 接口报文字段过滤 需二次开发(容易) 需二次开发(较难) .
2020-11-30 14:09:35
426
原创 书籍推荐
书名 豆瓣评分 点评 豆瓣链接 数据密集型应用系统设计 9.6 数据库设计思路 https://book.douban.com/subject/30329536/ 微服务架构设计模式 9.6 微服务设计思路 https://book.douban.com/subject/33425123/ Kubernetes in Action中文版 9.7 DevOps主流实践...
2020-11-30 14:06:56
133
1
原创 输出成文档树的形式
在写文档的时候,想把项目输出成文档树的形式,可以使用以下命令tree >> D:/tree.txt 只有文件夹tree /f >> D:/tree.txt 包括文件夹和文件
2020-10-28 15:06:47
112
原创 互联网公司如何搭建自己的技术框架
负载均衡 可选方案: SLB, Nginx. - SLB要收钱,但是比较便宜,有保证,不会挂。 但是可配置的很少,不能根据域名做ip映射 - Nginx, 没啥缺点,需要一定的知识。建议: SLB + Nginx, SLB绑定域名作为统一的入口,然后每个服务器上再搭建Nginx.CDN用于缓存静态文件等等。 七牛和阿里的都还可以。- 七牛要做的久一点, 各种图片处理的接口要完善一些- 阿里的CDN要稍微好一点点, 但是没有不安全的访问方式,访问稍微没有那么灵活。 图片处理功能弱一点
2020-10-10 15:26:53
437
原创 Ubuntu 安装及共享打印机
查看打印机信息:lpstat -p命令行打印文件:sudo lpr -P打印机名 要打印的文件名ps:sudo lpr -PHP_LaserJet_Professional_M1136_MFP zy.txt==添加打印机设备==【型号:HP_LaserJet_Professional_M1136_MFP】【系统:Ubuntu 14.04 LTS】*安装打印机驱动1.将电源和USB线全部连接好2.安装hp-pluginsudo apt-get install hplip-g..
2020-06-03 13:52:48
2997
原创 阿里云AMQP与SpringBoot配置实践
规范要求 命名规范:生产者、消费者、事件、消息 定义 生产和非生产 账户隔离; virtual-host区分开发dev、生产prod、测试test (virtual-host支持最多10个,项目多了支持不了) 针对某些场景发送量较大,如日志、短信、邮件等非核心业务服务消息,生产可独立账户或virtual-host(避免影响业务数据) exchange 路由命名:路由类型.生产者名(amq.topic.oa) ,阿里云支持3中类型(direct【Binding Key = ...
2020-05-09 15:09:42
1883
原创 开发工具大全
代码编辑工具-idea:链接:https://pan.baidu.com/s/1JWE6FpuId2y860qjMVpYtQ 提取码:4o6f流程图、UMI制作工具(亿图):链接: https://pan.baidu.com/s/1GyqNOHt3p2HsNc6D4_Q1-w提取码:g1g0数据库ER图生成工具(数据字典生成)PDMAN:https://git...
2020-04-24 14:34:37
317
原创 Vue(2.9.6) + Cesium(1.66.0) 集成入门示例
1、运行环境介绍环境 操作系统 Google Chrom Node.js Npm Webpack Vue Cesium 版本 Win10 x64 80.0.3987.122 v12.16.1 v6.1...
2020-02-29 14:47:35
1107
3
原创 Centos 7搭建Gitlab服务器超详细
一、 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。1.安装sshsudo yum install -y curl policycoreutils-pythonopenssh-server若出现以下图片的信息则表示成功2.将SS...
2020-01-04 15:06:42
230
原创 mysql无法远程连接
进入mysql之后use mysqlgrant all privileges on *.* to root@'%' identified by "root";
2019-11-13 18:22:15
97
原创 redis设置允许远程访问 Windows 和 Linux 上Redis的安装守护进程配置
编辑配置文件redis.conf注释掉bind 127.0.0.1Windows 和 Linux 上Redis的安装守护进程配置Redis 简介 Redis是目前最常用的非关系型数据库(NOSql)之一,常以Key-Value的形式存储。Redis读写速度远远比关系型数据库高(mysql、oracle)。所以常用作项目热数据缓存Windows上的安装配置1) 在GitHub下载...
2019-11-12 19:03:23
134
原创 cat环境搭建及springboot项目接入
1. 源代码下载登陆码云或者github把CAT代码down到本地,码云下载地址:https://gitee.com/mirrors/CAT/tags图片.png2. 代码导入idea导入后maven会自动下载相关依赖,导入后效果如下:图片.png3. 初始化数据库并修改配置文件CAT数据存储于MySQL数据库script文件夹下面的Cat.sql ...
2019-10-29 14:36:13
2228
原创 全文搜索引擎 Elasticsearch 入门教程
全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST AP...
2019-08-29 16:38:20
101
转载 Elasticsearch6.5.2的安装与使用(二):ik插件,head插件,kibana插件的安装
为了更方便的观察和调用Elasticsearch中的数据规律,需要我们对Elasticsearch的数据进行一些处理,可视化或者进行一个归类,方便我们在需要的时候能够快速的检索到数据。Elasticsearch的插件就应运而生了。常用的Elasticsearch插件主要有:ik中文分词器,head可视化插件,kibana可视化插件。这里需要说明的是,安装IK分词器的过程中,发现6.5.2E...
2019-08-29 16:28:08
213
nacos-all.zip
2021-12-28
E-R图制作工具(亿图)
2020-05-09
阿里巴巴Java开发手册(公开版
2017-02-16
oracle问题
2016-12-27
Thinking In Java 练习题答案
2016-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人