- 博客(14)
- 收藏
- 关注
转载 【无标题】
转载 https://doc.embedfire.com/linux/imx6/linux_base/zh/latest/linux_app/makefile/makefile.html。
2023-09-25 11:51:09
56
原创 记一次oracle+mybatis-plus项目的排错经历
记一次oracle+mybatis-plus项目的排错经历用mybatis-plus 附带的code generator,会将数据库Date类型的列,在pojo包下面生成类型为LocalDateTime的属性,非常地坑!!!!在执行查询过程报错。本人在以下代码上打了个断点在dubug过程中发现以下错误很明显,就是数据库中register_date的列无法映射,查看源代码pojo包下的类型发现:改成Date,就解决了...
2021-11-25 17:29:22
459
原创 记一次Mybatis+SpringBoot+Oracle的基本配置
记一次Mybatis+SpringBoot+Oracle的基本配置代码目录:MybatisUtil 和mybatis-config.xml可以暂时忽略package com.example.springbootoracle;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoco
2021-11-21 22:40:26
1234
原创 Dubbo 服务的调用过程
Dubbo 服务的调用过程首先客户端调用接口的某个方法,实际调用的是代理类,代理类会通过 cluster 从 directory 中获取一堆 invokers(如果有一堆的话),然后进行 router 的过滤(其中看配置也会添加 mockInvoker 用于服务降级),然后再通过 SPI 得到 loadBalance 进行一波负载均衡。这里要强调一下默认的 cluster 是 FailoverCluster ,会进行容错重试处理。现在我们已经得到要调用的远程服务对应的 invoker 了,此时根据具体
2021-08-14 13:03:45
535
原创 Dubbo 服务引入
Dubbo 服务引入服务的引入时机有两种,第一种是饿汉式,第二种是懒汉式。饿汉式就是加载完毕就会引入,懒汉式是只有当这个服务被注入到其他类中时启动引入流程,默认是懒汉式。会先根据配置参数组装成 URL ,一般而言我们都会配置的注册中心,所以会构建 RegistryDirectory向注册中心注册消费者的信息,并且订阅提供者、配置、路由等节点。得知提供者的信息之后会进入 Dubbo 协议的引入,会创建 Invoker ,期间会包含 NettyClient,来进行远程通信,最后通过 Cluster 来
2021-08-14 13:02:54
250
原创 Dubbo 服务暴露
Dubbo 服务暴露假如xml方式配置标签dubbo 的 dubboBeanDefinitionParser解析器解析标签application registry protocal标记后的东西会解析成一个对应config对象Service不直接解析成config而是serviceBean具体流程:Spring IOC容器刷新完成后回调onApplicationEvent 方法,启动服务暴露如果不是延迟暴露,并且还未被暴露过,并且支持暴露的话就执行export 方法,具体会调用doExport(
2021-08-14 13:02:23
118
原创 Explain 语句和索引
Explain 语句和索引select_type列:SIMPLE:简单的select 查询,查询中不包含子查询或者UNIONPRIMARY: 查询钟包含复杂的子部分,最外层查询则被标记为SUBQUERY: 在SELECT或WHERE列表中包含了子查询DERIVED: 在FROM列表钟包含的子查询被标记为,MYSQL会递归执行这些子查询,把结果放在临时表里UNION: 若第二个SELECT出现在UNION 之后,则被标记为UNION若UNION包含在FROM子句的子查询中,外层SELECT将被
2021-08-14 12:59:35
149
原创 ArrayList 的数组为什么修饰成tansient
ArrayList 的数组为什么修饰成tansientArrayList底层是基于动态数组实现的,数组的长度是动态变化的,初始化长度为0,当添加一个元素的时候,数组的长度就会发生变化(不得不说,开发人员对内存优化的很到位)。可以看到elementData数组是transient修饰的,而被transient` 修饰的变量不会被序列化。而对象的序列化和反序列化是通过调用方法 writeObject() 和 readObject() 完成,我们发现,ArrayList 自己实现这两个方法假如element
2021-08-09 22:31:23
517
原创 RabbitMQ
RabbitMQ:Server: 又称Broker,接受客户端的连接,实现AMQP实体服务。Connection: 连接,应用程序与Broker 的网络连接TCP/IP 三次握手,四次挥手。Channel: 网络信道,几乎所有的操作都在Channel 中进行,Channel进行消息读写,客户端可以建立多个Channel,每个Channel 代表一个会话任务。Message: 消息,服务与应用程序之间传送数据,由Properties 和Body组成,Properties可对消息进行修饰,比如消息的优
2021-08-09 22:30:18
149
原创 rpc框架项目实现细节
rpc框架项目实现细节概述:参考相关博客和dubbo的文档书籍,编写一个简易的rpc框架。学习远程服务调用的基本原理,像dubbo一样,只需要引用一个接口就可以调用远程服务,如:通过传输代理(Proxy)对象获取相应的代理方法,然后服务端接受到传过来的对象以后进行本地的反射调用。需要自定义传输协议(一个对象)来封装传输的内容,比如:接口名字,待调用方法的名称,一些方法的参数,参数类型等等。其中可能出现的一些问题,需要利用序列化机制,把传输的对象序列化成二进制流进行传输,其中对不同序列化器的选取也会造.
2021-08-07 16:11:48
324
原创 并发数据库读写锁
并发数据库读写锁Mysql 当前读,快照读,MVCC当前读:select…lock in share mode (共享读锁) select…for update update , delete , insert当前读, 读取的是最新版本, 并且对读取的记录加锁, 阻塞其他事务同时改动相同记录,避免出现安全问题。例如,假设要update一条记录,但是另一个事务已经delete这条数据并且commit了,如果不加锁就会产生冲突。所以update的时候肯定要是当前读,得到最
2021-07-17 12:21:56
163
1
原创 Explain 语句
Explain 语句和索引table列:表示当前检索的是哪张表,<derived 2>意思是:先执行衍生的临时表(select t3.id from t3 where t3.other_col = ’ ')select_type列:SIMPLE:简单的select 查询,查询中不包含子查询或者UNIONPRIMARY: 查询钟包含复杂的子部分,最外层查询则被标记为SUBQUERY: 在SELECT或WHERE列表中包含了子查询DERIVED: 在FROM列表钟包含的子查询被标记为
2021-07-17 12:17:54
836
2
转载 RabbitMq 踩坑记录
RabbitMq 踩坑记录参考:https://www.bbsmax.com/A/KE5Qy4y5LG/问题: 无限循环打印出错日志:Caused by: org.springframework.amqp.AmqpException: No method found for class [Bat org.springframework.amqp.rabbit.listener.adapter.DelegatingInvocableHandler.getHandlerForPayload(Delega
2021-06-19 14:23:25
179
原创 windows10_intellij本地访问虚拟机ubuntu16.04的Hadoop的实现Demo
win 10_intellij本地实现对虚拟机ubuntu16.04的Hadoop-2.7.7的访问Demo本人初学hadoop,大数据这块实属萌新小白,今天开始慢慢写点hadoop 学习博客,不是教程,只是希望能逐步总结一些学习过程中失败碰壁的经验,给后面的学习道路打下一些基础,争取不要再犯重复类似的错误。如有大佬能抽空指点,本人更是万分感谢。经过查阅资料和不断尝试,终于实现了在本地idea intellij环境远程访问虚拟机hadoop。本文的前提是hadoop已经在vm中部署成功了,详细过程可以
2020-06-29 22:41:00
493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人