发布于 2020-07-30   7人围观   0条评论
# 如何打日志 ## 记录日志的目的 ### 开发调试 > 目的是开发期调试程序使用,这种日志量比较大,且没有什么实质性的意义,只应该出现在开发期,而不应该在项目上线之后输出。 * 这类日志不应该出现INFO级别 ### 记录用户行为 >这种类型的日志,记录用户的操作行为,用于大数据分析,比如监控、风控、推荐等等。这种日志,一般是给其他团队分析使用,而且可能是多个团队,因此一般会有一定
查看更多
java    发布于 2020-02-27   47人围观   0条评论

不废话,直接上图对比源码看,明显在并发量很大的时候Hikari 优势明显,有点Fork-Join pool的思想 ## Druid 使用一个可重入锁实现 ![](/api/file/getImage?fileId=5e44ecee65d440566b00087e) ## Hikari 使用一个同步队列、线程局部变量、一个同步队列实现 ![](/api/file/getImage?file

查看更多
发布于 2019-12-02   36人围观   0条评论
> c 语言的库之间互相调用非常容易,通过FFI,其他语言也可以非常容易的和c语言交互,但是如果一个lib是c++写的就比较麻烦了,由于c++支持很多特性,生成符号链接只能被c++自己链接器识别,所以其他语言想要去链接c++的符号很麻烦。 最近想自己实现一个高性能kv db,于是先参考leveldb源码。leveldb 是很多高性能kv db 的前辈,代码非常适合学习和研究。leveldb 采用
查看更多
发布于 2019-11-12   43人围观   0条评论
并发控制,一锁二判三更新,并行查询控超时,乐观悲观要合适 幂等拦截,幂等字段要对齐,上下游要约定好,异常场景防击穿 事务控制,悬挂监控要及时,必须防止空回滚,定是最终一致性 消息使用,一考虑重复投递,二考虑延迟丢失,消息始终是异步 缓存使用,数据过期要控制,缓存击穿要兜底,存储容量要考虑 数据库表,查询执行走索引,数据量大要归档,连接要看机器數 调度任务,调度重叠要避免,捞取数据可配置,熔断处理
查看更多
发布于 2019-04-18   127人围观   0条评论
最近给一个c写的监控程序加个发送数据到kafka的功能,写好之后发生core dump 段错误,根据以前经验这种错误一般是指针引用了不存在的地址,但是具体是哪里出了问题呢,查阅了相关资料,总结了下。 1.设置ulimit ```bash $ulimit -c unlimited ``` 2.运行程序生成dump 文件 ``` 一般dump 文件在可执行文件当前目录,ubuntu比较
查看更多
发布于 2019-04-08   551人围观   0条评论
最近在使用es的时候发现一个奇怪的现象,如果某个key太长了在做聚合的时候不会出现在结果中,如下查询: ```json { "query": { "bool": { "must": [ { "query_string": { "query": "\"[post_Mod] log No: 2\"",
查看更多
docker    发布于 2019-03-30   389人围观   0条评论

Linux的网卡驱动中内含了很多“虚拟网卡”。早先的文章曾经详细分析过tun,ifb等虚拟网卡,类似的思路,在虚拟化大行其道的趋势下,Linux源码树中不断增加对“网络虚拟化”的支持,不光是为了支持“虚拟机”技术,更多的是给了用户和程序员更多的选择。
       这些对网络虚拟化的支持技术包括任何重量级的虚拟化技术,比较重的比如对虚拟机技术的支持,轻量级的则是net namespace技术。近期的工作基于net namespace技术,关于这个技术我也不多说了,它主要是提供了每个namespace独立的协议栈以及网卡,对于网络协议栈以及网卡之外的部分,所有namespace是共享的,这种轻量级的针对网络的虚拟化技术对于模拟多客户端网络连接特别有用而且操作简单。我会单独写一篇文章来展示这种操作。
       如果仅仅为了完成工作,那么我不会写这篇文章,早在去年的时候,我写过一篇关于net namespace的,根据那个里面的step by step,工作就已经可以完成了,并且在去年年末到今年年初,这个工作我们也已经做过了,然而对于学习而言,就不是这样了。学习应该是碰到一点折腾一点,我知道,很多人都知道,现在不比上学那会儿了,我们谁都没有整块的时间系统地进行学习,特别是对于我这种结了婚有了孩子,需要为了还贷款而不再任性的路人丙来讲,更是这样。因此就需要对所碰到的技术有一种可遇而不可求的相见恨晚的感觉,这样就有动力把它吃透了。
       本文中,我想通过几张图来介绍一下Linux中常用的几类和网络虚拟化相关的虚拟网卡,当然,这些虚拟网卡的使用场景并不仅限于net namespace,重量级的虚拟机也可以使用,之所以用net namespace举例是因为它的简单性。总体来说,这些虚拟网卡的原理就摆在那里,具体在什么场景下使用它们,就看你自己的想象力了。

网络虚拟化

总体来讲,所谓的网络虚拟化在本文中指的是主机中的网络虚拟化,侧重于在一台物理主机中,分离出多个TCP/IP协议栈的意思。网络虚拟化可以独立实现,也可以依托别的技术实现。在Linux中,独立的网络虚拟化实现就是net namespace技术,依托别的技术实现的网络虚拟化就是虚拟机技术,我们当然知道,每个虚拟机里面都有自己的协议栈,而这种依托虚拟机技术实现的网络虚拟化可能还要更简单一些,因为宿主机并不需要去“实现”一个

查看更多
发布于 2019-03-28   74人围观   0条评论
> 如果在jdk11 中继续使用classpath 来寻找加载的jar其实和java8 没什么区别,如果使用module path 需要注意以下的点: ---------- * java9 引入了模块化,使用显示依赖的方式,重新定义了class 之间访问和加载方式,因此类加载器也不在是传统双亲委派模式,而是编程如下模式,如下图,保持三级分层类加载器架构以实现向后兼容。但是,从模块系统加载类的
查看更多
发布于 2019-03-26   79人围观   0条评论
![](/api/file/getImage?fileId=5c998c7ef0937c0bd50003a4) ![](/api/file/getImage?fileId=5d18b280f0937c0bd500091c)
查看更多
发布于 2019-02-17   80人围观   0条评论
### 以下代码帮组了解bean的生命周期 ```java @Component public class Test implements InitializingBean, DisposableBean, SmartLifecycle { private boolean run = false; @PostConstruct public void init(){ System
查看更多