- 博客(31)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 RocketMQ架构设计以及核心概念
对于任何一个技术我们学习他的用法之前,首先需要了解它的架构设计以及核心概念,例如RocketMQ技术架构、RocketMQ部署架构、消息存储架构、消息过滤机制、消息负载均衡机制、事务消息、消息查询等,这样会帮助我们更好的理解他的思想。知识索引- RocketMQ技术架构- RocketMQ部署架构- 消息存储架构- 消息过滤机制- 消息负载均衡机制- 事务消息- 消息查询
2022-05-14 17:31:49
540
原创 docker-compose安装RocketMQ集群
基于docker命令安装RocketMQ需要多次安装,比较麻烦,我们可以使用docker-compose一次性完成安装,我们尝试安装2Master模式集群,所以需要安装2个broker和1个namesrv以及1个rocketmq-console。安装完成后,在rocketmq-console中分别可以看到broker-a和broker-b集群信息。
2022-05-14 17:26:10
1519
2
原创 Docker安装RocketMQ单机版
RocketMQ单机安装知识索引基于docker安装namesrv基于docker安装broker基于docker安装rocketmq-console控制台 1 namesrv服务Namesrv就是RMQ中的路由服务,可以类比ZK在Kafka中的作用,实现了路由管理、服务注册、服务发现等功能;不过Namesrv相比zookeeper来得要更轻便一点。既然是为服务提供路由,所以要先安装,我们所有的安装都采用Docker容器安装。 namesrv需要存储数据,所以要先创建namesrv数
2022-05-14 17:24:39
1569
1
原创 程序员初级秘籍之servlet快速入门
Servlet` 运行在服务端(tomcat)的Java小程序,是sun公司提供一套规范. Servlet可以和其他资源(文件、数据库、Applet、Java应用程序等)交互,以生成返回给客户端的响应内容- servlet介绍- servlet入门- servlet进阶- servlet案例
2022-04-14 01:43:16
2946
1
原创 程序员初级秘籍之javaweb环境搭建
工欲善其事必先利其器,我们学习javaweb,我们首先需要搭建他的开发环境- tomcat介绍- tomcat安装- tomcat使用- idea集成tomcat
2022-04-11 18:48:00
312
原创 SpringBoot集成Kafka
SpringBoot集成Kafka工程搭建SpringBoot集成Kafka配置SpringBoot集成Kafka生产消息SpringBoot集成Kafka消费消息
2022-04-05 19:31:11
18501
1
原创 mysql性能调优之查询优化
我们该如何进行sql优化呢, 首先我们需要知道,sql优化其实主要是解决查询的优化问题,所以我们先从数据库的查询开始入手,下面这幅图显示了查询的执行路径
2022-04-04 19:51:46
1009
原创 你必须会的微服务之Gateway网关
本系列文章将以SpringCloud技术栈进行精讲,全方位剖析讲解SpringCloud技术栈- Gateway简介,入门案例,路由前缀,过滤器
2022-04-03 19:49:15
1123
原创 MySQL性能优化
在进行优化讲解之前,先请大家记住不要听信你看到的关于优化的“绝对真理”,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设在数据库优化上有两个主要方向:即安全与性能。- 安全 ---> 数据安全性- 性能 ---> 数据的高性能访问
2022-04-02 19:51:17
962
2
原创 你必须会的微服务之Feign
微服务已经成当前各大大厂追求的主流技术架构,学习微服务前景非常可观,而SpringCloud已成为主流微服务技术栈。本系列文章将以SpringCloud技术栈进行精讲,全方位剖析讲解SpringCloud技术栈在微服务场景下的实战应用,可以点赞关注,后续持续为大家更新。Spring Cloud Feign知识索引Feign简介入门案例负载均衡请求响应压缩日志级别 1 Feign简介在前面的章节中我们调用微服务都是通过RestTemplate完成,但这种调用方式需要我们编写url,编写
2022-04-01 12:22:43
1063
原创 你现在还不会使用Ribbon嘛?5分钟带你快速了解
Spring Cloud Ribbon1 什么是负载均衡当客户端访问后端服务时,我们可以将服务水平部署多台用以提高整个应用的吞吐量,但是单次请求具体应当访问哪一台服务这就是负载均衡所需要做的事情,它将前端的请求均匀的分布在后端的服务中,在真实场景下由于机器的性能和网络条件不同可以通过配置权重的方式使得请求的分布变得可控,这也是负载均衡所做的事 2 Ribbon简介Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spr
2022-03-26 23:26:37
309
原创 注册中心Consul
写在前面:这是一个微服务专题的文档包括了微服务常用的组件,如果你有疑问的地方,可以在整体文档中找到你想找的答案注册中心知识索引什么是注册中心cap定理注册中心对比服务注册服务调用 1 什么是注册中心微服务互相调用时需要知道被调用服务的具体地址以及它是否健康(服务器是否有响应),这就要求注册中心必须拥有这两项能力:1.允许服务注册的能力,2.监控服务的能力。如果只有一个注册中心,当它由于各种原因无法提供服务时我们的系统也无法正常运行,所以要求注册中心有集群的能力,并且集群之间数据必须保
2022-03-21 20:25:49
1958
原创 SpringCloud微服务架构
写在前面:这是一个微服务专题的文档包括了微服务常用的组件,如果你有疑问的地方,可以在整体文档中找到你想找的答案Spring Cloud简介知识索引微服务概念微服务架构优势Spring Cloud能力Spring Cloud体系 1 微服务概念微服务的概念源于2014年3月Martin Fowler所写的一篇文章Microservices。微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务
2022-03-21 20:24:27
184
原创 你必须会的Docker安装ElasticSearch教程
Docker安装ElasticSearch1 安装说明在平时工作的时候,开发环境大多数会安装单机ElasticSearch,但生产环境基本会安装ElasticSearch集群版,所以我们接下来实现一下ElasticSearch单机安装,下一节实现集群安装,但安装也大多数采用Docker安装。不过中文搜索,会实现分词器集成,可以采用IK分词器。ElasticSearch采用Kibana实现数据可视化分析也是当前主流,所以我们除了安装ElasticSearch和IK分词器外,还需要安装Kibana。安装实
2022-03-15 13:35:05
4968
1
原创 全网最全的Skywalking链路追踪
写在前面:笔者发现目前关于Skywalking的内容很是零散,没有成型的内容,笔者在项目中使用到Skywalking进行埋点分析,下面分三篇来介绍下Skywalking,分别是Skywalking基本知识,Skywalking基于docke安装,SpringBoot工程集成SkywalkingSkywalking介绍1 服务监控三要素服务监控需要满足的三要素分别如下:日志监控指标监控请求链路追踪服务监控只要能满足这三个要素,基本就能实现我们想要的监控效果,我们来看看为什么服务监控需要满足这
2022-03-11 17:17:55
12684
3
原创 你不知道的分布式锁+分布式事务面试题
分布式锁+分布式事务面试题什么是分布式锁? 在分布式系统之间,保证某些系统资源同步访问的一种方式。 如: 减库存的接口 多应用访问时都要对库存数据做操作,可能会造成超卖问题 可以通过分布式锁解决。分布式锁的使用场景?库存操作积分操作钱包操作能否基于JDK提供的锁实现分布式锁?JVM锁无法解决: 因为对应的服务会做集群分布式锁有哪些实现方式? 基于数据库实现可以通过数据库的悲观锁 (行锁)实现,在查询库存数量用于修改时,在select语句后加上 for update
2021-11-18 00:39:23
2894
1
原创 数据库规范设计说明书
写在前面:之前有很多朋友问过我,就是关于数据库这一块设计规范需要注意一些什么,其实对于三范式,五大约束,我们其实正常设计表,基本上上默认都会满足这些条件,下面说下除了这个之外的东西1.建表规约**【强制】**表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是tinyint(1)( 1表示是,0表示否)。说明:任何字段如果为非负数,必须是无符号。正例:表达逻辑删除的字段名is_deleted,1 表示删除,0 表示未删除。**【强制】**表名、字段名必须使用小写字母或数字,
2021-11-18 00:31:36
582
原创 线程创建的方式具体有哪几种?
关于这个问题有很多种说法,我觉得都不对,下面我说下自己的看法线程创建的方式具体有哪几种?这要从不同的角度来看,从Oracle官方的描述,通常我们可以分为两类,也就是thread和runnable,但是准确的来讲,创建线程只有一种方式,那就是构造thread类,而实现线程执行单元有两种方式:一种是实现runnable接口的run方法,并把runnable实例传给Thread类,一种是重写Thread的run方法(我们可以通过线程池来创建,但是线程池的本质也是在threadfactory里面new了一个t
2021-11-18 00:23:22
508
原创 spring bean 循环依赖问题
spring bean 循环依赖问题,在本地环境可以,测试环境报循环依赖问题解决办法:去循环依赖@LazyInitializingBean 时,从 context 中获取@PostConstruct 去设置 bean 依赖
2021-11-11 12:18:46
262
1
原创 Springsecurity使用浏览器登录失败返回302(跨域问题),前后端分离
问题:在使用Springsecurity时使用postman访问登录失败能得到自定义错误信息401,但是使用浏览器访问的时候,当登录成功时能正常进入自定义配置类,但是失败是直接给浏览器返回一个状态码302,并且通过查看断点并不能进入配置类原因:springsecurity对未认证的访问会默认重定向一个接口,因前后端分离,所以不能实现前端自定义跳转到登陆页面的逻辑,实际修改方案就是后台修改springsecurity框架默认的302执行逻辑。解决方法:实现AuthenticationEntryPoi
2020-06-24 16:29:02
8790
原创 这些springCloud的问题你知道吗?
Eureka和Zookeeper区别?问题回答在分布式领域有一个很著名的CAP定理:C:数据一致性。A:服务可用性。P:分区容错性(服务对网络分区故障的容错性)。Zookeeper取CAP的CP注重一致性,在可用性方面不太好,假如master节点故障,剩余节点会重新leader选举,选举leader的时间太长30~120s,选举期间整个集群都不可用,这就导致在选举期间注册服务瘫痪,漫长选举导致注册不可用,不能容忍。Eureka看明白了这一点,因此在设计时就优先保证可用性。取CAP的AP,注重可用性
2020-06-24 15:50:19
2539
原创 那些你不知道的关于锁的面试题
说一下CAS锁机制?CAS(Compare and Swap 比较并交换),是一种无锁算法,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。CAS算法涉及到三个操作数1.需要读写的内存位置(V)2.进行比较的预期原值(A)3.拟写入的新值(B)如果内存位置V的值与预期原值A相匹配,那么处理器会自动将该位置值更新为新值B,否则处理器不做任何操作。说一下乐观锁和悲观锁的区别?问题
2020-06-23 14:30:06
3585
原创 多线程&并发-实例与解决方案
java中你知道哪些锁?问题回答:乐观锁/悲观锁共享锁/独享锁公平锁/非公平锁互斥锁/读写锁可重入锁自旋锁分段锁偏向锁/轻量级锁/重量级锁辅助理解:Java线程的状态或者生命周期?问题回答:Java的线程状态被定义在公共枚举类java.lang.Thread.state中。一种有六种状态1.新建(NEW):表示线程新建出来还没有被启动的状态,比如:Thread t = new MyThread();2.就绪/运行(RUNNABLE):该状态包含了经典线程模型的两种状态:就
2020-06-23 11:27:24
4798
原创 数据结构&设计模式篇
动态代理有几种实现?java的动态代理技术的实现主要有两种方式:1.JDK原生动态代理2.CGLIB动态代理JDK原生动态代理是Java原生支持的,不需要任何外部依赖,但是它只能基于接口进行代理(需要代理的对象必须实现于某个接口)CGLIB通过继承的方式进行代理(让需要代理的类成为Enhancer的父类),无论目标对象有没有实现接口都可以代理,但是无法处理final的情况。参考:动态代理的几种实现方式及优缺点常见的数据结构有哪些?问题回答:一共八大数据结构分类1.数组2.队列
2020-06-23 10:46:34
3546
原创 java基础高频面试题--集合篇
现在很多面试官喜欢把jvm和jmm的知识都放进java基础来进行面试,后面我写一个专门的专题用来写jvm的东西,目前我们说的java基础基本就是集合,IO,多线程,目前问IO的基本上已经很少了,多的是问NIO这种的,下面主要写的是关于集合方面的:ArrayList和LinkedList区别?问题回答:1.都是List接口的实现类2.ArrayList基于数组,LinkedList基于链表3.ArrayList查询快,增删慢往数组尾部添加元素的效率高,也就是调用add(obj),但是还是比Lin
2020-06-20 11:51:11
2824
全网最全的mysql性能优化
2022-04-04
这个sql怎么优化?
2022-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人