自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sdaujsj1的博客

君子性非异也 善假于物也

  • 博客(31)
  • 收藏
  • 关注

原创 rabbitmq之可靠性投递与生产实践(二)

文章目录可靠性投递与生产实践一 可靠性投递1、确保消息发送到RabbitMQ服务器2、确保消息路由到正确的队列3、确保消息在队列正确地存储4、确保消息从队列正确地投递到消费者5、消费者回调6、补偿机制7、消息幂等性8、消息的顺序性二 高可用架构RabbitMQ集群RabbitMQ镜像队列HAproxy负载+Keepalived高可用网络分区广域网的同步方案三 实践经验总结1、配置文件与命名规范2、调用封装3、信息落库+定时任务4、运维监控5、插件6、如何减少连接数思考面试题可靠性投递与生产实践一 可靠性

2020-07-28 08:31:49 79

原创 rabbitmq之rabbitmq工作模型与Java编程(一)

文章目录rabbitmq工作模型与Java编程一 典型应用场景二 基本介绍AMQP协议RabbitMQ的特性工作模型三种主要的交换机Direct Exchange 直连交换机Topic Exchange 主题交换机Fanout Exchange 广播交换机三 Java API编程创建Maven工程,pom.xml引入依赖生产者消费者参数说明声明交换机的参数声明队列的参数消息属性BasicProperties四 进阶知识1、TTL(Time To Live)a、消息的过期时间b、队列的过期时间2、死信队列3、

2020-07-28 08:30:14 52

原创 kafka之消息文件存储机制和数据同步(三)

文章目录一 消息的文件存储机制LogSegment查看 segment 文件命名规则segment 中 index 和 log 的对应关系在 partition 中如何通过 offset 查找 messageLog 文件的消息内容分析二 日志的清除策略以及压缩策略日志清除策略三 partition 的高可用副本机制副本分配算法创建一个带副本机制的 topickafka 副本机制中的几个概念副本协同机制ISR(In Sync Replicas)HW&LEO四 数据的同步过程初始状态follower

2020-07-26 23:30:18 100

原创 kafka学习之消息的消费原理与存储(二)

文章目录一 关于 Topic 和 PartitionTopicPartitionTopic&Partition 的存储二 关于消息分发kafka 消息分发策略消息默认的分发机制消费端如何消费指定的分区三 消息的消费原理分区分配策略Range strategy(范围分区)RoundRobin strategy(轮询分区)什么时候会触发分区分配策略呢?谁来执行Rebalance 以及管理 consumer的group呢?如何确定 coordinatorJoinGroup 的过程Synchroniz

2020-07-26 22:55:31 51

原创 kafka学习之Kafka 的简介(一)

文章目录一 Kafka 的简介什么是Kafkakafka 产生的背景Kafka 的应用场景Kafka本身的架构二 kafka 的安装部署三 Kafka 的基本操作创建topic查看topic查看topic属性消费消息发送消息四 安装集群环境五 配置信息分析发送端的可选配置信息分析acksbatch.sizelinger.msmax.request.size消费端的可选配置分析group.idenable.auto.commitauto.offset.resetmax.poll.records一 Kaf

2020-07-26 22:47:23 41

原创 mycat学习

文章目录一 数据库性能优化数据库性能瓶颈主要原因数据性能优化方案读写分离分库分表垂直拆分水平拆分二 mycat主从复制原理配置主从主从复制的延迟mycat 配置文件mycat目录1.schema.xml2.server.xmlrule.xml连续分片连续分片之自定义数字范围分片连续分片之按日期(天,月)分片连续分片之按单月小时分片离散分片离散分片之枚举分片离散分片之十进制取模离散分片之应用指定分片离散分片之字符串截取数字hash分片离散分片之一致性Hash分片理解一致性Hash综合类分片综合分片之范围求模分

2020-07-26 08:49:51 123

原创 Nginx学习之Nginx的扩展openresty(三)

文章目录一 Nginx 进程模型简介二 Nginx 的高可用方案keepalived三 Openresty安装HelloWorld建立工作空间创建目录创建配置文件库文件使用四 网关网关的概念为什么需要网关?灰度发布五 OpenResty 实现 API 网关限流及登录授权OpenResty 为什么能做网关?灰度发布的实现一 Nginx 进程模型简介多进程多进程+多路复用master 进程 、 worker 进程worker_processes 1 建议设置成cpu总核心数epoll

2020-07-23 08:28:30 55

原创 Nginx学习之Nginx实战(二)

文章目录一 反向代理二 负载均衡其他配置信息proxy_next_upstreamproxy_connect_timeoutproxy_send_timeoutproxy_read_timeoutproxy_upstream_fail_timeout三 Nginx动静分离什么是动静分离静态资源的类型动静分离的好处缓存Nginx缓存配置压缩配置信息四 防盗链防盗链配置五 跨域访问一 反向代理nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理

2020-07-23 08:24:56 70

原创 Nginx学习之初始Nginx(一)

文章目录一 什么是Nginx二 Nginx的安装和启动三 nginx.conf虚拟主机配置location模块配置语法配置规则规则的优先级实际使用建议Nginx模块ngx_http_core_modulengx_http_access_modulehttp_stub_status_modulehttp_random_index_module一 什么是Nginx是一个高性能的反向代理服务器正向代理代理的是客户端反向代理代理的是服务端二 Nginx的安装和启动安装:下载tar包tar -zxv

2020-07-23 08:21:23 22

原创 畅购第十四天rabbitmq 延时队列

第14章 秒杀文章目录第14章 秒杀1 防止秒杀重复排队1.1 后台排队记录2 并发超卖问题解决2.1 思路分析2.2 代码实现2.3 超卖控制3 订单支付3.2 创建支付二维码3.2.1 回显订单号、金额3.2.2 创建二维码3.3 支付流程分析3.4 支付回调更新3.4.1 支付回调队列指定3.4.1.1 改造支付方法3.4.1.2 测试3.4.1.3 改造支付回调方法3.4.2 支付状态监听3.4.3 修改订单状态3.4.3.1 业务层3.4.3.2 修改订单对接3.4.4 删除订单回滚库存3.4.

2020-07-22 17:03:33 70

原创 修改war包文件 jar uvf

最近在搞一个替换登录页面的任务 然后给的是一个单点登录的war包 需要修改war包里的文件我之前就暴力用360好压直接修改 修改个html还是可以的 但是把其他静态资源替换的时候报错:java.lang.IllegalArgumentException: MALFORMED显然war包被破坏了 起不来了。。然后我又用jar xvf解压后 替换文件 然后jar cvf再重新创建一个war包又报错:no main manifest attribute那我们应该怎么修改呢?1.将war包移动到一个

2020-07-20 15:40:21 140

原创 redis学习之redis应用(四)

一 Redis Java客户端介绍Redis Java客户端有很多的开源产品比如Redission、Jedis、lettuceJedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;Redisson实现了分布式和可扩展的Java数据结构,和Jedis相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等Redis特性。Redisson主要是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。lettuce是基于Nett

2020-07-20 08:28:22 59

原创 redis学习之redis分布式(三)

一 集群先来简单了解下redis中提供的集群策略, 虽然redis有持久化功能能够保障redis服务器宕机也能恢复并且只有少量的数据损失,但是由于所有数据在一台服务器上,如果这台服务器出现硬盘故障,那就算是有备份也仍然不可避免数据丢失的问题。在实际生产环境中,我们不可能只使用一台redis服务器作为我们的缓存服务器,必须要多台实现集群,避免出现单点故障;二 主从复制复制的作用是把redis的数据库复制多个副本部署在不同的服务器上,如果其中一台服务器出现故障,也能快速迁移到其他服务器上提供服务。 复制

2020-07-20 08:25:25 35

原创 redis学习之redis内部结构(二)

一 redis过期时间过期时间设置在Redis中提供了Expire命令设置一个键的过期时间,到期以后Redis会自动删除它。这个在我们实际使用过程中用得非常多。EXPIRE命令的使用方法为EXPIRE key seconds其中seconds 参数表示键的过期时间,单位为秒。EXPIRE 返回值为1表示设置成功,0表示设置失败或者键不存在如果向知道一个键还有多久时间被删除,可以使用TTL命令TTL key当键不存在时,TTL命令会返回-2而对于没有给指定键设置过期时间的,通过TTL命令会返回-

2020-07-20 08:23:43 41

原创 redis学习之redis基本数据结构(一)

一 redis的魅力缓存大致可以分为两类,一种是应用内缓存,比如Map(简单的数据结构),以及EH Cache(Java第三方库),另一种就是缓存组件,比如Memached,Redis;Redis(remote dictionary server)是一个基于KEY-VALUE的高性能的存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求redis存储结构:大家一定对字典类型的数据结构非常熟悉,比如map ,通过key value的方式存储的结构。 redis的全称是remote dict

2020-07-20 08:21:26 38

原创 activemq之消费者消费解析与高可用策略(三)

消费端消费消息的原理有两种方法可以接收消息,一种是使用同步阻塞的MessageConsumer#receive方法。另一种是使用消息监听器MessageListener。这里需要注意的是,在同一个session下,这两者不能同时工作,也就是说不能针对不同消息采用不同的接收方式。否则会抛出异常。ActiveMQSession的checkMessageListenerpublic void checkMessageListener() throws JMSException { if (t

2020-07-16 23:06:06 137 1

原创 activemq学习之消息发送解析与消息存储(二)

持久化消费和非持久化消费的发送策略消息同步发送和异步发送ActiveMQ支持同步、异步两种发送模式将消息发送到broker上。同步发送过程中,发送者发送一条消息会阻塞直到broker反馈一个确认消息,表示消息已经被broker处理。这个机制提供了消息的安全性保障,但是由于是阻塞的操作,会影响到客户端消息发送的性能异步发送的过程中,发送者不需要等待broker提供反馈,所以性能相对较高。但是可能会出现消息丢失的情况。所以使用异步发送的前提是在某些情况下允许出现数据丢失的情况。默认情况下,非持久化

2020-07-16 22:59:07 103 1

原创 activemq学习之activemq功能(一)

什么是消息中间件?消息中间件是值利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程之间的通信。消息中间件能做什么?解耦异步流量削峰数据的最终一致性ActiveMQ 简介ActiveMQ 是完全基于 JMS 规范实现的一个消息中间件产品。是 Apache 开源基金会研发的消息中间件。ActiveMQ主要应用在分布式系统架构中,帮助构建高可用、高性能、可伸缩的企业级面向消息服务的系统Acti

2020-07-16 22:47:44 65

原创 dubbo源码学习之服务端接收消息 负载均衡(四)
原力计划

服务端接收消息处理过程NettyHandler. messageReceived接收消息的时候,通过NettyHandler.messageReceived作为入口。@Overridepublic void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel

2020-07-13 00:01:44 36

原创 dubbo源码学习之服务发布调用链 消费者消费调用链(三)我太难了。。
原力计划

源码阅读之dubbo服务发布过程分析dubbo 是基于 spring 配置来实现服务的发布的,那么一定是基于 spring的扩展来写了一套自己的标签,那么 spring 是如何解析这些配置呢?总的来说,就是可以通过 spring 的扩展机制来扩展自己的标签。大家在dubbo 配置文件中看到的dubbo:service ,就是属于自定义扩展标签dubbo 配置文件中看到的dubbo:service ,就是属于自定义扩展标签要实现自定义扩展,有三个步骤(在 spring 中定义了两个接口,用来实现扩展)

2020-07-13 00:00:00 130

原创 dubbo源码学习之SPI(二)
原力计划

Dubbo SPI和JAVA SPI 的使用和对比在Dubbo中,SPI是一个非常核心的机制,贯穿在几乎所有的流程中。搞懂这块内容,是接下来了解Dubbo更多源码的关键因素。Dubbo是基于Java原生SPI机制思想的一个改进,所以,先从JAVA SPI机制开始了解什么是SPI以后再去学习Dubbo的SPI,就比较容易了关于JAVA 的SPI机制SPI全称(service provider interface),是JDK内置的一种服务提供发现机制,目前市面上有很多框架都是用它来做服务的扩展发现,大家

2020-07-12 23:49:07 54

原创 dubbo源码分析之dubbo基本功能点(一)
原力计划

dubbo 的使用dubbo文档:https://dubbo.gitbooks.io/dubbo-dev-book/design.htmldubbo 支持的容器com.alibaba.dubbo.container.spring.SpringContainerprivate static final Logger logger = LoggerFactory.getLogger(SpringContainer.class); public static final String SPRI

2020-07-12 23:42:43 41 1

原创 .gitignore文件的配置

**/mvnw**/mvnw.cmd**/.mvn**/target/.idea**/.gitignore水一篇。。????

2020-07-06 20:49:35 46

原创 tomcat 部署项目的三种方式

文章目录一 直接将web项目文件件拷贝到webapps目录中二 修改Server.xml文件三 新建xml方式一 直接将web项目文件件拷贝到webapps目录中我们一般把项目打成war包 然后放在webapp下 然后点击start脚本启动 war包被自动解压出来 然后部署成功二 修改Server.xml文件修改conf目录下的server.xml 在Host标签下添加标签<Host name="localhost" appBase="webapps" unpa

2020-07-06 12:29:42 93

原创 Tomcat 性能优化
原力计划

1 What is TomcatThe Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServerPages, Java Expression Language and Java WebSocket technologies.2 Version choose and reason2.1 Version chooseTomcat版本:Tomcat8.0.11jdk版本:大于等于jd

2020-07-05 21:33:33 236

原创 58同城30条数据库三十条军规
原力计划

军规适用场景:并发量大、数据量大的互联网业务军规:介绍内容解读:讲解原因,解读比军规更重要文章目录一、基础规范二、命名规范三、表设计规范四、字段设计规范五、索引设计规范六、SQL使用规范一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集 UTF-8MB4解读:万国码,无需转码,无乱码风险,节省空间(3)数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的

2020-07-04 22:41:37 122

原创 mysql之MVCC 配置优化 数据库表设计(四)
原力计划

文章目录MVCC(多版本并发控制)MVCC 逻辑流程undo log快照读与当前读redo log配置优化mysql服务器参数类型配置文件全局配置文件配置常见全局配置文件配置mysql 内存参数配置数据库表设计三大范式MVCC(多版本并发控制)Multiversion concurrency control (版本并发控制):并发访问(读或写)数据库时,对正在事务内处理的数据做多版本的管理。以达到用来避免写操作的堵塞,从而引发读操作的并发问题。每一个表除了创建的字段列外还有隐藏列 DB_TRX_ID

2020-07-04 22:20:23 113

原创 mysql之事务 锁(三)
原力计划

目录事务事务特性ACID事务带来的问题事务隔离级别锁表锁 行锁Innodb锁类型共享锁 Shared Locks排它锁 Exclusive Locks意向锁 (IS 、IX)自增锁 AUTO-INC Locks行锁算法临键锁 Next-key Locks间隙锁 Gap Locks记录锁 Record Locks死锁利用锁解决事务问题解决脏读解决不可重复读解决幻读事务事务:数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;事务是一组不可再分割的操作集合(工作逻辑单元);典型事务场景(转账

2020-07-04 21:56:30 85

原创 mysql之存储引擎 体系结构 查询机制(二)
原力计划

你讲学到一 各大存储引擎介绍csv存储引擎archive存储引擎memory 存储引擎MyisamInnodb对比二 理解mysql体系结构三 基于查询执行路径理解查询机制1. mysql 客户端 / 服务端通信2 查询缓存不会缓存的情况:查询缓存适用场景:3 查询优化处理执行计划image-20200627213148005id:select_typetabletypepossible_keyskeyrowsfilteredextra4 查询执行引擎5 返回客户端慢查询日志配置慢查询日志分析:慢查询日志

2020-07-04 21:45:33 1598

原创 mysql之索引(一)
原力计划

1,索引谁实现的正确的创建合适的索引是提升数据库查询性能的 使用b+树实现2,索引的定义索引 是为了加速对表中数据行的检索而创建的一种分散存储的数据结构为什么要用索引?索引能极大的减少 存储引擎需要扫描的数据量索引 可以把随机IO 变成顺序IO索引 可以帮助 我们在进行 分组、 排序等操作时,避免使用临时表3,为什么选择B+Tree平衡二叉树:缺点:它太深了 数据处的(高)深度决定着他的IO 操作次数,IO 操作耗时大它太小了 每一个磁盘块 (节点/ 页) 保存的数据量太小了

2020-07-04 21:31:45 127

原创 sqlserver表结构不同实现数据同步

这周在搞数据同步的功能 说是什么数据c库到a库 a库到b库 现在要改成c库直接到b库 由于各种各样的原因吧 这两天才搞明白实现方案是:b库创建一个到c库的链接 然后写个存储过程 让sqlserver的作业定时执行这个存储过程 实现定时同步上sql1. 创建链接-------------------链接C库------------------EXEC sp_addlinkedserver@server='MJZFPT', --链接服务器别名@srvproduct='',@provider=

2020-07-03 20:06:19 156

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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