
分布式微服务系列
文章平均质量分 86
114564675411
morning sunshine
用心记笔记。
展开
-
实现分布式锁的三种方式
引言:很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的东西也是一样的和Java多线程相关的!做好准备,马上开车!学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。在学习Java的过程中会遇到各种各...原创 2022-03-26 17:23:10 · 3360 阅读 · 0 评论 -
Zookeeper学习笔记
1)Zookeeper是什么zookeeper,它是一个分布式服务框架,是大数据中的重要组件,它是一个具有高吞吐量的分布式协调系统,它的主要作用是为分布式系统提供协调服务,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。Dubbo官方推荐使用zookeeoer作为注册中心,注册中心负责服务地址的注册和查找,相当于目录服务。什么是注册中心?举个简单的例子 ,就像字典目录 ,你要查个字, 找到目录, 然后找到对应的页, 然后字就找到了。zk也是一个意思,把你要注册的服务给..原创 2022-03-26 17:11:00 · 5129 阅读 · 0 评论 -
zookeeper的leader选举机制
什么是zxid和myid?zxid:zookeeper为了保证数据的有序性,会给每一个写操作的数据,编写一个全局唯一的zxid.zxid是一个64位的数字:前32位会是由当前节点参与的选举次数决定,后32位是存储数据的全局唯一id。因为先生成的节点值较小、后生成的节点值较大的特点,故而 后存储的数据的zxid 一定大于 先存储的数据的zxid。myid:myid的值是zoo.cfg文件里定义的server.A项A的值,Z...原创 2022-03-26 17:02:41 · 4066 阅读 · 2 评论 -
RabbitMQ学习笔记
1. 什么是MQ?MQ全称为Message Queue,也就是消息队列,是应用程序和应用程序之间的通信方法。MQ能用来干什么?在微服务盛行的当下,MQ被使用的也是越来越多,一般常用来进行业务异步解耦、解耦微服务、流量削峰填谷、消息分发。2. RabbitMQ介绍.RabbitMQ是mq消息队列中的一个产品。MQ的产品:activeMQ -- RocketMQ -- RabbitMQ -- Kafka(大数据领域)RabbitMQ的使用场景:MQ适用于一般的项目,数据量不是原创 2022-03-25 22:50:59 · 424 阅读 · 0 评论 -
Redis学习笔记
1)Redis概述在传统的Web应用中,广泛使用的是关系型数据库,因为那时候基本上访问量和并发量不高,而在后来,随着访问量和并发量的提升,使用关系型数据库的Web应用多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。为了克服这一问题,NoSQL非关系型数据库应运而生,它同时具备了高性能、可扩展性强、高可用等优点。Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI编码、 C语言编写的开源、包含多种数据...原创 2022-03-25 21:35:13 · 3871 阅读 · 0 评论 -
长连接与短连接的区别
4)System.in.read(); 该语句的意思:保证当前程序不会停止。 System.in.read();5)多模块的Git的提交: 在父模块直接右键新建一个ignore忽略文件,提交git的时候直接提交最外层的父模块就行了 ; Idea提交Git的步骤 :1. 创建仓库 2. add 3. commit6)Controll...原创 2020-01-08 17:15:29 · 4327 阅读 · 0 评论 -
HTTP通信与RPC通信的概念和区别
HTTP通信与RPC通信的概念和区别:分布式通信的两种方式:HTTP通信(SpringCloud微服务)与RPC通信(Dubbo)。HTTP首先来回顾一下计算机网络的七层协议:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层TCP属于传输层协议HTTP是建立在tcp之上的应用层协议SOCKETsocket是针对tcp或udp的具体接口实现,提供了在传输层进行网络...原创 2020-01-07 22:59:42 · 3478 阅读 · 0 评论 -
es对查询结果的排序
es查询时的自定义排序和过滤:1)排序核心:sort字段指定排序;1、sort字段指定排序,倒序:“sort”: { “tftxtime”: { “order”: “desc” }}查询条件格式如下:{ "query": { "bool": { "must": [], "must_not": [{ "term": { "flow_yh_yh_...原创 2020-01-07 22:58:54 · 17930 阅读 · 0 评论 -
7_RabbitMQ
RabbitMQ1. MQ是干什么的?MQ:使用场景在我们秒杀抢购商品的时候,系统会提醒我们稍等排队中,而不是像几年前一样,页面直接卡死或报错给用户。 像这种排队结算就用到了消息队列机制,放入通道里面一个一个结算处理,而不是某个时间断突然涌入大批量的查询新增等操作直接把数据库给搞宕机掉, 所以RabbitMQ的本质上起到的作用就是:削峰填谷,为业务保驾护航。2. Rabbit...原创 2020-01-08 17:06:36 · 526 阅读 · 0 评论 -
4_Zookeeper
Zookeeper1)Zookeeper是什么 zookeeper,它是一个分布式服务框架,是大数据中的重要组件,它是一个具有高吞吐量的分布式协调系统,它的主要作用是为分布式系统提供协调服务,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 简单来说: zookeeper = 文件系统 + 监听通知机制 2)Zookeeper主要用来干嘛? 假设我们的程序是分布...原创 2020-01-08 17:13:47 · 171 阅读 · 0 评论 -
MyCat数据库集群
MyCat数据库集群为什么要用MyCat? 在项目开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,对数据库的自身进行优化也是非常重要的。 主从、分表分库等都是系统发展遇到的问题。而Mycat是一个广受好评的数据库中间件。 什么是MyCat:一、MyCat简单介绍 MyCat是一个开源的分布式数据库系统,前端用户可以把它看作是一个数据库代理(类...原创 2020-01-07 23:00:16 · 250 阅读 · 0 评论 -
5.5_es的查询
专题系列—es的查询:1)term 查询:(精确查找)什么是term查询: term查询类似于mysql中的 = 判断. 需要精确查找时,使用term。eg:{ "query": { "term": { "province": { // 字段名 "value": "日本省" //...原创 2020-01-08 17:14:46 · 417 阅读 · 0 评论 -
6_SpringCloud以及它的六大组件
SpringCloud一,SpringCloud概述:1)SpringCloud是什么?SpringCloud是什么? 答:Spring Cloud是一个微服务框架的规范,而微服务是一种架构模式,将一个完整的项目根据不同的业务模块拆分成多个小的项目,即,服务模块,每个服务模块独立的运行在一个tomcat容器中,每个服务模块甚至可以有自己独立的数据库。2)SpringCloud有哪些特点...原创 2020-01-08 17:07:06 · 8355 阅读 · 0 评论 -
3_Dubbo
Dubbo1)分布式通信的两种方式: 在分布式架构中,模块之间进行通信、互相调用的两种方式:RPC通信、HTTP通信;RPC通信的效率要高于HTTP通信。(详情看优快云)1)图解分布式架构: 特点:将项目根据不同的功能和应用场景划分为不同的独立的模块,各个模块之间可以进行互相的调用。(针对负载较大的模块,可以给它加上集群,再利用负载均衡的策略,使得每个服务器的负载都差不多,以解决...原创 2020-01-08 17:12:50 · 115 阅读 · 0 评论 -
Redis-哈希槽
Redis-哈希槽Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。哈希槽的用途: Redis 集群中内置了 16384 个哈希槽,集群的每个节点分管其中的一部分hash槽。 当需要在 Redis 集群中放置一个 key-value时, redis 会先根据CRC16算法计算该key对应的值, 然后用该值对 16384 取模,根据取模后的结果来决定放置哪个槽,...原创 2020-01-07 12:05:07 · 586 阅读 · 1 评论 -
缓存雪崩、缓存穿透、缓存预热、缓存倾斜、缓存穿刺击穿、缓存更新、缓存降级 等
缓存雪崩、缓存穿透、缓存预热、缓存倾斜、缓存穿刺/击穿、缓存更新、缓存降级 等一、缓存雪崩 由于原有的缓存集体性的在同一时间段内过期失效,而新缓存未到期间,所有原本应该访问缓存的请求都去查询数据库了,这会对数据库造成巨大压力,会导致数据库崩掉。 从而形成一系列连锁反应(雪崩),一直造成整个系统崩溃!缓存正常从Redis中获取,示意图如下:[外链图片转存失败,源站可能有防盗链机制,建议将............原创 2020-01-07 23:01:25 · 1592 阅读 · 0 评论 -
5_elasticserch
ElasticSearch:1)什么是es:Elasticsearch 是一个分布式的搜索引擎,底层是基于Lucene,是现今最流行的搜索引擎框架.2)es和lucene的关系. es和lucene最根本的关系就是,es是一个成品,lucene是一个半成品. 1. 用途方面: es可以直接应用于企业级项目, lucene为了搜索引擎底层的建设. ...原创 2020-01-08 17:08:02 · 164 阅读 · 1 评论 -
2_Redis
Redis1. 概述Redis是一个基于内存存储的,NoSql 非关系型数据库 ,存储结构 : key-value和nginx一样,Redis也是基于 多路复用IO的原理 实现的。Redis的特点: 1. 高性能(即,高并发的读写海量的数据). 2. 读写速度极快. 3. 单线程模式. 4. 实现了分布式锁. 5. 不止key-value,R...原创 2020-01-08 17:10:22 · 144 阅读 · 0 评论 -
CICD的概念
CICD的概念1> 持续集成Continuous Integration(CI)2> 持续交付Continuous Delivery(CD)在谈论软件开发时,经常会提到持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)这几个术语。但它们真正的意思是什么呢?概览:工厂里的装配线以快速、自动化、可重复的方式从原......原创 2020-01-07 12:03:20 · 7873 阅读 · 0 评论 -
nginx的6种负载均衡策略
nginx的6种负载均衡策略一、关于Nginx的负载均衡在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。二、Nginx负载均衡策略目前Nginx服务器支持6种方式的分配:轮询默认方式weight权重方式ip_hash依据ip分配方式least_conn最少连接方式...原创 2020-01-07 23:00:48 · 732 阅读 · 0 评论 -
一致性哈希算法
一致性哈希算法 在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述 假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号。 现在,有3万张图片需要缓存,我们希望这些图片被...原创 2020-01-08 17:05:21 · 338 阅读 · 0 评论 -
1_nginx
nginxNginx 是一个高性能的HTTP和反向代理服务器其特点是占有内存少,并发能力强什么是负载均衡:将原先请求集中到单个服务器上的情况跟改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是负载均衡.什么是动静分离:为了加快网站的解析速度,将动态页面和静态页面由不同的服务器来解析.nginx负载均衡常用策略1. 轮询(默认). 每个请求按请求时间,逐个分配...原创 2020-01-08 17:11:22 · 123 阅读 · 0 评论 -
倒排索引的原理
倒排索引的原理:有倒排索引肯定有正向索引,先说一下什么是正向索引: 通俗的来说:正向索引就是通过文档去找关键词,倒排索引就是通过关键词去找文档;正向索引: 假设有5个文件,每个文件都对应一个文件ID,文件的内容被表示为一系列关键词的集合。例如“文档1”经过分词,提取了20个关键词,然后记录每个关键词在文档中的出现次数和出现位置。 得到正向索引的结构如下: ...原创 2020-01-08 17:03:41 · 3646 阅读 · 0 评论