自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

转载 JVM内存结构,Java内存模型 ,Java对象模型

JVM内存结构首先我们要知道jvm的组成:两个子系统(class loader(类加载),Execution engine (执行引擎))两个组件(Runtime data area(运行时数据区),Native Interface (本地接口))再次我们说下jvm运行java的一个大概流程:首先通过编译器把java代码转换成字节码,类加载器再把字节码加载到内存中,将其放在运行时数据...

2020-04-25 16:18:44 145

原创 dubbo服务暴露-远程暴露(三)

说完本地暴露之后,我们说远程暴露,也是面试喜欢问的。我们引用下官网的说法,就是与导出服务到本地相比,导出服务到远程的过程要复杂不少,其包含了服务导出与服务注册两个过程那我们就分开两部分开始叙述服务导出我们debug生成Invoker,我们不说了。自己debug进去,分析就好了,我们主要说这个Exporter<?> exporter = protocol.export(wra...

2020-04-16 10:31:59 202

原创 dubbo服务暴露-本地暴露(二)

本地暴露ServiceConfig类:private void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, List<URL> registryURLs) {...if (!Constants.SCOPE_NONE.toString().equalsIgnoreCase(scope)) { if (!Cons...

2020-04-15 18:49:44 167

原创 dubbo服务暴露(一)

讲服务暴露之前,我们先思考下几个问题:服务暴露都做了哪些事本地暴露和远程暴露的区别为什么需要本地暴露这几个问题,我们我们留在文章的最后总结下。先说一个整体流程,文档是最好的说明:dubbo文档服务提供者暴露一个服务的详细过程文档说我们从ServiceBean开始,OK,那我们就从ServiceBean的继承开始,发现它是实现ApplicationListener,这是spring...

2020-04-15 17:52:47 317

转载 spirngMVC拦截器原理

重要接口及类HandlerExecutionChain类– 由HandlerMethod和Interceptor集合组成的类,会被HandlerMapping接口的getHandler方法获取。public class HandlerExecutionChain { private static final Log logger = LogFactory.getLog(HandlerE...

2020-04-15 11:53:05 146

原创 spirngboot集成dubbo

先看下项目结构消费者和提供者都需要的接口dubbo-interface消费者console1.pom.xml文件引入的jar包:<!-- Dubbo Spring Boot Starter --> <dependency> <groupId>com.alibaba.boot</groupId> ...

2020-04-13 14:55:01 128

转载 线程高频面试题

1、Java中实现多线程有几种方法继承Thread类;实现Runnable接口;实现Callable接口通过FutureTask包装器来创建Thread线程;2、如何停止一个正在运行的线程使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。public class ServerThread extends Thread { //volatile修饰符用来保证...

2020-04-12 09:18:44 142

原创 RocketMq分布式事务

先抛出问题老生常谈的问题:就是A,B在不同的服务器,然后A账户减钱,B账户加钱。因为他们不在同一个事务下,所以,就会出现A减钱,B加钱没成,然后就导致数据不完整。那么RocketMq是如何解决这问题呢采用:最终一致性RocketMq消息中间件把消息分为两个阶段:Prepared阶段和确认阶段Prepared阶段(预备阶段)Prepared阶段(预备阶段)该阶段主要发一个消息到rock...

2020-04-11 20:56:17 203

原创 RocketMq顺序消费

如果要保证顺序消费,那么他的核心点就是:生产者有序存储、消费者有序消费实现原理这里有一点很重要的是:同一个queue,存储在里面的message 是按照先进先出的原则生产端:我们知道生产的message最终会存放在Queue中,生产者发送消息的思路就是:在一个订单操作的过程中,订单产生,订单支付,订单生成,产生的这四个消息,都发送到同一个Queue队列中,那么取消息的时候就可以保证先进先...

2020-04-10 18:39:24 230

原创 RocketMq重试机制

生产者重试我们接着上一篇psringboot集成rocketmq修改发送消息代码,如下 # SendResult sendResult = defaultMQProducer.send(message); SendResult sendResult = defaultMQProducer.send(message,5);我们设置成5毫秒,然后看测试结果org.apache.rocket...

2020-04-10 16:22:39 738

原创 Springboot集成RocketMq

生产者和消费者都需要的jar包 <!-- https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-client --> <dependency> <groupId>org.apache.rocketmq</groupId> ...

2020-04-10 15:30:46 1228 2

转载 对锁以及sychronize的理解

基础知识之一:锁的类型按照其性质分类1)公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。对于Java ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。非公平锁的优点在于吞吐量比公平锁大。对于Synchroni...

2020-04-10 11:19:25 839

转载 RocketMq-消息的投递机制

1.前言RocketMQ的消息投递分分为两种:一种是生产者往MQ Broker中投递一种则是MQ broker 往消费者投递2.RocketMQ的消息模型RocketMQ 的消息模型整体并不复杂,如下图所示:一个Topic(消息主题)可能对应多个实际的消息队列(MessgeQueue)在底层实现上,为了提高MQ的可用性和灵活性,一个Topic在实际存储的过程中,采用了多队列的方...

2020-04-09 15:01:54 834

转载 数据库SQL语句优化----必看推荐

一:基础数据准备DROP TABLE IF EXISTS `tbl_user`;CREATE TABLE `tbl_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `email` varchar(20) DEFAULT NULL, `age` tinyint(...

2020-04-08 15:34:09 165

转载 MyBatis中SQL常用标签

用来循环容器的标签forEachforeach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名,index:集合中元素迭代时的索引open:常用语where语句中,表示以什么开始,比如以’('开始separator:表示在每次进行迭代时的分隔符,close 常用语where语句中,表示以什么结束,...

2020-04-08 09:57:10 507

原创 springBoot集成redis集群

jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency&gt...

2020-04-07 19:14:23 189

转载 redis分布式锁的实现,以及redisson锁

redis分布式锁的实现,原理示例: final static Logger logger = LoggerFactory.getLogger(RedisLock.class); private final String redisLockKey = "REDIS_LOCK_KEY_"; private final long lockTimeOut = 5000; p...

2020-04-07 17:17:33 224

原创 redis 常见的面试题汇总

什么是redisRedis全称Remote Dictionary Server,是一个完全开源免费的,遵守BSD协议,使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、**Key-Value数据库**。它是当前最热门的**NoSql非关系型数据库之一**,也被人们称为数据结构服务器。redis的数据类型有哪些Redis支持五种数据类型:string(字符串),hash(哈希)...

2020-04-07 11:54:33 211

原创 redis AOF和RDB 持久化

redis主要集群模式主从模式一个主,多个从。主机自动将数据的写入操作同步给从机。缺点:难拓展,当主机宕机之后,可能会造成主从数据不一致,并且无法在进行读写数据,从机无法主动变成主机 哨兵模式在主从基础上,添加一个哨兵,来实时监控主从服务器是否正常运行,当主机出现故障的时候,可以将从机转换成主机,缺点:配置复杂,在线扩容较难 cluster集群模式引入主从复制模式,...

2020-04-03 16:37:51 218

原创 nginx 常用功能的配置

404,500,502。。等等错误的返回① 首先需要配置proxy_intercept_errors on;这个配置不一定需要放在http下面,也可以是server下,也可以是server的location下.比如:http { ... proxy_intercept_errors on; }② error_page的设置,直接上代码 #可以是直接对应的外部...

2020-04-03 16:04:33 148

转载 Nginx工作原理、常用命令、安装、配置

Nginx工作原理Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epo...

2020-04-02 11:49:35 414

原创 SpringMVC流程及源代码分析(二)

通过前面一章的分析,我们拿到了HandlerAdapter,然后我们开始进入它的实现类,执行handle(HttpServletRequest request, HttpServletResponse response, Object handler)发现其实际调用类为:RequestMappingHandlerAdapter,我们继续分析:handleInternal(HttpServl...

2020-04-01 15:56:30 172

原创 SpringMVC流程及源代码分析(一)

1.SpringMVC初识流程:用户发送请求至前端控制器DispatcherServletDispatcherServlet收到请求调用HandlerMapping处理,解析请求对应的Handler解析到对应的Handler后,开始由HandlerAdapter适配器处理HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)Controller执行...

2020-04-01 14:31:23 120

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除