自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 3.文档操作

文档操作有哪些?创建文档:POST /{索引库名}/_doc/文档id { json文档 }查询文档:GET /{索引库名}/_doc/文档id删除文档:DELETE /{索引库名}/_doc/文档id修改文档:全量修改:PUT /{索引库名}/_doc/文档id { json文档 }增量修改:POST /{索引库名}/_update/文档id { “doc”: {字段}}

2022-09-29 01:07:04 149

原创 2.索引库操作

索引库操作有哪些?创建索引库:PUT /索引库名查询索引库:GET /索引库名删除索引库:DELETE /索引库名添加字段:PUT /索引库名/_mapping。

2022-09-29 00:41:05 134

原创 安装elasticsearch

安装elasticsearch和ki,以及安装过程中的问题解决

2022-09-27 18:06:58 549

原创 docker常用命令

docker 常用命令

2022-09-02 02:12:25 171 1

原创 1.初识elasticsearch

什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API。

2022-09-02 00:24:13 1154

原创 3.SpringAMQP

多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列声明队列、交换机、绑定关系的Bean是什么?QueueBinding描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列。...

2022-08-29 22:45:00 148

原创 RabbitMQ部署指南

我们在Centos7虚拟机中使用Docker来安装。

2022-08-25 19:45:00 137

原创 2.RabbitMQ-快速入门

基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定。

2022-08-25 13:29:37 92

原创 1.初识MQ

微服务间通讯有同步和异步两种方式同步通讯就像打电话,需要实时响应。异步通讯就像发邮件,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。...

2022-08-01 21:15:00 107

原创 安装Docker

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为 和 三个更新频道。官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。如果之前安装过旧版本的Docker,可以使

2022-07-08 00:27:43 99

原创 5.Docker镜像仓库

搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。官网地址:https://hub.docker.com/_/registry常见镜像仓库服务镜像仓库( Docker Registry )有公共的和私有的两种形式:公共仓库:例如Docker官方的 Docker Hub,国内也有一些云服务商提供类似于 Docker Hub 的公开服务,比如 网易云镜像服务、DaoCloud 镜像服务、阿里云镜像服务等。除了使用公开仓库外,用户还可以在本地搭建私有 Docker Registry。企

2022-07-08 00:27:11 1967

原创 4.Docker-Compose

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下:上面的Compose文件就描述一个项目,其中包含两个容器:DockerCompose的详细语法参考官网:https://docs.docker.com/compose/compose-file/其实DockerCompose文件可以看做是将多个docker run命令写到一个文件,只是语法稍有差异。需求:将之前学

2022-07-06 22:15:00 115

原创 3.Dockerfile自定义镜像

常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。我们以MySQL为例,来看看镜像的组成结构:简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。我们要构建镜像,其实就是实现上述打包的过程。构建自定义的镜像时,并不需要一个个文件去拷贝,打包。我们只需要告诉Docker,我们的镜像的组成,需要

2022-07-02 17:20:54 83

原创 2.Docker的基本操作

首先来看下镜像的名称组成:如图:这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。常见的镜像操作命令如图:需求:从DockerHub中拉取一个nginx镜像并查看1)首先去镜像仓库搜索nginx镜像,比如DockerHub:2)根据查看到的镜像名称,拉取自己需要的镜像,通过命令:docker pull nginx3)通过命令:docker images 查看拉取到的镜像需求:利用docker save将nginx镜像导出磁盘,然后再通过load加

2022-06-29 20:15:00 147

原创 1.初识Docker

Docker 是一个快速交付应用、运行应用的技术微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:依赖关系复杂,容易出现兼容性问题开发、测试、生产环境有差异例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。而Docker确巧妙的解决了这些问题,Docker是如何实现的呢?Docker为了解决依赖的兼容问题

2022-06-08 21:45:00 96

原创 8.公共表

公共表属于系统中数据量较小,变动少,而且属于高频联合查询的依赖表。参数表、数据字典表等属于此类型。可以将这类表在每个数据库都保存一份,所有更新操作都同时发送到所有分库执行。分别在user_db、order_db_1、order_db_2中创建t_dict表:(2)在Sharding-JDBC规则中修改(3)字典操作测试通过日志可以看出,对t_dict的表的操作被广播至所有数据源。字典表已在各各分库存在,各业务表即可和字典表关联查询。定义用户关联查询dao:在UserDao中定义:查看日志,成

2022-06-07 19:45:00 203

原创 10.实现sharding-jdbc读写分离

(2)测试通过日志可以看出,所有写操作落入m0数据源。所有写操作落入s0数据源,达到目标。

2022-06-07 17:59:43 104

原创 9.数据库读写分离

面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。 对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极大的改善。通过一主多从的配置方式,可以将查询请求均匀的分散到多个数据副本,能够进一步的提升系统的处理能力。 使用多主多从的方式,不但能够提升系统的吞吐量,还能够提升系统的可用性,可以达到在任何一个数据库宕机,甚至磁盘物理损坏的情况下仍然不影响系统的正

2022-06-07 17:46:03 195

原创 7.垂直分库

垂直分库是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用。创建数据库user_db在user_db中创建t_user表(2)在Sharding-JDBC规则中修改(3)数据操作通过日志可以看出t_user表的插入,查询操作被落在了m0数据源,达到目标。

2022-06-02 23:30:00 243

原创 6.水平分库

sharding jdbc 水平分库(2)分片规则修改由于数据库拆分了两个,这里需要配置两个数据源。分库需要配置分库的策略,和分表策略的意义类似,通过分库策略实现数据操作针对分库的数据库进行操作。分库策略定义方式如下:Sharding-JDBC支持以下几种分片策略:不管理分库还是分表,策略基本一样。standard:标准分片策略,对应StandardShardingStrategy。提供对SQL语句中的=, IN和BETWEEN AND的 分片操作支持

2022-06-02 22:45:00 264

原创 5.Sharding-JDBC执行原理

Sharding-JDBC执行原理基本概念逻辑表水平拆分的数据表的总称。例:订单数据表根据主键尾数拆分为10张表,分别是t_order_0、t_order_1到 t_order_9,他们的逻辑表名为 t_order 。真实表在分片的数据库中真实存在的物理表。即上个示例中的 t_order_0到t_order_9。数据节点数据分片的最小物理单元。由数据源名称和数据表组成,例:m1.t_order_0。绑定表指分片规则一致的主表和子表。例如:t_order表和t_order_item表,均按

2022-04-02 18:01:33 762

原创 4.Sharding-JDBC-其他集成方式

Sharding-JDBC-其他集成方式Sharding-JDBC不仅可以与spring boot良好集成,它还支持其他配置方式,共支持以下四种集成方式。Spring Boot Yaml 配置定义application.yml,内容如下:server: port: 8080spring: application: name: sharding-jdbc-simple-demo main: allow-bean-definition-overriding: true

2022-04-02 11:16:52 1497

原创 3.Sharding-JDBC快速入门-水平分表

Sharding-JDBC快速入门-水平分表需求说明创建两张表,t_order_1和t_order_2,这两张表是订单表拆分后的表,通过Sharding-Jdbc向订单表插入数据,按照一定的分片规则,主键为偶数的进入t_order_1,另一部分数据进入t_order_2,通过Sharding-Jdbc 查询数据,根据SQL语句的内容从t_order_1或t_order_2查询数据。环境搭建环境说明数据库:MySQL-5.7.37JDK:64位 jdk1.8.0_271应用框架:spring-

2022-04-01 18:08:12 1166

原创 2.Sharding-JDBC介绍

Sharding-JDBC介绍Sharding-JDBC是当当网研发的开源分布式数据库中间件,从3.0开始Sharding-JDBC被包含在Sharding-Sphere中,之后该项目进入进入Apache孵化器,4.0版本之后的版本为Apache版本。ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据

2022-03-31 17:50:16 133

原创 1.分库分表介绍

分库分表介绍分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成 ,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。分库分表的方式分库分表包括分库和分表两个部分,在生产中通常包括:垂直分库、水平分库、垂直分表、水平分表四种方式。垂直分表用户在浏览商品列表时,只有对某商品感兴趣时才会查看该商品的详细描述。因此,商品信息中商品描述字段访问 频次较低,且该字段存储占用空间较大,访问单个数据IO时间较长;

2022-03-31 17:28:54 113

原创 8.Gateway服务网关

Gateway服务网关Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。为什么需要网关Gateway网关是我们服务的守门神,所有微服务的统一入口。网关的核心功能特性:身份认证和权限校验:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。

2022-03-09 01:03:10 735

原创 7.http客户端Feign

http客户端FeignFeign替代RestTemplateRestTemplate方式调用存在的问题先来看我们以前利用RestTemplate发起远程调用的代码:String url = "http://userservice/user/" + order.getUserId();User user = restTemplate.getForObject(url, User.class);存在下面的问题:代码可读性差,编程体验不统一参数复杂URL难以维护Feign的介绍Feig

2022-03-07 11:46:17 277

原创 6.Nacos配置管理

Nacos配置管理统一配置管理配置更改热更新在Nacos中添加配置信息:在弹出表单中填写配置信息:

2022-02-21 14:27:50 1024

原创 5.Nacos注册中心

Nacos注册中心认识NacosNacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。Nacos:https://nacos.io/zh-cn/Nacos下载地址:https://github.com/alibaba/nacos/releasesNacos安装教程1.Windows安装开发阶段采用单机安装即可。1.1.下载安装包在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:

2022-02-16 11:49:09 97

原创 4.Ribbon负载均衡

Ribbon负载均衡负载均衡原理负载均衡流程RibbonLoadBanlancerClient:Ribbon负载均衡客户端DynamicServerListLoadBalancer:动态服务列表负载均衡器,根据服务名称找eureka拉取服务列表IRule:负载均衡规则(默认:ZoneAvoidanceRule)负载均衡策略Ribbon的负载均衡规则是一个叫做IRule的接口来定义的,每一个子接口都是一种规则:内置负载均衡规则类规则描述RoundRobinRule简

2022-02-11 14:41:14 112

原创 3.Eureka注册中心

Eureka注册中心eureka的作用消费者该如何获取服务提供者具体信息?服务提供者启动时向eureka注册自己的信息eureka保存这些信息消费者根据服务名称向eureka拉取提供者信息如果有多个服务提供者,消费者该如何选择?服务消费者利用负载均衡算法,从服务列表中挑选一个消费者如何感知服务提供者健康状态?服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态eureka会更新记录服务列表信息,心跳不正常会被剔除消费者就可以拉取到最新的信息在Eur

2022-02-10 11:46:41 74

原创 2.服务拆分及远程调用

服务拆分及远程调用服务拆分服务拆分注意事项:单一职责:不同微服务,不要重复开发相同业务数据独立:不要访问其它微服务的数据库面向服务:将自己的业务暴露为接口,供其它微服务调用远程调用查询订单信息并把用户信息返回步骤一 注册RestTemplate@MapperScan("cn.itcast.order.mapper")@SpringBootApplicationpublic class OrderApplication { public static void main

2022-01-24 15:33:43 831

原创 1.认识微服务

SpringCloud微服务架构认识微服务

2022-01-21 15:16:13 451

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除