自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Akka中的Future和Agent

询问模式:Actor中的Future与同步方法不同,在发送异步消息后,接受消息的Actor可能根本来不及处理你的消息,调用方就已经返回了,和Future模式不同的是,在传统的异步调用中,我们进行的是函数调用,但在这里,我们发送了一条消息。printer Actorpublic class Printer extends UntypedAbstractActor { @Override public void onReceive(Object message) throws Thro

2021-08-15 18:03:35 203

原创 Akka消息收件箱以及消息路由、内置状态转换

消息收件箱(Inbox)Akka框架为我们准备了一个名叫"收件箱"的组件,使用它可以很方便的对Actor进行消息发送和接收,大大方便了应用程序与Actor之间的交互。public class MyWorker extends UntypedAbstractActor { private final LoggingAdapter loggingAdapter= Logging.getLogger(getContext().system(),this); public static enu

2021-08-15 17:23:35 184

原创 Akka监督策略

监督策略Akka框架给予了我们足够的控制权。在Akka框架内,父Acotr可以对子Actor进行监督,监控Actor的行为是否有异常,监督策略可以分为两种:一种是OneForOneStrategy策略的监督(只会对出问题的子Actor进行处理),另外一种是AllForOneStrategy(会对出问题的子Acotr及它所有的兄弟都进行处理,适合各个Actor联系非常紧密的场景)策略的监督。自定义的监督策略(supervisorStrategy)定义一个OneForOneStrategy策略的监督。

2021-08-15 16:16:06 302

原创 Akka消息投递以及Actor的生命周期

关于消息投递的一些说明整个Akka应用是由消息驱动的,消息是除Actor之外最重要的核心组件。作为并发程序中的核心组件,在Actor之间传递的消息应该满足不可变性,也就是不变模式。因此可变的消息无法高效的在并发环境中使用。理论上Akka中的消息可以使用任何对象实例,但在实际使用中,强烈推荐使用不可变的对象。典型的不可变对象的实现public final class ImmutableMessage { private final int sequenceNumber;

2021-08-15 15:24:27 341

原创 Akka入门学习

akka基础学习Akka是用Scala创建的,但由于Scala和Java一样,都是java虚拟机上的语言,本质上说,两者并没有什么不同,因此,我们也可以在Java中使用Akka。我们知道,写出一个正确的、高性能并且可扩展的并发程序是相当困难的,那么是否有一个好的框架可以帮助我们轻松构建这么一个应用呢?这就是Akka。Akka的好处首先,Akka提供了一种名为Actor的并发模型,其粒度比线程小,这意味着可以在系统中启用大量的Acotr。其次,Akka中提供了一套容错机制,允许在Acotr出现异

2021-08-15 14:39:18 465

原创 Docker镜像

Docker镜像是什么?是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。UnionFS(联合文件系统)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像,可以制造各种具体的应用镜像。特性:一次同时加载多个文件系统,但从外

2021-05-12 20:13:06 204 1

原创 Docker基础入门

通俗讲就是软件带环境安装安装的时候,把原始环境一模一样的复制过来。利用Docker可以消除协作编码时“在我的机器上可以正常工作”的问题Docker镜像的设计,使得Docker得以打破过去【程序即应用】的观念。透过镜像将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。Docker理念通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的app及其运行环境能够做到**“一次封装,到处运行”**解决了运行环境和配置问题软件容器,方便做持

2021-05-12 17:33:24 127

原创 ActiveMQ高级特性

引入消息队列之后该如何保证其高可用性zookeeper+replicated-levelDB-Store的主从集群异步投递 Async Sends对于一个Slow Consumer,使用同步发送消息可能会出现Producer堵塞等情况,慢消费者适合使用异步发送--------activeMQConnectionFactory.setUseAsyncSend(true)ActiveMQ默认使用异步发送的模式:除非明确指定使用同步发送的方式或者在未使用事务的前提下发送持久化的消息,这两种情况都是同

2021-04-21 11:32:35 176

原创 ActiveMQ的消息存储和持久化

AMQ持久化机制当MQ服务区宕机后,消息不会丢失。为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般会采用持久化机制。ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库等再试图将消息发送给接收者,成功则将消息从存储中删除,失败则继续尝试发送。有哪些AMQ Message Store基于文件的存储方

2021-04-21 00:13:33 753

原创 ActiveMQ的传输协议

ActiveMQ支持的client-broker通讯协议TCPNIOUDPSSLHTTP(S)VM其中配置Transport Connector的文件在activeMQ安装目录的conf/activemq.xml中的标签之中vim activemq.xml在上文给出的配置信息中,URI描述信息的头部都是用采用协议名称,:例如,描述amqp协议的监听端口时,采用的URI描述格式为“amqp://……”描述Stomp协议的监听端口时,采用的URI描述格式为“stomp://……”

2021-04-20 20:53:10 86

原创 SpringBoot整合ActiveMQ

整合队列生产者新建工程pox.xml文件配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> <version>2.1.5.RELEASE</version>

2021-04-19 22:54:39 72

原创 Spring整合ActiveMQ

Maven修改,需要添加Spring支持JMS的包<!-- activemq 所需要的jar 包--> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.12.0</versi

2021-04-19 20:24:43 109

原创 JMS规范和落地产品

JMS(java消息服务)java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持java应用程序开发。在javaEE中,当两个应用程序通过JMS进行通信时,它们之间并不是直接相连的,而是通过一个共同的消息收发组件关联起来以达到解耦/异步消峰的效果。消息队列的详细比较JMS组成结构和特点JMS provider实现JMS接口和规范的中间件,也就是我们的MQ服务器JMS producer消

2021-04-19 17:26:28 102

原创 ActiveMQ入门概述

前言在何种场景下使用了消息中间件?为什么要在系统里引入消息中间件?微服务分布式架构后,链式调用是我们在写程序时候的一般流程,为了完成一个整体功能会将其拆分成多个函数(或子模块),比如模块A调用模块B、模块B调用模块C、模块C调用模块D。但在大型分布式应用中,系统间的RPC交互繁杂,耦合性很大。面对大流量并发时,容易被冲垮。RPC接口上基本都是同步调用,整体的服务性能遵循“木桶理论”,即整体系统的耗时取决于链路中最慢的那个接口。比如A调用B/C/D都是50ms,但此时B又调用了B1,花费200

2021-04-18 20:48:41 95 1

原创 Mysql锁机制

概述锁是计算机协调多个进程或线程并发访问同一资源的机制。在数据库中,除传统的计算资源(CPU,RAM,I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言现得尤其重要,也更加复杂。锁的分类数据操作的类型分----读锁(共享锁)、写锁(排他锁)数据操作的粒度分----表锁、行锁表锁偏向于MyISAM存储引擎,开销小,加锁快;无死锁;锁定粒度大,

2021-04-14 19:32:46 127

原创 查询截取分析

查询优化永远小表驱动大表EXISTSSELECT … FROM table WHERE EXISTS(subquery)该语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果(TRUE或FALSE)来决定主查询的数据结果是否得以保留·提示1.EXISTS只返回TRUE或FALSE,因此子查询中的 SELECT *也可以是SELECT 1,实际执行时会忽略SELECT清单,因此没有区别2.EXISTS子查询的实际执行过程可能进行了优化而不是我们理解的逐条对比,如果担忧效率

2021-04-14 16:05:40 103

原创 索引题分析

#建表语句create table test03(id int primary key not null auto_increment,c1 char(10),c2 char(10),c3 char(10),c4 char(10),c5 char(10));insert into test03(c1,c2,c3,c4,c5) values('a1','a2','a3','a4','a5');insert into test03(c1,c2,c3,c4,c5) values('b1','

2021-04-13 22:36:46 93

原创 索引失效总结

建表语句CREATE TABLE staffs(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(24)NOT NULL DEFAULT’’ COMMENT’姓名’,age INT NOT NULL DEFAULT 0 COMMENT’年龄’,pos VARCHAR(20) NOT NULL DEFAULT’’ COMMENT’职位’,add_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMME

2021-04-13 21:42:11 100

原创 索引三表优化案例

建表语句结合class表和book表CREATE TABLE IF NOT EXISTS `phone`(`phoneid` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,`card` INT (10) UNSIGNED NOT NULL)ENGINE = INNODB;insert into phone(card) values(floor(1+(rand()*20)));insert into phone(card) value

2021-04-13 20:17:06 67

原创 索引两表优化案例

建表语句CREATE TABLE IF NOT EXISTS `class`(`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,`card` INT (10) UNSIGNED NOT NULL);CREATE TABLE IF NOT EXISTS `book`(`bookid` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,`card` INT (10) UNSIG

2021-04-13 18:04:22 63

原创 索引单表优化案例

建表语句CREATE TABLE IF NOT EXISTS `article`(`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,`author_id` INT (10) UNSIGNED NOT NULL,`category_id` INT(10) UNSIGNED NOT NULL , `views` INT(10) UNSIGNED NOT NULL , `comments` INT(10) UNSIGNED NOT NU

2021-04-13 16:05:35 82

原创 Explain

explain使用简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理sql语句的。分析查询语句或是表结构的性能瓶颈语法explain+Sql语句用处表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询执行计划包含的信息id:select查询的序列号,表示查询中执行select子句或操作表的顺序id相同,执行顺序由上至下id不同,如果是子查询,id的序号会增加,id值越大优先级越

2021-04-11 21:19:55 64

原创 索引优化分析

SQL性能下降原因分析分析执行时间长等待时间长原因查询语句不好索引失效(单值,复合)关联查询太多join服务器调优及各个参数设置(缓冲、线程数等)SQL执行顺序手写机读

2021-04-11 16:02:47 64

原创 七种Join方式

创建表结构tbl_dept表tbl_emp表七种Join左连接右连接内连接A独有B独有全连接全外连接mysql中不支持全连接和全外连接,要用union(去重)实现,在Oracle中可以体现。

2021-04-11 13:29:41 109

原创 Linux下用RPM安装MySQL

MysqlLinux版安装下载地址:https://dev.mysql.com/downloads/mysql/检查是否安装过mysqlrpm -qa|grep -i mysql安装相关的rpm包上面的server包和client包依赖于下面的三个包安装rpm包rpm -ivh rpm包名查看是否安装成功mysqladmin --versionps -ef | grep mysql…初始化服务以及其它命令初始化服务 mysqld --initialize停止

2021-04-11 10:21:38 103

空空如也

空空如也

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

TA关注的人

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