首页存档202009
  • 如何设计一个简单的消息中间件

    ​前言我们日常开发当中需要用到消息中间件的场合很多,我们或许也用到了形形色色的消息中间件产品,有老牌的ActiveMQ、RabbitMQ,炙手可热的Kafaka,还有阿里研发的Notify、MetaQ、RocketMQ等等,但反过来思考一下,如果让我们自己来设计一个消息中间件,需要考虑哪些方面的问题,需要有什么样的特性来满足实际业务生产的需要呢?下面就这个问题展开讨论。消息队列应该有什么样的特性很…
  • Canalv1.1.4版本搭建HA集群

    前提Canal上一个正式版是于2019-9-2发布的v1.1.4,笔者几个月前把这个版本的Canal推上了生产环境,部署了HA集群。过程中虽然遇到不少的坑,但是在不出问题的前提下,Canal的作用还是非常明显的。上周的一次改造上线之后,去掉了原来对业务系统订单数据通过RabbitMQ实时推送的依赖,下游的统计服务完全通过上游业务主库的binlog事件进行聚合,从而实现了核心业务和实时统计两个不同的…
  • 熟练剖分(tree) 树形DP

    熟练剖分(tree)树形DP题目描述题目传送门分析我们设\(f[i][j]\)为以\(i\)为根节点的子树中最坏时间复杂度小于等于\(j\)的概率设\(g[i][j]\)为当前扫到的以\(i\)为父亲节点的所有儿子最坏时间复杂度小于等于\(j\)的概率之和因为每遍历到一个新的节点,原来的\(g\)数组中的值就要全部更新,因此我们压掉第一维下面我们考虑转移对于当前枚举到的某一个节点,我们用三重循环分…
  • 会话技术之Cookie

    会话技术之CookieCookie详解国际惯例,学什么之前都得HelloWorld一下。@Overrideprotectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//设置编码resp.setContentType("text/html;charset=…
  • 使用Vagrant 后发现虚拟机磁盘空间爆满的血泪填坑记

     现象: 用了几天vagrant后,发现docker里的Mysql5.7服务无法启动,用dockerps命令,发现mysql一直在反复重启,查看mysqllog发现说磁盘空间不够,导致mysql无法启动。觉得很奇怪,docker里只安装了redis和mysql两个image,也没用几天mysql,怎么会40G的空间都满了? 于是一通百度查找,都说是mysql日志过多,…
  • 【干货满满】1.5w字初中级前端面试复习总结

    前言金九银十,又是一波跑路。趁着有空把前端基础和面试相关的知识点都系统的学习一遍,参考一些权威的书籍和优秀的文章,最后加上自己的一些理解,总结出来这篇文章。适合复习和准备面试的同学,其中的知识点包括:JavsScript设计模式Vue模块化浏览器HTTP前端安全JavaScript数据类型String、Number、Boolean、Null、Undefined、Symbol、BigInt、Obje…
  • 【小白学PyTorch】6 模型的构建访问遍历存储(附代码)

    文章转载自微信公众号:机器学习炼丹术。欢迎大家关注,这是我的学习分享公众号,100+原创干货。文章目录:目录1模型构建函数1.1add_module1.2ModuleList1.3Sequential1.4小总结2遍历模型结构2.1modules()2.2named_modules()2.3parameters()3保存与载入本文是对一些函数的学习。函数主要包括下面四个方便:模型构建的函数:add…
  • 当年偶然发现的 Java Bug(JDK 9及之前仍未修复)

    背景15年在中信银行做持续集成时,由于当时的项目是基于三方采购的Java配置开发平台做的,平台自己基于Ant插件实现了增量和热部署。其中有几个项目在持续集成部署时,经常发现Linux平台部署成功后(Windows不会出现,Linux也是偶发现象),新版本代码并没有生效(反编译class)。起初我是在本地windows上跟踪调试基于Ant插件的代码,但始终重现不了(最后测试发现Windows无此Bu…
  • 详细分析栈和队列的数据结构的实现过程(Java 实现)

    目录栈和队列的数据结构的实现过程(Java实现)栈的数据结构的实现栈的基础知识回顾栈的常见应用基于数组的栈的实现具体代码设计基于数组的栈简单的时间复杂度分析关于栈的一个算法应用:括号匹配队列的数据结构的实现队列的基础知识回顾基于数组的队列的实现具体代码设计基于数组的队列的简单时间复杂度分析循环队列的实现具体代码设计循环队列的简单时间复杂度分析数组队列和循环队列间的比较栈和队列的数据结构的实现过程(…
  • 最短路径(dijkstra 与 Floyd)

    目录1.如何建图?2.Floyd3.Dijkstra1.如何建图?要跑最短路,首先要有图——鲁迅常用的存储方法有两种,分别是邻接矩阵(用二维数组表示边)和邻接表(模拟链表表示边)两种,他们各有不同的优势和不足:邻接矩阵邻接表使用范围稠密图主要是稀疏图空间耗费n^2(n节点数)理论上是e(e为边条数)实现方式二维数组存储每个节点相连的节点和边权值通常来讲,在数据范围足够小时,我们采用邻接矩阵,而数据…
  • 基于Celery在多台云服务器上实现分布式

    起源最近参加公司里的一个比赛,比赛内容里有一项是尽量使用分布式实现项目。因为项目最终会跑在jetsonnano,一个贼卡的开发板,性能及其垃圾。而且要求使用python?找了很多博客,讲的真的是模棱两可,最后结合官方文档终于啃出来,写出来分享一下。目前本博客的几个要点:使用celery实现分布式结合flask框架使用使用Redis作为broker使用Redis作为backend准备工作安装环境需要…
  • 分布式事务和分布式hash

    分布式事务是什么?分布式事务就是保证各个微服务之间数据一致,本质上就是保证不同数据库的数据一致性。一致性状态包含强一致性,任何时刻,所有节点中数据都是一样的弱一致性,数据更新后,只能访问到部分节点数据或者是全部访问不到最终一致性,不保证任何时刻一样,但随着时间推移最终会达到一致性状态因此,存在如下几种方案:2PC,二阶段提交是一种尽量强一致性设计,引入一个事务协调者来协调和管理各参与者的提交和回滚…
  • Python 中的数字到底是什么?

    花下猫语:在Python中,不同类型的数字可以直接做算术运算,并不需要作显式的类型转换。但是,它的“隐式类型转换”可能跟其它语言不同,因为Python中的数字是一种特殊的对象,派生自同一个抽象基类。在上一篇文章中,我们讨论到了Python数字的运算,然后我想探究“Python的数字对象到底是什么”的话题,所以就翻译了这篇PEP,希望对你也有所帮助。PEP原文:https://www.python.…
  • Netty学习笔记-入门版

    目录Netty学习笔记前言什么是NettyIO基础概念说明IO简单介绍用户空间与内核空间进程(Process)线程(thread)程序和进程进程切换进程阻塞文件描述符文件句柄缓存IOLinux网络I/O模型同步、异步、阻塞、非阻塞的概念同步异步阻塞非阻塞总结举个例子I/O模型阻塞I/O(blockingIO)非阻塞I/O(nonblockingIO)信号驱动I/O(signaldrivenIO)I…
  • Spring JPA 定义查询方法

    SpringJPA定义查询方法翻译:DefiningQueryMethods​存储库代理有两种方式基于方法名派生特定域的查询方式:直接从方法名派生查询自定义查询方式​可用选项基于实际存储。但是,必须有一个策略来决定创建什么样的实际查询。下一节将介绍可用的选项。1、查询查找策略​以下策略可用于存储库基础结构来解决查询。使用XML配置,可以通过querylookupstrategy属性在名称空间配置策…
友情链接