- 博客(105)
- 收藏
- 关注
原创 创建redis-cluster集群
这里我们就创建六台redis来举例,这我偷懒直接for循环创建了,同时我这里只列举了集群的配置信息其他配置信息根据自己需要添加。${port}使用docker命令查询,可以发现已经创建成功了。
2025-04-22 14:12:01
528
原创 mysql 主从同步
MySQL Replication 异步或半同步数据复制 读负载均衡、数据备份、报表生成 简单、可扩展的读操作、成熟 可能会有数据延迟、主节点单点故障
2025-04-21 11:35:48
318
原创 在 Kubernetes上使用helm快速安装 KubeSphere
Kubernetes v1.27.6helm v3.12.3KubeSphere v4.1.3
2025-04-01 13:41:47
1021
原创 k8s部署并测试ingress-nginx
部署ingress-nginx服务我这里使用的版本是1.9.6 [deploy.yaml](https://github.com/kubernetes/ingress-nginx/blob/controller-v1.9.6/deploy/static/provider/cloud/deploy.yaml)
2025-03-31 21:53:02
576
原创 kubectl 命令
kubectl [command] [TYPE] [NAME] [flags]command:指定要对一个或多个资源执行的操作,例如 create、get、describe、delete。TYPE:指定资源类型。资源类型不区分大小写, 可以指定单数、复数或缩写形式。NAME:指定资源的名称。名称区分大小写。 如果省略名称,则显示所有资源的详细信息。flags: 指定可选的参数。例如,可以使用 -s 或 --server 参数指定 Kubernetes API 服务器的地址和端口。
2025-03-28 13:37:54
1956
原创 Containerd+Kubernetes搭建k8s集群
由于 CRD 包很大,kubectl apply可能会超出请求限制。请改用kubectl create或kubectl replace。1、下载2、修改pod网段改为我们初始化集群时候设置的10.244.0.0/163、安装 Calico4、确定所有的pod都有运行。
2025-03-26 14:27:48
1275
原创 虚拟机创建及Kubernetes集群环境设置
注意:一定要刷新MAC地址,否则会导致ip地址不变。再第一步创建的文件目录中打开cmd窗口。如果不配置的话会导致流量统计不准确。注意:每台虚拟机都需要设置。
2025-03-26 14:25:39
383
原创 docker安装zipkin并使用Rabbitmq收集数据和使用Elasticsearch存储数据
STORAGE_TYPE:存储类型,默认为mem,可为mysql、cassandra、elasticsearchQUERY_PORT:查询端口,默认为9411QUERY_ENABLED:开启查询,默认为true,为false则ui界面无法查询SEARCH_ENABLED:开启搜索,默认为trueQUERY_TIMEOUT:查询超时时间,默认为11s,0表示不超时QUERY_LOG_LEVEL:控制台日志输出级别,默认为infoQUERY_LOOKBACK:可回查搜索的时间,默认为24小时
2025-03-19 17:14:44
426
原创 Sentinel 控制台与 Nacos 实现配置的双向同步和持久化存储
Sentinel支持Consul、Zookeeper、Redis、Nacos、Apollo、etcd等数据源的扩展,接下来通过一个案例展示Spring Cloud Sentinel集成Nacos实现动态流控规则,Sentinel Dashboard集成Nacos实现流控规则同步
2025-03-19 09:52:46
1021
原创 AlmaLinux安装docker
Docker Desktop 和 Docker Engine 有什么区别?Docker Desktop for Linux 提供用户友好的图形界面,可简化容器和服务的管理。它包括 Docker Engine,因为这是为 Docker 容器提供支持的核心技术。适用于 Linux 的 Docker Desktop 还附带了 Docker Scout 和 Docker Extensions 等附加功能。
2025-02-27 15:21:54
677
原创 springcloud整合seata
spring-boot版本为2.6.12,spring-cloud-alibaba版本为2021.0.4.0,spring-cloud版本为2021.0.4。
2025-02-20 17:16:53
1559
原创 同一对象内方法互调事物失效问题解决
当在其他对象中调用a方法时,b方法和c方法上标注的事物是失效的,即b方法和c方法上有没有是一样的效果的,都不会生效。b方法和c方法是否有事物只看a方法上是否有事物。若a方式上有事物,则b方法和c方法有事物,否则b方法和c方法没有事物。解决1、方法一将这些方法拆分为多个对象2、方法二1、引入aop-starter2、开启aspectj动态代理功能,让所以的动态代理都是aspectj,并对外暴露代理对象。在启动类上添加3、本类调用有代理对象来调
2024-12-17 17:22:50
207
原创 maven的settings.xml和pom.xml配置文件详解
maven的配置文件主要有 settings.xml 和pom.xml 两个文件。其中在maven安装目录下的settings.xml,如:D:\Program Files\apache-maven-3.6.3\conf\settings.xml 是全局配置文件用户目录的.m2子目录下的settings.xml,如:C:\Users\chenxc.m2\settings.xml 配置只是针对当前用户的配置文件项目根路径下的pom.xml主要是对当前项目的配置。
2023-11-03 09:13:46
10846
2
原创 Feign远程调用丢失请求头
feign远程调用,自己创建一个新的request对象,按照指定的路径和参数发起新的请求,并得到响应结果。但是这个新的request对象请求头为空,所以丢失了原先请求中的数据。feign在创建新的request对象时,会调用一系列容器中的RequestInterceptor对象,执行其apply方法,对这个创建好的request进行增强,再去真正执行请求。但是默认情况下容器中不存在这类拦截器对象。
2023-09-18 16:30:18
1576
原创 Gateway的RemoteAddr与RemoteAddressResolver源码分析
yml配置:如果我们在yml的断言配置如下图,那么他将匹配不成功。
2023-03-17 17:18:55
1385
原创 Springboot整合RabbitMQ并使用
创建交换机(Exchange)、队列(Queue)和建立绑定关系(Binding)`direct`:会将消息发送给路由键必须完全匹配的队列中。`@RabbitListener`:可以标注在类和方法上 (监听哪些队列)`@RabbitHandler`:只能标注在方法上 (重载区别不同的消息)`fanout`:会将消息发送给所有绑定的队列中,不管路由键是否匹配。`topic`:主体模式其实就是在路由模式的基础上,支持了对key的通配符匹配
2023-03-06 10:29:09
3746
原创 docker安装rabbitmq并挂载
management:表示可以通过web页面管理。alpine:表示是linux最小版本,不推荐新手安装。
2023-03-02 10:38:49
4145
1
转载 JAVA Stream的collect用法与原理
toListtoSettoCollectiontoMapcountingsummingIntaveragingIntjoiningmaxByminBygroupingBypartitioningBycollectingAndThenmapping
2022-11-12 23:09:56
2591
转载 JAVA的Stream流操作
Stream相较于传统的foreach的方式处理stream,到底有啥优势?代码更简洁、偏声明式的编码风格,更容易体现出代码的逻辑意图逻辑间解耦,一个stream中间处理逻辑,无需关注上游与下游的内容,只需要按约定实现自身逻辑即可并行流场景效率会比迭代器逐个循环更高函数式接口,延迟执行的特性,中间管道操作不管有多少步骤都不会立即执行,只有遇到终止操作的时候才会开始执行,可以避免一些中间不必要的操作消耗
2022-11-11 16:12:31
1093
原创 常见的23种设计模式总结
创建型模式:单例模式、建造者模式、工厂模式、原型模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式、过滤器模式。行为型模式:模版模式(模版方法模式)、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式、访问者模式。
2022-10-20 10:27:35
6121
原创 设计模式之备忘录模式
备忘录模式保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。原发器角色:原发器根据需要决定将自己的哪些内部状态保存到备忘录中,并可以使用备忘录来恢复内部状态。备忘录角色:负责存储原发器对象的内部状,但是具体需要存储哪些状态是由原发器对象来决定的。为了控制对备忘录对象的访问,备忘录模式中出现了窄接口和宽接口的概念。管理者角色:备忘录管理者,或者称为备忘录负责人。主要负责保存好备忘录对象,但是不能对备忘录对象的内容进行操作或检查。
2022-10-18 16:32:13
665
原创 设计模式之迭代器模式
访问一个聚合对象的内容而无须暴露它的内部表示。遍历任务交由迭代器完成,这简化了聚合类。它支持以不同方式遍历一个聚合,甚至可以自定义迭代器的子类以支持新的遍历。增加新的聚合类和迭代器类都很方便,无须修改原有代码。封装性良好,为遍历不同的聚合结构提供一个统一的接口。应用场景访问一个聚合对象的内容而无须暴露它的内部表示。需要为聚合对象提供多种遍历方式。为遍历不同的聚合结构提供一个统一的接口。
2022-10-18 10:33:57
537
原创 设计模式之责任链模式
基于数据实现 基于链表实现优点允许动态的增加和删除职责,且由用户决定是否执行某种操作。实现了被操作对象和操作的解耦。一个命令可以被多个处理器执行,例如各种框架中的拦截器缺点系统复杂度提高,容易出错。即组链时候不合理,可能导致请求得不到执行,还有可能将链变成一个环,请求在里面循环,永远都完不了。影响性能,出现递归调用,容易造成栈溢出适用场景由用户确定实现怎样的处理的流程。不确定是否需要添加这种处理的情况。把任务分解,大的任务分解成小步进行处理。
2022-10-14 14:41:11
1018
转载 设计模式之代理模式
一、代理模式二、静态代理三、动态代理四、动态代理原理分析五、InvocationHandler接口和Proxy类详解六、JDK动态代理和CGLIB动态代理代码示例比较与总结
2022-10-13 17:21:16
313
转载 高并发下秒杀商品,你必须知道的9个细节
1 瞬时高并发2. 页面静态化3 秒杀按钮4 读多写少5 缓存问题5.1 缓存击穿5.2 缓存穿透6 库存问题6.1 数据库扣减库存6.2 redis扣减库存6.3 lua脚本扣减库存7 分布式锁7.1 setNx加锁7.2 set加锁7.3 释放锁7.4 自旋锁7.5 redisson8 mq异步处理8.1 消息丢失问题8.2 重复消费问题8.3 垃圾消息问题8.4 延迟消费问题9 如何限流?9.1 对同一用户限流9.2 对同一ip限流9.3 对接口限流9.4 加验证码9.5 提高业务门槛
2022-09-20 14:36:14
312
原创 ElasticSearch - 分词器
标准分词器(standard analyzer)简单分词器(simple analyzer)空白分词器(whitespace analyzer)停止分词器(stop analyzer)正则表达式分词器(pattern analyzer)语言分词器(language analyzer)Keyword AnalyzerCustomer Analyzer
2022-09-08 18:12:18
966
原创 ElasticSearch - 检索
Query DSL基本语法格式_source【返回部分字段】match【匹配查询】match_phrase【短语匹配】multi_match【多字段匹配】bool【复合查询】filter【结果过滤】aggregations【执行聚合】
2022-09-07 15:23:40
295
原创 ElasticSearch -入门
Near Realtime(NRT 近实时)Cluster(集群)Node(节点)Index(索引)Type(类型)Document(文档)Shards & Replicas(分片 & 副本)_cat_bulkelasticsearch集群原理Elasticsearch检索原理
2022-09-07 15:06:18
605
原创 CompletableFuture使用详解
runAsync()、exceptionally()、whenComplete()、handle()、thenRun()、thenAccept()、thenApply()、thenCompose()、thenComposeAsync()、runAfterBoth()、runAfterBothAsync()、thenAcceptBoth()、thenCombine()、runAfterEither()、acceptEither()、applyToEither()、anyOf()、allOf()
2022-08-22 16:50:44
1829
原创 win11 自带远程桌面使用(包含非局域网使用以及win11升级为专业版)
win11 自带远程桌面使用(包含非局域网使用以及win11升级为专业版)
2022-07-28 17:03:22
36654
4
转载 Spring DI(依赖注入)的三种注入方式分析
DI的三种常见注入方式为:**setter注入**、**构造器注入**和**基于注解的注入**(也叫field注入),下面来分别讲讲他们的特点。
2022-06-01 15:43:38
2498
转载 @Autowired 和 @Resource 详解
spring中,@Resource和@Autowired都是做bean的注入时使用。使用过程中,有时候@Resource 和 @Autowired可以替换使用;有时,则不可以。@Resource是JavaEE自带的注解,根据ID进行注入的.@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按byName自动注入罢了。
2022-06-01 15:19:13
8905
1
转载 Spring IOC 与 DI
Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制所以2004年大师级人物Martin Fowler又给出了一个新的名字:“依赖注入”,相对IoC 而言,“依赖注入”明确描述了“被注入对象依赖IoC容器配置依赖对象”。
2022-06-01 14:48:48
311
原创 mysql 索引需要遵循的原则
1.选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。2.为经常需要排序、分组和联合操作的字段建立索引经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。3.为常作为查询条件的字段建立索引如果某个字段经常用来做查询条件,那么该字段的
2022-04-19 15:06:27
503
原创 SecureCRT 用sftp上传下载文件
SecureCRT 用sftp上传下载文件securecrt 按下ALT+P就开启新的会话 进行ftp操作。输入:help命令,显示该FTP提供所有的命令 pwd: 查询linux主机所在目录(也就是远程主机目录) lpwd: 查询本地目录(一般指windows上传文件的目录:我们可以通过查看"选项"下拉框中的"会话选项",我们知道本地上传目录为:D:/我的文档) ls: 查询连接到当前linux主机所在目录有哪些文件 lls: 查询当前本地上传目录有哪些文件 lcd: 改变本地上传
2022-04-02 14:07:22
2709
原创 Condition(条件队列)的理解与使用
condition可以通俗的理解为条件队列。当一个线程在调用了await方法以后,直到线程等待的某个条件为真的时候才会被唤醒。这种方式为线程提供了更加简单的等待/通知模式。Condition必须要配合锁一起使用,因为对共享状态变量的访问发生在多线程环境下。一个Condition的实例必须与一个Lock绑定,因此Condition一般都是作为Lock的内部实现。
2022-03-24 15:23:02
808
原创 MyBatis-Plus自定义DefaultSqlInjector,扩展BaseMapper
MyBats-Plus在一开始就给大家提供了很多通用的方法,在DefaultSqlInjector这个类中,在MethodList这个集合当中包含的都是通用方法类,如果想要使用自定义通用方法,也需要添加到这个集合当中。自定义自己的通用方法可以实现接口 ISqlInjector 也可以继承抽象类 AbstractSqlInjector 注入通用方法 SQL 语句 然后继承 BaseMapper 添加自定义方法,全局配置 sqlInjector 注入 MP 会自动将类所有方法注入到 mybatis 容器中。
2022-03-08 15:06:44
3541
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人