首页
学习
活动
专区
工具
TVP
发布

日常笔记

专栏成员
25
文章
31366
阅读量
12
订阅数
spring boot 启动 VerifyError异常(Unable to load cache item)
java.lang.VerifyError是JVM加载class文件时做字节码校验(bytecode verification)失败时报错的。如果你的class文件是由java源文件通过javac编译出来的,那么基本上不用担心bytecode verification。 如果class文件是由asm、cglib等动态生成出来的或者由其它编译器生成的,那么JVM在校验它的bytecode时就有可能失败。 失败的原因可能是你生成的bytecode有bug,也可能是由于新版本的JVM加入了新的验证条件后导致原来可以通过验证的bytecode现在不能通过了。也可能是asm和cglib的版本冲突导致的
乐事
2021-11-02
3.1K0
DDD 使用Comand的优势
DDD使用Cmd调用服务时经常会被问到与直接的接口调用有什么区别,首先命令模式(Command Pattern)可以轻松的实现AOP的功能,比如日志 事务等,其次命令模式是面向接口编程的可以轻松根据业态场景调用不同的服务可以参考阿里的cola架构和咸鱼的swak架构 。
乐事
2021-09-27
6360
扩展序列化(jackson module)
Module 接口可以自定义实现一些三方类,无默认构造函数的对象,或自定义一些序列化实现。
乐事
2021-07-22
1.4K0
常用协议对比及 RPC 协议新形态探索
协议是 RPC 的基础。数据在连接上以什么格式传输,服务端如何确定收到请求的大小,同一个连接上能不能同时存在多个请求,请求如果出错了应该怎么响应……这些都是需要协议解决的问题。
乐事
2021-06-25
1.5K0
Domain获取spring容器bean
如何让实体Bean获取到Spring容器里的Bean,之前Domain工厂模式手动Set Bean到Domain对象中,偶然记机会看了 apache ISIS框架的代码发现一个神器
乐事
2021-06-24
6710
DDD Command模型
经常会有A.getb().getc().d()的方法调用,有没有什么方法将调用链变短比呢,联想到操作系统是通过消息触发一系列操作,我们也可以模仿这一操作,用事件的方式调用方法,当然也有弊端会让事件到处跑,不知道有哪些方法被调用了,我在写代码的时候就喜欢事件的方式(不过聚合根还是设计的简单一些,不要嵌套太深,从根源上避免这种太深的设计)
乐事
2021-06-01
2.5K0
elastic search 小结
termIndex -》 termdic -》postList -》targetData
乐事
2020-11-30
5380
Elasticsearch 设计模式
1 用回调机制实现了线程在运行过程中抛出未受检异常的统一处理逻辑 public abstract class AbstractRunnable implements Runnable { /
乐事
2020-10-15
6430
Redis 小结
type 表示类型比如 列表 字符串 字典等 ptr 实际对象的地址 encoding 实现对应对象的方式 比如列表对象包含少量元素的时候使用压缩列表作为底层实现 当元素变多时使用双端链表
乐事
2020-08-19
3260
Elasticsearch 优化
1. 尽量将搜索到到字段放到es中 ,给filesystemcache足够到空间,让查询能足够多到走内存
乐事
2020-08-15
3710
redis6.4 多线程
resid要处理命令,则redis必须完整地接收客户端的请求,并将命令解析出来,再将结果读出来,通过网络回写到客户端。整个工序分为以下几个部分:
乐事
2020-08-10
4220
repository 与 dao的区别
Repository是对象的仓库,也就是保存对象的地方,这个仓库就是我们普通意义的仓库,一个真正OO系统,业务层是围绕活动的对象进行,活动的对象是从仓库中获取的,也是通过交给仓库进行对象长久保管,也就是持久化意思,说白了,就是保存到数据库。 而DAO则没有如此OO概念,DAO是Data access Object,DAO中有数据概念,还是没有摆脱数据库的影子。 所以,Repository替代DAO,是OO深入的趋势,但是在具体处理中,由于性能或设计不够周到或者一些事情把握不定,DAO还会继续存在一段时间,属于过渡式消失。 Repository和DAO两个概念比较中发现,Repository是相对对象而言,而DAO是相对数据库而言,只要我们还是使用关系数据库保存对象,也可能这两者都同时存在,因为侧重点不一样,但是可以肯定的是,业务层应该直接和Repository打交道,而不是DAO.
乐事
2020-08-07
6.8K0
领域驱动小节
在应用层(Application)注入 Repository 服务,在 Repository 中转化 Domain 对象,这种方式简单直接,但是很容易将 Repository 的服务做成事务脚本的模式,结果将业务由 Domain 转移到 Repository 的服务中来,做成了伪 DDD 模式。
乐事
2020-08-07
4720
数据库索引
最左匹配 建立这样的索引相当于建立了索引a、ab、abc三个索引。一个索引顶三个索引当然是好事,毕竟每多一个索引,都会增加写操作的开销和磁盘空间的开销。 覆盖(动词)索引。同样的有联合索引(a,b,c),如果有如下的sql: select a,b,c from table where a=xxx and b = xxx。那么MySQL可以直接通过遍历索引取得数据,而无需读表,这减少了很多的随机io操作。减少io操作,特别的随机io其实是dba主要的优化策略。所以,在真正的实际应用中,覆盖索引是主要的提升性
乐事
2020-08-05
7350
Spring cloud k8s 服务发现
spring-cloud-kubernetes 在K8s集群中,没有必要拥有Eureka。K8s中的ETCD拥有所有必要的信息。 您的应用程序将通过指定的K8s服务名称联系K8s API服务器以获取端点信息。 然后可以通过Feign调用返回的服务。 要让DiscoveryClient正常运行,您需要做的 就是将Kubernetes服务名称与spring.application.name属性对齐。
乐事
2020-06-02
6980
K8S 服务暴露方式
如果在Pod中使用hostNetwork:true配置的话,在这种pod中运行的应用程序可以直接看到pod启动的主机的网络接口。在主机的所有网络接口上都可以访问到该应用程序。以下是使用主机网络的pod的示例定义:
乐事
2020-06-02
3.3K0
Context 模式小记
开源项目中常有以 Context 命名的类,如 Spring 的 ApplicationContext、Dubbo 的 RpcContext、Netty 的 ChannelHandlerContext 等等。这些类的作用在于传递流程中所用到的各种数据,故称上下文。除了用来满足功能外,上下文类其实背后还体现了一种设计模式,这种设计模式可以帮助我们提升系统的可扩展性。
乐事
2020-05-12
6890
Mongodb 查询优化
A good writeup of how your index should be created is available in Optimizing MongoDB Compound Indexes. Let's take the main point of the article, where the compound index ordering should be equality --> sort --> range:
乐事
2020-05-10
1.1K0
Netty-ServerBootstrapAcceptor
注册一个Acceptor事件处理器到mainReactor中,Acceptor事件处理器所关注的事件是ACCEPT事件,这样mainReactor会监听客户端向服务器端发起的连接请求事件(ACCEPT事件),Acceptor会将客户端的I/O事件分发到sub Reactor线程池,详见Reactor线程模型。
乐事
2020-05-10
5890
NioEventLoop 是一个线程的线程池
我们现在知道, 当一个新的客户端连接到服务器时, 通过选择器EventExecutorChooser选择一个NioEventLoop为其服务. 那么其实最终是由NioEventLoop封装的Thread为其服务. 在前面我们也说过, 在创建NioEventLoop时会创建线程选择器ThreadPerTaskExecutor, 由这个选择器创建底层的线程.下面我们就来说说这个选择器.
乐事
2020-05-10
8710
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档