![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术总结
文章平均质量分 90
小码农叔叔
这个作者很懒,什么都没留下…
展开
-
【云原生】Prometheus整合Alertmanager告警规则使用详解
Prometheus整合Alertmanager配置告警规则使用详解原创 2024-07-14 15:49:10 · 4016 阅读 · 201 评论 -
【微服务】API治理发展历史与未来趋势
API治理发展历史与未来趋势原创 2023-11-09 18:33:49 · 7661 阅读 · 194 评论 -
mysql 锁机制与原理详解
mysql 锁原理详解原创 2022-11-12 15:41:24 · 8218 阅读 · 193 评论 -
PostgreSQL自增主键的用法以及在mybatis中的使用
PostgreSQL自增主键的用法以及在mybatis中的使用原创 2022-10-16 09:56:17 · 12220 阅读 · 101 评论 -
mycat 常用分片规则使用详解
mycat 常用分片规则使用原创 2022-08-14 08:28:20 · 4504 阅读 · 64 评论 -
mycat 垂直分库与水平分表使用详解
mycat 垂直分库与水平分表使用详解原创 2022-08-12 22:00:28 · 4962 阅读 · 69 评论 -
linux 搭建mycat
linux 搭建mycat原创 2022-08-07 17:13:06 · 4716 阅读 · 92 评论 -
mysql 触发器使用详解
mysql 触发器使用详解原创 2022-08-01 19:00:28 · 7131 阅读 · 108 评论 -
mysql 存储过程详解
mysql 存储过程详解原创 2022-07-24 16:49:19 · 39027 阅读 · 121 评论 -
mysql 事务原理详解
mysql 事务原理详解原创 2022-07-23 15:22:02 · 7202 阅读 · 56 评论 -
mysql 索引使用与优化
mysql 索引使用与优化原创 2022-07-17 16:11:51 · 13666 阅读 · 110 评论 -
jdk动态代理使用详解
jdk动态代理和cglib静态代理使用详解原创 2022-06-18 22:33:29 · 25599 阅读 · 77 评论 -
kafka 分区分配及再平衡总结
kafka 分区分配及再平衡总结原创 2022-03-08 21:09:52 · 9822 阅读 · 0 评论 -
centos7安装promethus(普罗米修斯)
centos7安装promethus(普罗米修斯)原创 2022-02-03 17:26:18 · 14702 阅读 · 0 评论 -
canal实现mysql数据同步
canal实现mysql数据同步原创 2022-01-27 19:08:21 · 17061 阅读 · 12 评论 -
java spi使用详解
一篇文章带你详细了解java中SPI的详细使用原创 2021-12-12 16:25:33 · 5624 阅读 · 4 评论 -
基于数据库实现分布式锁
前言随着分布式架构的广泛应用,基于分布式环境下产生的并发问题也越来越多,如在分布式环境下确保并发时的数据一致性问题成为很多开发人员亟待解决的问题解决方案分布式环境下,通常解决并发时数据一致性问题的方案主要是通过分布式锁进行解决。一把来说,应用部署在单机上,通过简单的JDK锁即可保证并发环境的数据安全性,但是一旦跨越JVM进程进行分布式部署时,JDK锁就无能无能为力了既然是为了保证数据库数据的一致性,抛开性能,从实现方案上来说,就有很多种,比如可以利用数据库本身的锁,mysql的行锁,redis实现的原创 2020-09-27 19:42:22 · 2140 阅读 · 1 评论 -
java 拼音搜索功能设计与实现
本篇结合实际案例相信讲解了基于mysql如何实现中文的拼音检索功能原创 2021-12-04 17:31:17 · 13313 阅读 · 0 评论 -
cookie实现单点登录
前言在单点登录方案设计一篇中,我们谈到了目前市面上常用的一些单点登录方案的实现,关于单点登录,只需要把握一个核心的要点即可,那就是:一处登录,处处登录,登录之后,即同域下其他各个系统都能统一拿到用户的基本信息关于cookie,想必大家也很熟悉了,cookie中可以存储会话信息,将用户的基本信息存储进去之后,就可以在前后端交互中进行传输了本篇将分享基于cookie如何实现单点登录,本篇以实际案例为主进行演示业务背景以一个大家熟悉的购物业务,实际项目中,一个商城系统可能包含诸多模块的业务,比如用户中心原创 2021-11-07 15:55:25 · 27444 阅读 · 5 评论 -
es解决只能查询10000条数据方案
引言在使用es进行数据查询时,由于es官方默认限制了索引一次性最多只能查询10000条数据,查询第10001条数据开始就会报错,错误的内容大致为:Result window is too large, from + size must be less than or equal to通常,见到的一些网站的做法有:限制分页的最大页数,比如为100页,参见某东网站查询某品类的商品时的分页交互如果es中保存的数据不那么重要,如日志数据,可以考虑定期删除日志,维持数据量小于1万但是在更多的场景下,我原创 2021-10-20 18:53:06 · 37142 阅读 · 0 评论 -
基于apollo实现配置灰度发布
基于apollo实现灰度发布原创 2021-10-10 11:50:18 · 28931 阅读 · 54 评论 -
apache druid 与kafka整合使用
前言在上一篇,我们了解了apache druid的搭建,以及如何快速导入外部数据源到apache druid中进行数据分析和使用本篇,我们结合一个实际的简单的应用场景,来说说apache druid如何在实际项目中进行使用业务场景如下所示,是一个很常见的数据分析的业务,通常来说,很多实时或准实时的数据(这里理解为外部数据源)需要通过kafka进行中转,即发送到kafka中,apache druid提供了导入外部数据源的功能,可以接收来自kafka指定topic的数据,然后支持数据分析,将kafka原创 2021-09-21 19:26:09 · 4585 阅读 · 0 评论 -
centos7 搭建apache druid
Apache Druid简介Apache Druid是一个实时分析型数据库,旨在对大型数据集进行快速的查询分析("OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。Druid应用场景:点击流分析网络监测分析服务指标存储应用性能指标分析数字广告分析总的来说,apache druid适合于那些对实时性要求高,原创 2021-09-21 16:33:30 · 2785 阅读 · 2 评论 -
mysql 树形结构表设计与优化
前言在诸多的管理类,办公类等系统中,树形结构展示随处可见,以“部门”或"机构"来说,接触过的同学应该都知道,最终展示到页面的效果就是层级结构的那种,下图随机列举了一个部门的树型结构展示图设计考虑因素1、表结构设计稍稍有点开发和表结构设计经验的同学,设计出这样一张表,应该很容易,只需要在depart表中,添加一个pid/字段即可满足要求,参考下表:CREATE TABLE `depart` ( `depart_id` varchar(32) NOT NULL COMMENT '部门ID',原创 2021-09-20 17:26:53 · 13754 阅读 · 3 评论 -
xxl-job搭建与使用
前言XL-JOB是一个分布式任务调度平台,开发迅速、学习简单、轻量级、易扩展。其经受了大量互联网公司试验与使用,前身是美团内部的一个产品,后来经守住考验得到广泛使用而开源官方地址中文版:https://www.xuxueli.com/xxl-job/XXL-JOB官方架构图xxl-job可以类比elastic-job,它们都可用于分布式架构模式下,官方给出的参考说明较为丰富,这里小编不再就此展开说明,从开发者角度来说,接入xxl-job主要包括下面几个步骤:部署xxl-job的控制台在自己的原创 2021-09-14 22:23:41 · 9831 阅读 · 8 评论 -
elastic-job动态任务配置
前言在之前的springboot整合elastic-job篇中,我们了解到,elastic-job是一个不错的任务调度框架,本篇将进一步说明,如何使用elastic-job实现常用的动态任务的执行场景环境准备zookeeper安装与启动(本地可以使用windows版,比较快捷)简易工程搭建1、添加基础pom依赖<parent> <groupId>org.springframework.boot</groupId> <art原创 2021-09-12 16:37:01 · 7773 阅读 · 6 评论 -
cassandra常用操作总结
前言在上一篇,我们演示了如何基于centos7快速搭建起cassandra的运行环境,以及服务的启动和cql客户端命令行,本篇将基于此环境对cassandra的基础使用做一些总结操作运维命令总结1、查看键空间DESCRIBE keyspaces;该命令用于展示casandra下的所有的keyspaces(类比mysql的show databases;),casandra的keyspaces和mysql的数据库概念相似,属于从逻辑上区分的物理隔离空间,基于各个keyspaces,管理各自的tabl原创 2021-08-29 21:34:08 · 2833 阅读 · 0 评论 -
centos7安装cassandra
前言近些年,随着大数据越来越火热,众多非关系型数据库也被推到了前台,我们知道,非关系型数据库通常以key/value为基础的存储结构模型,具有查询效率高效,横向扩展方便快捷等特性,比如大家熟知的redis当然也有另一类非关系数据库,即文档型数据库,比如mongodb,不仅可以存储数据,还能存储图片、音频、视频等,还能辅助mysql作为数据存储架构的扩展来使用,本篇要介绍的是另一种和mongodb有着异曲同工之妙的数据库,cassandra,这是近些年随着大数据行业的发展而兴起的一种非关系型数据库对hb原创 2021-08-29 16:44:37 · 1901 阅读 · 0 评论 -
Java 常用负载均衡算法解析
前言负载均衡在Java领域中有着广泛深入的应用,不管是大名鼎鼎的nginx,还是微服务治理组件如dubbo,feign等,负载均衡的算法在其中都有着实际的使用负载均衡的核心思想在于其底层的算法思想,比如大家熟知的算法有 轮询,随机,最小连接,加权轮询等,在现实中不管怎么配置,都离不开其算法的核心原理,下面将结合实际代码对常用的负载均衡算法做一些全面的总结。轮询算法轮询即排好队,一个接一个的轮着来。从数据结构上,有一个环状的节点,节点上面布满了服务器,服务器之间首尾相连,带有顺序性。当请求过来的时候,原创 2021-08-22 17:48:25 · 6251 阅读 · 4 评论 -
Java 常用缓存淘汰算法解析
前言对于很多缓存中间件来说,内存是其操作的主战场,以redis来说,redis是很多互联网公司必备的选择,redis具有高效、简洁且易用的诸多特性被大家广泛使用,但我们知道,redis操作大多数属于内存性级操作,如果用于存放大批量数据,随着时间的增长,性能一定会下降,因此为了解决此类问题,redis自身提供了诸多的用于淘汰缓存的策略配置;缓存淘汰的策略,可以有效的缓解redis服务在运行过程中由于内存吃紧带来的空间不知,性能下降的问题,不仅如此,在很多类似的中间件,比如spark,clickhouse等原创 2021-08-14 11:51:48 · 15731 阅读 · 2 评论 -
java快速生成接口文档方法总结
前言常常在项目收尾阶段,客户需要项目的接口文档,或者是一个大的sass平台,各个产品之间互相调用的时候,需要对方提供接口文档通常来说,接口文档属于产品的技术沉淀,是一个长期积累的过程,然而,很多时候,开发阶段并不会想的那么多,结果到了需要接口文档的时候总是疲于应付,情急之下,往往采用最笨拙的办法,就是对照着项目代码,一个个拷贝吧下面针对这个情况,小编这里给出2种简单、快捷而适用的解决方案,帮助你快速解决这个烦恼吧方案一,使用japidocs这是一种最简单也最高效的快速生成接口文档的方式,也是对既有原创 2021-07-27 20:29:31 · 10001 阅读 · 19 评论 -
mysql数据库备份与恢复
前言在开发中经常需要用到对线上的数据库做一些备份操作,以便应对一些突发状况下数据库的快速恢复,下面针对常用的数据库备份操作做简单的总结环境准备本文以mysql5.7进行说明,因此需要提前在linux环境下安装mysql5.7X版本的数据库随机创建一些数据库,并给各个库下面创建一些表,如下是个人准备的一些数据库数据库备份操作相关1、备份某个指定数据库进入到mysql的安装bin目录下(下面所有操作均以此目录)./mysqldump -h IP -P 3306 -uroot -p --d原创 2021-07-25 19:27:23 · 2773 阅读 · 2 评论 -
springboot制作补丁包通用解决方案
前言补丁包是大多数项目型产品在其运行的生命周期内进行日常维护必不可少的手段之一,在产品的运维中扮演着非常重要的作用当产品在生产花环境稳定运行的过程出现了功能性或非功能性bug,而客户方并不打算在短期内重新考虑升级计划时,对于产品开发者,可以在修复原版本产品bug基础上,进行增量补丁包的发布关于补丁包的做法,不同的语言和不同的技术框架也有所差别,本篇以目前Java开发中比较通用的springboot框架为例,通过一个简单的案例进行说明补丁包涉及到的主要技术assembly + antrun首先简原创 2021-07-24 22:14:49 · 11940 阅读 · 0 评论 -
多租户设计与实践探索
前言从中台架构的理念提出到现在,经过了3年多的实践,行业内从一些大厂开始纷纷将自身的架构逐步改造成中台架构或者基于中台模式的架构进行规划,到今天来看,从中台架构出发,衍生出各种与之相关的模式,如sass等,其底层技术架构的规划,仍然和中台是一脉相承的为什么需要中台关于这一点,可以参考阿里内部人士撰写的一本《企业IT架构转型之道 阿里巴巴中台战略思想与架构实战》,有非常详细的解读个人也有幸参与过2个小型的中台化产品的建设与改造,从实践上来说,产品逐步向中台(这里指代技术中台,不同的公司有自己的中台,比原创 2021-07-18 16:52:31 · 7921 阅读 · 3 评论 -
java解决限制访问指定url
前言在web项目交付阶段,很多交付的小伙伴们会面临的一个问题就是安全漏洞扫描,关于安全漏洞问题,可以分为很多种,但从扫描者的角度,一旦他们认为你的后端服务接口暴露的太多,或过于明显,或没有前置的安全措施(通过登录的方式)就能拿到后台的数据,这样显然是不合理的,一旦扫出这样的接口,那么面临的一个问题就是,解决接口暴露的问题关于这个问题,其实说起来,还是跟系统在一开始的规划设计阶段的安全考虑不够完备,比如你的后台项目是否需要做必要的鉴权,是否集成了第三方安全框架等,如果在项目框架搭建之初,就能考虑到这些问题原创 2021-04-24 18:20:53 · 7819 阅读 · 4 评论 -
java快速生成数据库文档
前言在产品发布前夕,经常因为编写各类设计文档感到心碎,倒不是难,而是比较繁琐,举例来说,像编写数据库文档这种操作来说,对于新手,甚至很多有一定开发经验的同学来说,都觉得是一件费力得事情,下面推荐一个小组件,并提供一段程序,帮助有需要得同学快速生成数据库文档,已解决这个麻烦得小事环境准备一个开发数据库,以下截取了部分表,实际中可能远不止这些1、导入pom依赖 <!-- screw核心 --> <dependency> <gro原创 2021-04-03 14:21:16 · 6071 阅读 · 0 评论 -
Java建造者模式详解
前言在生活中,有这么一种场景,当需要去4S店买车时,会根据个人的预算,卖家会给你推荐同一个品牌的相应的低配,中配或高配版,在网上购买毕笔记本时也会遇到类似的情况,但不管是汽车也好,还是电脑,它们基本的功能都是具备的,但是内部使用的材料不同造成最终搭配出来的效果不一样,映射到设计模式上,就是一个典型的建造者设计模式建造者设计模式使用多个简单的对象一步步构建成一个复杂的对象,即将一个复杂对象的构建与表示进行分离,使得同样的构建过程存在多种表示(即电脑可以有多条组装线,A线组装低配电脑,B线组装高配电脑)原创 2021-02-17 11:05:53 · 767 阅读 · 0 评论 -
Java会话技术之 —— Spring Session
前言在上一篇我们聊到了会话技术的基础原理中session和cookie的使用,基于cookie和session可以实现客户端(浏览器)和服务端的会话存储,从请求的无状态变为一定程度的有状态,在文章最后,通过一个简单的演示,看到这样一种现象,即在分布式环境下,假如客户端第一次携带着JSESSINID访问了A服务器的某个接口,再次访问B服务器相同服务的相同接口时,却发现获取到的JSESSINID值为null很明显,在分布式环境下,基于单机模式下的session和cookie的值是无法跨进程互通,于是我们想,原创 2021-01-30 19:49:28 · 887 阅读 · 0 评论 -
Java会话技术之 —— cookie与session
前言说到cookie与session,想必大家都不陌生,写过单机模式下的登录业务逻辑的应该多少都会接触到cookie与session,对于cookie和session,很多同学第一反应就是cookie是存储再客户端浏览器的,而session是放在服务端的对于网上一大堆的关于对比cookie与session技术的,对于面试来讲,临时突击加以记忆还是可以的,但说到具体的使用以及原理,还是有必要对其做一些深入的理解和探讨首先我们通过一个具体的小案例来看看cookie与session的由来业务场景假如在单原创 2021-01-25 22:24:30 · 601 阅读 · 0 评论 -
Java装饰器模式详解
前言装饰器模式也叫做包装器模式,属于结构性设计模式一种,装饰器设计模式在实际的生活中也有很多体现,举例来说,某手机厂商发布了XXX标准版手机,为了吸引用户眼球,提升销量,还特别有纪念碑,青春版,至尊版等我们可以这么设想,不管是哪个版本的手机,其基本的功能是不变的,电话、短信、拍照等这些基础的功能在各个版本都能找到但是不同的版本,基于某个基础的版本,根据标价的不同添加了更多定制化或个性化的功能,相当于是说丰富了标准版的功能装饰器模式作为现有类的一个包装,允许向现有的对象添加注入新的功能,同时还不改变原创 2021-01-24 22:17:10 · 1529 阅读 · 0 评论