- 博客(85)
- 收藏
- 关注
原创 Dubbo服务调用过程 笔记
前面消费者提到过代理对象是通过JavassistProxyFactory 动态生成的,所以当调用sayHelloService.sayHello(name);时,实际上是调用proxy里面的返回的 InvokerInvocationHandler包装过的,基于前面已经包装过的directory,现在就是 InvokerInvocationHandler (MockClust...
2020-03-11 11:31:49 343
原创 Dubbo消费者启动过程 笔记
dubbo源码需要先了解dubbo的SPI机制,官网说明如下http://dubbo.apache.org/zh-cn/docs/source_code_guide/dubbo-spi.html入口 ReferenceBean的afterPropertiesSet(),跳过前面一些检查直接看getObject() if (this.shouldInit()) { ...
2020-03-10 18:49:14 542
原创 Dubbo生产者启动过程 笔记
dubbo源码需要先了解dubbo的SPI机制,官网说明如下http://dubbo.apache.org/zh-cn/docs/source_code_guide/dubbo-spi.htmlspring有个配置接口叫NamespaceHandlerResolver用于实现spring自己的SPI功能,有一个实现类DefaultNamespaceHandlerResolver,会在Spr...
2020-03-10 13:56:51 700
原创 es数组包含查询
es中字段A 值是一个list [a, b, c, d],当入参为[a, b, c, d, e] 或 [a, b, c, d] 就可以匹配到;如果是 [a, b, c] 就匹配不到。该方法比较耗cpu。
2024-09-04 20:17:31 366
原创 Springboot 集成websocket 并支持服务集群
2、新建websocket连接类。3、新建session管理类。5、新建转发消息接收类。
2024-08-13 17:51:14 390
原创 使用Fastjson 序列化对象含有$ref引用解决方法
Fastjson序列化对象成字符串时,如果对象中存在引用关系,例如一个对象的属性引用了另一个对象,那么在序列化过程中,Fastjson会使用。当Fastjson遇到一个已经序列化过的对象时,它会检查该对象是否已经在序列化过程中被引用过。如果是,则不会再次序列化该对象,而是使用。来表示这种引用关系。这样做的目的是为了节省存储空间和提高序列化效率,因为通过引用而不是重复存储相同的数据可以大大减少序列化后的数据大小。来指向之前序列化过的对象。这样可以避免重复序列化相同的数据,从而提高效率。
2024-08-04 10:38:38 330
原创 解决win11拼音输入法占用idea shift+f6重命名
打开“设置”,然后“语言和区域-选项-微软拼音-常规”,滑倒最下面,找到“使用以前版本的微软拼音输入法”的选项,一开始是关闭的,把它打开就可以正常使用shift+f6重命名了。
2024-06-11 09:51:56 595
原创 elasticsearch-head 源码运行
5、找到 elasticsearch/config/elasticsearch.yml 目录下的的配置文件,添加放开跨域配置。6、浏览器打开 elasticsearch-head 地址并连接上es。3、使用cmd 进入 elasticsearch-head 目录。4、依次执行 npm install、npm run start。2、git下载 elasticsearch-head 源码。1、下载安装nodejs。
2024-05-14 17:05:40 238
原创 spring-boot控制bean的创建顺序
3、提前将bean注册为BeanDefinition。2、dependsOn注解(有效)1、order注解(不一定有效)
2024-04-24 11:33:06 372
原创 idea 打jar包依赖不完整
本地仓库有依赖的jar,但是打包时却没有打包进去,原因时本地仓库的jar缺少pom文件,需要创建对应jar的pom文件。
2023-12-26 10:05:37 608
原创 idea debug elasticsearch8.6.2 源码
该版本默认开启了权限,访问localhost:9200需要输入账号密码。打开idea es代码,配置debug参数,ok后运行。2、idea打开项目工程,设置gradle和jdk。1、下载源码 8.6.2 zip包 并解压。然后cmd bug模式启动源码。4、确定后等待初次构建完成。已经成功进idea断点中。5、cmd进入源码目录。在 idea打上断点。
2023-02-27 10:49:57 808
原创 谷歌浏览器使用elasticsearch-head插件
http.cors.enabled 是否支持跨域,默认为false http.cors.allow-origin 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/ http.cors.max-age 浏览器发送一个“预检”OPTIONS请求,...
2023-02-24 15:29:55 1364
原创 ShardingJDBC笔记(未完。。)
1、什么是分库分表? A:把一个数据库该分为多个,把一张表垂直或水平分割。2、为什么要分库分表? A:当我们的请求和数据量越来越大时,受到单机服务器的性能限制和单张表数据量的限制,已经无法满足我们的需求,我们需要多台数据库分散压力,从而提高服务的整体性能。shardingSphere 概览:https://shardingsphere.apache.org/document/legacy/4.x/document/cn/overview/demo项目:pom.xml...
2022-03-27 19:11:10 328
原创 SpringBoot Mybatis starter 原理
spring在启动过程中预留了许多扩展点,方便我们集成自己的插件。参考https://www.jianshu.com/p/1e212eac42acspringboot starter 原理在spring启动时会扫描所有 resources/META-INF 下的 spring.factories 文件,根据文件中的org.springframework.boot.autoconfigure.EnableAutoConfiguration 为key,加载等号右边的自定义类。...
2022-03-27 19:09:40 1392
原创 Dubbo异步调用方式以及在商详中的应用
Dubbo异步调用三种方式从 2.7.0 开始,Dubbo 的所有异步编程接口开始以CompletableFuture为基础基于 NIO 的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小。使用 CompletableFuture 签名的接口需要服务提供者事先定义 CompletableFuture 签名的服务,具体参见服务端异步执行接口定义: public interface AsyncService { Compl...
2022-03-25 17:38:29 2180 1
原创 MapStruct 实现 bean 高效复制
官方文档 :https://mapstruct.org/documentation/stable/reference/html/MapStruct是一个注释处理器,用于生成类型安全、性能良好和无依赖关系的bean映射代码,自动生成get、set方法;maven 依赖<properties> <org.mapstruct.version>1.4.2.Final</org.mapstruct.version></properties>..
2021-04-01 15:01:11 290
原创 Arthas笔记
Arthas 是什么?Arthas 是阿里巴巴中间件团队开源的一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。Arthas 能做什么?1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception2.代码为什么没有执行到?没 commit?分支搞错了?3.无法在预发 debug ,只能通..
2021-03-25 17:07:40 193
原创 StringBoot根据不同环境加载Log4j配置
每个工程都有多个环境,不限于开发rd,测试qa,预发pre,线上online,这些环境对日志记录的需求是不一样的,目前开发中大家为了在开发测试环境能方便看日志,都会开启控制台输出,合并到master时这里难免会出现冲突或者将控制输出代码合并到master,仅仅在线上才会应用,这就需要不同环境有不同的log4j配置,可采取以下方式:##启用配置spring: profiles: active: local1、在application.yml或者application.propertie
2020-12-11 15:57:22 1410
原创 Log4j2 Filter配合ACM(Nacos)实现日志降级
原有日志降级实现方式为使用LogUtil工具类,在工具类中判断ACM状态实现日志降级,缺点很明显,打印日志中的行号是LogUtil方法的行号,而不是原始代码的行号。@Slf4jpublic class LogUtil { public static void logInfo(String format, Object... arguments){ if(!AcmSwitch.logInfoSwitchON){ return; }
2020-12-11 15:51:34 503
原创 CurrentHashMap笔记
数组中的Node类put方法 public V put(K key, V value) { return putVal(key, value, false); } /** Implementation for put and putIfAbsent */ final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) th.
2020-12-10 10:58:32 248
原创 记录一次排查oom
预发环境服务发生oom,乍一看才600多MB就oom?what?why?吓得马上查看了下堆大小发现才给的512MB,真是扣,这个要扩一下。查看dump分析发现是服务接入cat引起的,接了有一段时间了现在才oom,虽然内存配小了,但是还是要确定下加大内存会不会还有oom风险。开始分析是TcpSocketSender中的DefaultMessageQueue占用了大量的内存。在代码中查找:com.dianping.cat.message.io.TcpSocketSender。该
2020-10-28 09:29:38 254
原创 elasticsearch 第三节 特殊字段类型
join类型,父子节点必须在同一个分片#### join类型,父子节点必须在同一个分片DELETE menus_001#举例菜单PUT menus_001{ "settings": { "number_of_replicas": 1, "number_of_shards": 3 }, "mappings": { "properties": { "menuId":{ "type": "integer" }, .
2020-08-30 21:44:50 268
原创 elasticsearch 第三节 mappings和常用字段类型
mappings#创建索引字段映射,_source默认为truePUT shop_001{ "mappings": { "properties": { "shopName":{ "type": "text" }, "createTime":{ "type": "date" }, "city":{ "type": "text" } } }}#查看索.
2020-08-30 21:32:39 342
原创 elasticsearch 第二节 索引数据类型设计
要求字段个数不超1024GET _search{ "query": { "match_all": {} }}#存放一条数据,索引默认创建PUT /product_001/_doc/1{ "goodName":"apple", "createTime":"2020-08-23", "sku":[ "1", "2", "3" ]}#创建分片数和副本数PUT /product_002{ "settings": { "n
2020-08-23 19:35:22 197
原创 elasticsearch 第一节 环境搭建
虚拟机:centerOS7+elasticsearch 7.+kibana 7.+目标:搭建es集群保持es和kibana版本一致本次版本为 7.8.1下载地址:https://www.elastic.co/cn/downloads/es 6.+ 起不能用root账户启动,需要单独创建一个账户。新版es自带jdk,不过最好自行安装es包中对应的jdk版本,并配置环境变量,方便实用一些java命令。下载好后拷贝三台虚拟机,解压编辑配置文件本次三台机器地址:192.16.
2020-08-23 19:25:37 228
原创 docker 入门笔记
安装依赖sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2(以下可以使用阿里云镜像速度快,参考地址:https://blog.csdn.net/DavidSoCool/article/details/102915527)设置docker仓库sudo yum-config-manager...
2020-05-15 09:41:09 241
原创 zookeeper watch 实现原理笔记
zk三种注册监听方式:getData(),exists,getChildren。客户端发送的监听请求会放到队列中(outgoingQueue),队列会有一个 sendThread 处理,sendThread 通过发送 path 路径和 watcher 为 true ,到 server 注册 watch 事件。zk服务端会有一个 WatchManger 该类中有 HashMap<String,HashSet<Watcher>> watchTable ,key为path , Wa
2020-05-09 13:13:41 476
原创 Spring自定义注解实现HandlerInterceptorAdapter 拦截请求
注解类UnLoginAccessAnnotation.javaimport java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;...
2020-05-07 15:36:11 1528
原创 Springboot集成MybatisGenerator
pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav...
2020-04-22 15:38:01 148
原创 Elasticsearch 7.6.2 引入IK Analysis
系统:Cent OS 7Elasticsearch版本 : 7.6.2git地址:https://github.com/medcl/elasticsearch-analysis-ik/tree/masterik analyzer需要和es版本对应,当前master对应es 7.x版本,直接下载最新的就行...
2020-04-22 13:43:34 2270
原创 CentOS 7 部署 Kibana7.6.2
虚拟机版本: CentOS 7JDK版本:1.8(需提前安装好,保证 命令 "java -version" 有输出版本信息)es版本: elasticsearch 7.6.2kibana版本: kibana 7.6.2从官网下载后解压运行,https://www.elastic.co/cn/downloads下面的步骤是官网教程:https://www.elastic.co/...
2020-04-22 13:08:31 1201
原创 CentOS 7 部署 elasticsearch 7.6.2
虚拟机版本: CentOS 7JDK版本:1.8(需提前安装好,保证 命令 "java -version" 有输出版本信息)es版本: elasticsearch 7.6.2从官网下载后解压运行,https://www.elastic.co/cn/downloads下面的步骤是官网教程:https://www.elastic.co/guide/en/elasticsearch/r...
2020-04-20 11:11:11 683
原创 kafka简单调优
生产者1、batch.size:生产者发送多个消息到broker上的同一个分区时,为了减少网络请求带来的性能开销,通过批量的方式 来提交消息,可以通过这个参数来控制批量提交的字节数大小,默认大小是16384byte,也就是16kb, 意味着当一批消息大小达到指定的batch.size的时候会统一发送。2、linger.ms:producer默认会把两次发送时间间隔内收集到的所有Reques...
2020-03-28 21:05:09 425
转载 打不开磁盘“E:\Virtual Machines\CentOS 7 64 位\CentOS 7 64 位-000003.vmdk”或它所依赖的某个快照磁盘。
vmware下启动Centos虚拟机报错虚拟无法打开磁盘 “打不开磁盘“E:\Virtual Machines\CentOS 7 64 位\CentOS 7 64 位-000003.vmdk”或它所依赖的某个快照磁盘。”或它所依赖的某个快照磁盘”原因: 未能锁定文件” 这主要是非正常关虚拟机造成的,具体原因如下:虚拟机为了防止有多虚拟机共用一个虚拟磁盘(就是后 缀为.vmd...
2020-03-16 13:31:24 7205 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人