- 博客(600)
- 资源 (6)
- 收藏
- 关注
转载 一致性哈希算法原理
一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人都知道,memcached服务器端本身不提供分布式cache的一致性,而是由客户端来提供,具体在计算一致性has
2022-03-10 14:42:29 111
转载 系统困境与软件复杂度:为什么我们的系统会如此复杂?
读 A Philosophy of Software Design 有感,软件设计与架构复杂度,你是战术龙卷风吗?01前言Aliware有一天,一个医生和一个土木工程师在一起争论“谁是世界上最古老的职业”。医生说:“上帝用亚当的肋骨造出了夏娃,这是历史上第一次外科手术,所以最古老的职业应该是医生”,土木工程师说:“在创世纪之前,上帝从混沌中创造了天堂与人间,这是更早之前的一次土木作业,所以最古老的职业应该是土木工程”。这时软件工程师拖着键盘走出来说,“那你认为,是谁创造了那片混沌?”..
2022-02-22 11:07:11 203
转载 Angular、React、Vue.js 等 6 大主流 Web 框架都有什么优缺点
在这篇文章中,我们将对这个系列中所提到的每款框架做一个总结,包括我们所认为的强项和弱项。另外,我们为你留下了一些值得思考的问题。我是否需要使用框架?如果不尝试回答这个问题就是我们的失职,这越来越成为社会上某些人的口头禅,在网络平台上的争论也已经发展到犹如不需要额外编写 API 能更简单创建 Web 应用那样的地步。就像本系列中所有的内容一样,我们的回答也大都是依据这些内容。虽然无框架也能正常工作,但是,这也是有代价的。那些主张无框架手写 Javascript 的人,那些通常会被我们认
2021-09-02 17:19:42 853
转载 SpringBoot实现动态增删启停定时任务
在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。查看spring-context这个jar包中org.springframework.schedulin
2021-09-02 16:05:48 410
转载 SpringBoot 集成 WebSocket,实现后台向前端推送信息
前言在一次项目开发中,使用到了Netty网络应用框架,以及MQTT进行消息数据的收发,这其中需要后台来将获取到的消息主动推送给前端,于是就使用到了MQTT,特此记录一下。一、什么是websocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了客户端与服务器全双工通信,学过计算机网络都知道,既然是全双工,就说明了服务器可以主动发送信息给客户端。这与我们的推送技术或者是多人在线聊天的功能不谋而合。为什么不使用HTTP 协议呢?这是因为HTTP是单工通信,通信只能由客户端.
2021-09-02 15:21:13 466
转载 代码规范(Sonar, P3C)
1.SonarLintSonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道下载与安装在需要检测的单个文件或者单个项目上右键 --> Analyze --> Analyze with SonarLint或者选中文件或目录,点击菜单栏 Analyze --> Analyze with SonarLint我们还可以禁用某些规则如果需要同步自定义的规则时,可以绑定到SonarQube..
2021-09-02 13:57:52 1190
转载 几种Java常用序列化框架的选型与对比
一 背景介绍序列化与反序列化是我们日常数据持久化和网络传输中经常使用的技术,但是目前各种序列化框架让人眼花缭乱,不清楚什么场景到底采用哪种序列化框架。本文会将业界开源的序列化框架进行对比测试,分别从通用性、易用性、可扩展性、性能和数据类型与Java语法支持五方面给出对比测试。 通用性:通用性是指序列化框架是否支持跨语言、跨平台。 易用性:易用性是指序列化框架是否便于使用、调试,会影响开发效率。 可扩展性:随着业务的发展,传输实体可能会发生变化,但是旧实体有可能还会.
2021-09-02 13:49:39 374
转载 cgroup 原理分析
原文: https://blog.csdn.net/zhonglinzhang/article/details/64905759一. cgroup 相关概念解释Cgroups提供了以下功能:限制进程组可以使用的资源(Resource limiting ):比如memory子系统可以为进程组设定一个memory使用上限,进程组使用的内存达到限额再申请内存,就会出发OOM(out of memory)进程组的优先级控制(Prioritization ):比如可以使用cpu子系统为某个进程组分配c.
2021-04-29 14:10:40 733
转载 Linux CGroup总结
简介:Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是由Google的工程师在2006年发起(主要是Paul Menage和Rohit Seth),最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词太过广泛,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核...
2021-04-29 13:20:43 287
原创 分布式任务调度平台XXL-JOB
官网: https://www.xuxueli.com/xxl-job/XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。安装:1 初始化“调度数据库” /xxl-job/doc/db/tables_xxl_job.sql 如果mysql做主从,调度中心集群节点务必强制走主库;2 项目(发布 prod 配置文件) 2.1 调度中心集群 (admin) 作用:统一管理任务调度平台...
2021-04-13 14:52:30 368
转载 rocketmq-学习
官网: http://rocketmq.apache.org/入门: http://rocketmq.apache.org/docs/quick-start/gtihub: https://github.com/apache/rocketmq中文文档: https://github.com/apache/rocketmq/tree/master/docs/cn代码样例: https://github.com/apache/rocketmq/blob/master/docs/cn/Rocket
2021-04-01 14:10:29 298
转载 选型必看:RabbitMQ 七战 Kafka,差异立现
作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺..
2021-03-31 17:13:28 200
转载 如何在业务逻辑当中优雅引入重试机制
为什么要引入重试机制我们首先看看正常的业务系统交互流程,就像下面图中所示一样,我们自己开发的系统通过HTTP接口或者通过RPC去访问其他业务系统,其他系统在没出现任何问题的情况下会返回给我们需要的数据,状态为success。但大家在日常的开发工作当中应该碰到过不少这样的问题:自己应用因为业务需求需要调其他关联应用的接口或二方包,而其他应用的接口稳定性不敢过分恭维,老是出一些莫名奇妙的幺蛾子,比如由于接口暂时升级维护导致的短暂不可用,又或者网络抖动因素导致的单次接口请求失败。...
2021-03-23 19:37:26 302
转载 SOLID:面向对象设计的五个基本原则
在程序设计领域,SOLID 是由罗伯特·C·马丁在 21 世纪早期引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,能够使得一个程序员开发一个容易进行维护和扩展的系统变得更加可能。SOLID 是以下五个单词的缩写: Single Responsibility Principle(单一职责原则) Open Closed Principle(开闭原则) Liskov SubstitutionPrinciple(里氏替换原则) ..
2021-03-23 19:15:06 394
转载 30 道 Vue 面试题,内含详细讲解
copy from : https://github.com/fengshi123/blog/issues/141、说说你对 SPA 单页面的理解,它的优缺点分别是什么?SPA( single-page application )仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转;取而代之的是利用路由机制实现 HTML 内容的变换,UI 与用户的交互,避免页面的重新加载。优点:用..
2021-03-23 11:59:56 356
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人