![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式系统
aa1215018028
这个作者很懒,什么都没留下…
展开
-
分布式系统架构常见知识点梳理
这篇文章主要是说在进化的过程中可能会遇到的问题以及如何去解救这些问题。一、客户端缓存优化1、添加CDN缓存CDN 缓存也叫作网络访问的“第一跳”,用户请求先到达的是互联网网络服务商的机房。在机房里面部署 CDN 服务器,提供缓存服务。缓存了一些静态资源。如果存在用户请求的内容,直接通过CDN进行返回;没有的话继续向下请求2、正向代理缓存正向代理缓存保存在客户端,代理客户端访问互联网,比如访问谷歌,直接访问不到,我们就可以使用一个代理服务器,将请求转发给代理服务器,代理..原创 2020-10-26 10:54:06 · 2344 阅读 · 0 评论 -
缓存穿透-缓存击穿-缓存雪崩详解
redis 在项目中用的话,主要就是用作缓存了既然用作缓存,那就肯定会有 缓存穿透/缓存击穿/缓存雪崩 的问题这篇文章就来说说,遇到这种情况时,该如何去处理缓存穿透首先咱们搞明白什么是缓存穿透?这三个词这么像,得把概念搞清楚不是其实只是从字面意思上来看的话,大概也能知道一点儿,缓存穿透嘛,就是直接穿过了缓存,将请求打到了数据库上面去一般情况下,去查询数据的话,缓存里面应该都是有的,但是防不住黑客呀,如果黑客请求查询的是数据库里面根本不存在的数据,数据库里面都没有的数据,缓存里面肯定也原创 2020-10-14 10:08:59 · 804 阅读 · 0 评论 -
分布式锁常见实现方法
一. 概述1.1 引言当前参与的项目中会遇到一些线程安全问题,由于业务是多节点部署的,Java的单机的并发同步手段synchronized和java.util.concurrent包已经不太够用了,这个时候我们需要分布式锁来保证线程安全问题,所以这里学习总结了几种分布式锁的实现思路。分布式的CAP理论告诉我们任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。一般情况下,原创 2020-09-27 17:46:06 · 243 阅读 · 0 评论 -
Netty内存管理详解
前言正是Netty的易用性和高性能成就了Netty,让其能够如此流行。而作为一款通信框架,首当其冲的便是对IO性能的高要求。不少读者都知道Netty底层通过使用Direct Memory,减少了内核态与用户态之间的内存拷贝,加快了IO速率。但是频繁的向系统申请Direct Memory,并在使用完成后释放本身就是一件影响性能的事情。为此,Netty内部实现了一套自己的内存管理机制,在申请时,Netty会一次性向操作系统申请较大的一块内存,然后再将大内存进行管理,按需拆分成小块分配。而释放时,Nett原创 2020-09-27 17:19:16 · 1803 阅读 · 4 评论 -
Kafka原理详解
为什么需要消息队列周末无聊刷着手机,某宝网APP突然蹦出来一条消息“为了回馈老客户,女朋友买一送一,活动仅限今天!”。买一送一还有这种好事,那我可不能错过!忍不住立马点了去。于是选了两个最新款,下单、支付一气呵成!满足的躺在床上,想着马上有女朋友了,竟然幸福的失眠了…… 第二天正常上着班,突然接到快递小哥的电话:小哥:“你是xx吗?你的女朋友到了,我现在在你楼下,你来拿一下吧!”。我:“这……我在上班呢,可以晚上送过来吗?“。小哥:“晚上可不行哦,晚上我也下班了呢!”。于是两个人僵持了很久……最后小原创 2020-09-27 09:55:16 · 335 阅读 · 0 评论 -
Java线程池的理论与实践
前段时间公司里有个项目需要进行重构,目标是提高吞吐量和可用性,在这个过程中对原有的线程模型和处理逻辑进行了修改,发现有很多基础的多线程的知识已经模糊不清,如底层线程的运行情况、现有的线程池的策略和逻辑、池中线程的健康状况的监控等,这次重新回顾了一下,其中涉及大量java.util.concurrent包中的类。本文将会包含以下内容: Java中的Thread与操作系统中的线程的关系 线程...原创 2018-09-22 14:57:16 · 186 阅读 · 0 评论 -
Californium 开源框架分析
引言物联网时代,所有设备都可以接入我们的互联网。想想看只要有一台智能手机,就可以操控所有的设备,也可以获取到所有设备采集的信息。不过,并不是所有设备都支持HTTP协议的,而且让设备支持HTTP协议也不现实,因为对于设备来说,这个协议太重了,会消耗大量的带宽和电量。于是CoAP协议也就运应而生了,我们可以把它看为超简化版的HTTP协议。而Californium框架,就是对CoAP协议的Java实...原创 2018-10-31 11:56:13 · 1629 阅读 · 1 评论 -
joda dateTime简单用法
我们在编写应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。joda-dateTime 可以解决1、DateTime 它以毫秒级的精度封装时间上的某个瞬间时刻。DateTime 始终与 DateTimeZone 相关,如果您不指定它的话,它将被默认设置为运行代码的机器所在的...原创 2018-11-08 10:57:57 · 1733 阅读 · 0 评论 -
springboot整合最新版dubbo以及dubbo-admin的安装
一、安装前准备 由于dubbo被阿里捐献给了apache,这次安装admin时,参考网上的资料,地址还是停留在之前的链接,踩了不少坑,这里记录下。 dubbo-admin下载地址: 地址一:https://github.com/apache/incubator-dubbo/releases 该地址2.6版本以上的包中没有dubbo-admin ,2.5x版本的有 ...原创 2019-04-30 19:58:26 · 748 阅读 · 0 评论 -
更好的使用JAVA线程池
这篇文章结合Doug Lea大神在JDK1.5提供的JCU包,分别从线程池大小参数的设置、工作线程的创建、空闲线程的回收、阻塞队列的使用、任务拒绝策略、线程池Hook等方面来了解线程池的使用,其中涉及到一些细节包括不同参数、不同队列、不同拒绝策略的选择、产生的影响和行为、为更好的使用线程池奠定知识基础,其中值得注意的部分我用粗体标识。Doug LeaExecutorService基于池...原创 2018-09-22 14:53:01 · 192 阅读 · 0 评论 -
Spring集成redis(SSM框架)
一、本地安装 redis(windows)1、 下载redis压缩包 下载地址:https://github.com/MicrosoftArchive/redis/tags2、解压到对应目录:3、双击redis-server.exe启动redis,双击redis-cli.exe操作redis命令。启动成功页面如上图,至此redis安装完毕。若不能正确安装还请读...原创 2018-09-26 20:42:37 · 219 阅读 · 0 评论 -
微服务架构-分布式事务详解
根据微服务架构的鼻祖 Martin Fowler 的忠告,微服务架构中应当尽量避免分布式事务。然而,在某些领域,分布式事务如同宿命中的对手无法避免。在工程领域,分布式事务的讨论主要聚焦于强一致性和最终一致性的解决方案。典型方案包括:两阶段提交(2PC, Two-phase Commit)方案。 eBay 事件队列方案。 TCC 补偿模式。 缓存数据最终一致性。一致性理论分布...原创 2018-07-22 20:11:53 · 2278 阅读 · 0 评论 -
微服务--分布式事务的实现方法及替代方案
概念澄清事务补偿机制: 在事务链中的任何一个正向事务操作, 都必须存在一个完全符合回滚规则的可逆事务.CAP理论: CAP(Consistency, Availability, Partition Tolerance), 阐述了一个分布式系统的三个主要方面, 只能同时择其二进行实现. 常见的有CP系统, AP系统.幂等性: 简单的说, 业务操作支持重试, 不会产生不利影响. 常见的实现...原创 2018-07-22 20:13:38 · 185 阅读 · 0 评论 -
2PC/3PC到底是啥
讨论提到2PC/3PC首先想到的是它是一致性协议,而且经常把它和Paxos协议放在一起比较,并且经常看到这样的说法"世上只有一种一致性算法,那就是Paxos",2PC/3PC并不是严格意义上的一致性协议,很少被用在处理一致性上;但另一方面又经常看到2PC/3PC和分布式事务放在一起讨论,并且大部分的关系型数据库通过两阶段提交(2 Phase Commit 2PC)算法来完成分布式事务。先大...原创 2018-07-22 20:15:21 · 7918 阅读 · 0 评论 -
分布式锁的实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...原创 2018-07-22 20:17:08 · 333 阅读 · 0 评论 -
Go 语言开发必须知道的 17 种利器
本期为大家精选了码云上优秀的 Go 语言开源项目,涵盖了文件服务系统、Web 开发框架、游戏服务器开发框架、API 工具、验证码、数据库、爬虫工具、端口转发工具等各个方面,希望能够给大家带来一点帮助:)1、项目名称:分布式文件服务项目简介:golang 基于 gridFs 的分布式文件服务,其支持:POST GET 上传 图片大小控制 文件下载,秒传,转正处理等。项目地址:htt...原创 2018-08-15 11:33:21 · 8212 阅读 · 0 评论 -
10分钟了解TiDB
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一...原创 2018-08-03 14:50:17 · 4110 阅读 · 1 评论 -
Raft协议详解
raft协议小结1、raft协议是什么? 分布式系统之于单机系统,优势之一就是有更好的容错性。比如,一台机器上的磁盘损坏,数据丢失,可以从另一台机器上的磁盘恢复(分布式系统会对数据做备份) 比如,集群中某些机器宕机,整个集群还可以对外提供服务 这是如何做到的?比较容易的一个想法就是备份(backup)。一个系统的工作模是:接受客户端的command,系统进行处理,将处理的结果返回...原创 2018-08-03 15:02:07 · 868 阅读 · 0 评论 -
常用物联网应用协议汇总
本文罗列下市面上物联网通信中的各类消息技术-即工作在网络通信的应用层协议,总结下它们各自特点、特定的物联网应用场景等。这类协议都直接用于在无线或有线网络环境下的设备之间、人与设备之间的通信,物联网开发者都会与这些协议打交道。物联网联接的问题空间上图为物联网联接的问题空间,其中物联网的通信环境有Ethernet, Wi-Fi, RFID, NFC(近距离无线通信), Zigbee, ...原创 2018-08-20 14:00:24 · 747 阅读 · 0 评论 -
ActiveMQ集群搭建详解
ActiveMQ的集群 内嵌代理所引发的问题:消息过载 管理混乱如何解决这些问题——集群的两种方式:Master slave Broker clustersActiveMQ的集群有两种方式: MASTER/SLAVE模式 Cluster模式 Pure Master Slave Pure master slave的工作方式: ...原创 2018-09-14 12:13:20 · 4540 阅读 · 0 评论 -
分布式系统session一致性的问题
session的概念什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放...原创 2018-07-22 20:09:27 · 178 阅读 · 0 评论