King's Studio

King's Studio

Coding to change the world!

SpringBoot整合RabbitMQ消息队列
RabbitMQ前面已经介绍过原理以及工作机制,现在我们利用SpringBoot进行消息队列的操作。 创建RabbitMQ环境同样的,为了测试方便,我们在这里直接使用docker部署RabbitMQ,使用下面的命令在docker hub中查找RabbitMQ的版本。 1docker search rabbitmq 为了便于直观看到RabbitMQ中的情况,我们使用带”-management”后缀的版本,这种版本自带web管理界面,能更好的帮助我们理解RabbitMQ的执行流程。 1docker pull rabbitmq:3-management 下载完成后查看镜像的下载情况,并进行部署...
RabbitMQ的简介以及原理
Rabbit简介RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现,是现在市面上应用比较广泛的消息队列中间件。它包含通用的两种消息转发模式,一是点对点,二是广播。 AMQP中的消息路由AMQP中的消息的路由过程和JMS有一些差别,AMQP中增加了Exchange和Binding的角色。具体流程如下,首先生产者(Producer)将消息发布到交换器(Exchange)上,由交换器(Exchange)根据路由规则决定将消息派发到哪一个消息队列(Queue)中,最后由消费者(Consumer)从队列(Queue)中获取...
消息中间件的概念以及应用场景
消息中间件的概念消息中间件最常用在异步处理请求、应用解耦以及流量削峰。 其中异步处理主要是降低系统的响应时间,将原来每一步相连的操作进行异步处理,实例如下。 应用解耦主要是使用在微服务架构中,将每一个独立的系统抽取成一个服务,进而他们共同去访问一个消息队列,降低应用之间的耦合度。 流量削峰的应用场景是秒杀业务的处理,主要的思想是生产者和消费者的关系,生产者生产指定数目的库存,速度最快的消费者将其消费完,然后消息队列中就全部清空,剩下的没有得到产品的消费者请求失败即秒杀失败。 消息服务中的两个重要概念消息代理和目的地,消息代理即消息队列的服务器,目的地有两种形式,一是队列(queue...
SpringBoot整合Redis中间件进行缓存
首先理解缓存的概念,缓存通常用于什么场景呢,比如说你正在刷微博,这时候突然出现一个热点事件,比如某”多人运动事件”,由于是焦点话题,一传十,十传百,查看该话题的人会越来越多,如果将该条热点消息放在数据中,每次查看该消息都需要和数据库进行一次交互,而使用微博的人群庞大,数据库承担的压力就会非常大,这也就是微博经常在出现热点消息时就崩的原因。因此当出现热点新闻的时候,及时将该消息放入缓存中存储,后面的人再访问该消息就无须再查询数据库,极大地减轻了数据库的压力。 使用Redis中间件进行缓存Redis的特点Redis是目前追求高并发系统必用的中间件之一,它不仅可以用来做缓存,还能用作数据库以及...
Oracle存储过程语法及常用函数总结
从去年底到现在4个月了,原本早就想对实习期间学习到的知识进行总结,一直拖到现在,中间又是工作的事,又是毕设系统的开发,自己的时间分配确实也有不合理的地方,不能很好地平衡工作和生活,毕竟也是自己第一次实习,还是有许多不足之处需要总结的。今天就对在项目组实习期间使用到的技术进行总结,写的不到位的地方还请大家批评指正😁。 实习期间主要接触到的是数据库相关的内容,涉及到少量的数据清洗,绝大部分还是属于数据抽取以及轻微的加工。我主要负责是的Oracle数据库存储过程的开发,SQL语句功底是做任何开发必不可少的,SQL语句写的好不好直接关系到系统性能的高低,还在学生时代的我就特别害怕编写SQL语句...
2019年度总结
No.1❤终于有时间来总结一下这一年的经历了,其实博客从去年年底就已经搭好了,只不过当时被一些其他的事牵绊住,一直没有写。今年其实是我的本命年,总的来说还是挺顺利的,也因为我付出了比别人更多的努力,这一点我问心无愧,我总算相信有多少付出就会有多少回报。今年9月1日还是我退伍两周年的日子,我发现部队带给我的东西都快被生活打磨没了,还是很怀念那个有着坚定意志的自己。 No.2❤在年初的时候就定下目标,一定要到上海闯一闯,反正我是孑然一身,无牵无挂,有什么困难是自己不能克服的呢。现在也总算基本完成了这个目标,有很多促成我立下这个目标的因素,我想把它们藏在心里,不断激励自己前行。上半年还在学校的...
使用Docker部署HBase并使用Java API连接
HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,但是也有很多不同之处。HBase利用Hadoop HDFS作为其文件存储系统,它利用Hadoop MapReduce来处理HBase中的海量数据,使用Zookeeper作为协同服务。 首先学习HBase需要搭建对应的环境,这里为了不在环境上浪费过多的时间,...
初识MapReduce开发
年底了,回过头来才发现这一年年初确立的写博客的习惯也被各种琐事耽误了,一年也才写了20多篇,不过年初确立的奔赴上海的目标也总算是实现了,期间有过连拿offer的欢喜,也有初到职场的迷茫,本想一一记录下来的,也没能做到,现在趁一些空闲时间抓紧补补最近新学的东西。 说实话,Java后端开发还没有真正实践,就开始学习大数据相关的知识了,虽说大数据也会用到Java写一写MapReduce运算,但整个Hadoop生态圈用到的组件实在是很多,不仅仅是写代码这么简单了,例如使用Spark分布式计算框架就能将以前需要写很多MapReduce的过程给大大简单化,这就需要我们去学习新的编程语言Scala。再...
MyBatis-generator的使用
MyBatis生成器(MBG)是MyBatis和iBATIS的代码生成器。它为MyBatis的所有版本以及iBATIS生成代码。它将一个数据库表(或多个表),生成可用于访问表的组件。这减轻了设置对象和配置文件与数据库表进行交互的麻烦。MBG试图对简单CRUD(创建,检索,更新,删除)的大部分数据库操作进行简化。但开发者仍将需要手工编写SQL语句和对象代码以进行联接查询或存储过程。MyBatis-generator是由MyBatis官方提供的技术,现在网上有很多利用Maven导入的MyBatis-generator插件使用的教程,在此我想对操作进行一些简化,直接利用mybatis-gene...
自定义MyBatis框架
MyBatis是一个持久层的框架,使用Java语言书写的,它封装了很多jdbc操作的细节,使开发者只用关注SQL语句本身,无需关注注册驱动,创建连接等过程,它使用ORM思想实现结果集的封装。下面我们讨论一下细节。(注:ORM,Object Relational Mapping对象关系映射,含义:将数据库表和Java实体类及实体类的属性对应,使我们操作实体类就可以操作数据库表,做到这点需要实体类中的属性和数据库表的字段名保持一致。) 从MyBatis的使用看想知道MyBatis内部的工作流程,我们从使用MyBatis进行查询所有的过程看,首先看配置MyBatis的环境,分为以下几步: 创建...
avatar
金奇
Pay attention to me