11 2018 档案

摘要:volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v 阅读全文
posted @ 2018-11-28 22:18 *码识途 阅读(195) 评论(0) 推荐(0)
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cselmu9/article/details/51366946 在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模 阅读全文
posted @ 2018-11-28 22:10 *码识途 阅读(628) 评论(0) 推荐(0)
摘要:这里有两张表TableA和TableB,分别是姓名表和年龄表,用于我们例子的测试数据: 表连接有几种? sql表连接分成外连接、内连接和交叉连接。 一.外连接 概述: 外连接包括三种,分别是左外连接、右外连接、全外连接。 对应的sql关键字:LEFT/RIGHT/FULL OUTER JOIN,通常 阅读全文
posted @ 2018-11-28 21:41 *码识途 阅读(29603) 评论(1) 推荐(1)
摘要:1.下载好logstash后,解压目录 2.进入bin目录,新建文件 logstash_default.conf input { tcp { port => 4560 codec => "json_lines" } } #json_lines output { stdout { codec => r 阅读全文
posted @ 2018-11-28 21:33 *码识途 阅读(2780) 评论(0) 推荐(0)
摘要:Kibana安装及使用说明 Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。 官方地址:https://www.elastic.co/cn/products/kibana 一、Kibana安装 1.环境准备 Ki 阅读全文
posted @ 2018-11-28 21:22 *码识途 阅读(930) 评论(0) 推荐(0)
摘要:负载均衡是一种手段,用来把对某种资源的访问分摊给不同的设备,从而减轻单点的压力。 架构图 图中左侧为ZooKeeper集群,右侧上方为工作服务器,下面为客户端。每台工作服务器在启动时都会去zookeeper的servers节点下注册临时节点,每台客户端在启动时都会去servers节点下取得所有可用的 阅读全文
posted @ 2018-11-27 21:54 *码识途 阅读(689) 评论(0) 推荐(0)
摘要:我们常说的锁是单进程多线程锁,在多线程并发编程中,用于线程之间的数据同步,保护共享资源的访问。而分布式锁,指在分布式环境下,保护跨进程、跨主机、跨网络的共享资源,实现互斥访问,保证一致性。 架构图: 分布式锁获取思路a、在获取分布式锁的时候在locker节点下创建临时顺序节点,释放锁的时候删除该临时 阅读全文
posted @ 2018-11-27 21:43 *码识途 阅读(380) 评论(0) 推荐(0)
摘要:考虑7*24小时向外提供服务的系统,不能有单点故障,于是我们使用集群,采用的是Master+Slave。集群中有一台主机和多台备机,由主机向外提 供服务,备机监听主机状态,一旦主机宕机,备机必需迅速接管主机继续向外提供服务。在这个过程中,从备机选出一台机作为主机的过程,就是Master选 举。 架构 阅读全文
posted @ 2018-11-27 21:32 *码识途 阅读(296) 评论(0) 推荐(0)
摘要:服务发现:指对集群中的服务上下线做统一管理,每个工作服务器都可以作为数据的发布方,向集群注册自己的基本信息,而让某些监控服务器作为订阅方,订阅工作服务器的基本信息。当工作服务器的基本信息改变时,如服务上下线、服务器的角色或服务范围变更,那么监控服务器可以得到通知并响应这些变化。 实现代码如下: 阅读全文
posted @ 2018-11-27 21:23 *码识途 阅读(438) 评论(0) 推荐(0)
摘要:Zookeeper 的核心是广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。 Zab协议有两种模式,它们分别是恢复模式(选主)和广播 模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和leader的状 阅读全文
posted @ 2018-11-27 21:20 *码识途 阅读(273) 评论(0) 推荐(0)
摘要:为什么要用统一配置? 我们做项目时用到的配置比如数据库配置等...我们都是写死在项目里面,如果需要更改,那么也是的修改配置文件然后再投产上去,那么问题来了,如果做集群的呢,有100台机器,这时候做修改那就太不切实际了;那么就需要用到统一配置管理啦。 采用方案 1.公共配置抽取存放于zookeeper 阅读全文
posted @ 2018-11-27 21:05 *码识途 阅读(452) 评论(0) 推荐(0)
摘要:es安装 1.es下载地址:https://www.elastic.co/downloads/past-releases 2.使用es需要先安装好jdk,注意es版本和jdk版本的兼容问题,es6.1.1版本需要jdk1.8以上版本。 3.下载好es的zip包后解压缩,解密后的目录如下图: 4.安装 阅读全文
posted @ 2018-11-27 20:38 *码识途 阅读(24931) 评论(0) 推荐(0)
摘要:centos 7.5安装 elasticsearch 第一步,安装elasticsearch需要Java8 首先使用 yum list installed | grep java 查看安装的Java版本 如果不是Java 8,则使用 yum -y remove java-1.7.0-openjdk* 阅读全文
posted @ 2018-11-27 20:35 *码识途 阅读(3000) 评论(0) 推荐(0)
摘要:1.setnx锁在redis中最简单的数据结构就是string。最早的时候,上锁的操作一般使用setnx,这个命令是当:lock不存在的时候set一个val,或许你还会记得使用expire来增加锁的过期,解锁操作就是使用del命令,伪代码如下:if (Redis::setnx("my:lock", 阅读全文
posted @ 2018-11-26 22:48 *码识途 阅读(411) 评论(0) 推荐(0)
摘要:@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。 1、共同点 两者都可以写在字段和setter方法上。两者如果都写在字段上,那么 阅读全文
posted @ 2018-11-26 22:15 *码识途 阅读(662) 评论(0) 推荐(0)
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012100371/article/details/76602612 Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。 Spring Boot默认的数据源是:org.a 阅读全文
posted @ 2018-11-26 22:11 *码识途 阅读(206) 评论(0) 推荐(0)
摘要:1.引入依赖 2.配置信息: 3.es配置启动类: 4.操作工具类: 阅读全文
posted @ 2018-11-24 23:26 *码识途 阅读(1956) 评论(0) 推荐(0)
摘要:死信队列:DLX,dead-letter-exchange 利用dlx,当消息在一个队列中变成死信(dead message)之后,它能被重新publish到另一个exchange,这个exchange就是dlx 消息变成死信的原因有: 1.声明死信队列,交换机等。 当DL_KEY 对应的队列中存在 阅读全文
posted @ 2018-11-24 17:31 *码识途 阅读(1121) 评论(0) 推荐(0)
摘要:基本概念 channel:消息通道exchage:消息路由规则,四种模式(topic、direct、fanout、header) queue:消息存储routerKey:消息路由关键字(发送的时候成为bindingkey,接收成为routingKey) 队列的概念(生产者消费者启动报错大多数都是这几 阅读全文
posted @ 2018-11-18 16:35 *码识途 阅读(3874) 评论(0) 推荐(0)
摘要:首先,必须吐槽一下,springboot这个elasticsearch包对于elasticsearch的支持十分不友好,目前只支持很低版本的elasticsearch,如果有哪位大牛知道如何兼容更高版本的elasticsearch,欢迎给我留言。 es下载地址:https://www.elastic 阅读全文
posted @ 2018-11-18 11:22 *码识途 阅读(13431) 评论(1) 推荐(0)
摘要:为什么要控制流量? 举个栗子,秒杀业务,上游发起下单操作。 下游完成秒杀业务逻辑(库存检查,库存冻结,余额检查,余额冻结,订单生成,余额扣减,库存扣减,生成流水,余额解冻,库存解冻) 上游下单业务简单,每秒发起了10000个请求,下游秒杀业务复杂,每秒只能处理2000个请求,很有可能上游不限速的下单 阅读全文
posted @ 2018-11-18 11:03 *码识途 阅读(1860) 评论(0) 推荐(0)
摘要:1.生产者丢数据 生产者的消息没有投递到MQ中怎么办?从生产者弄丢数据这个角度来看,RabbitMQ提供transaction和confirm模式来确保生产者不丢消息。 transaction机制就是说,发送消息前,开启事物(channel.txSelect()),然后发送消息,如果发送过程中出现什 阅读全文
posted @ 2018-11-18 10:47 *码识途 阅读(14993) 评论(1) 推荐(4)
摘要:1.新建一个shell脚本 定义使用哪种shell版本 2.变量的定义 3.字符串的使用 3.运算符 4.流程控制 if else 表达式 for循环 while 5.用shell脚本创建50个文件 用shell脚本删除50个文件 阅读全文
posted @ 2018-11-11 23:11 *码识途 阅读(269) 评论(0) 推荐(0)
摘要:转载请注明出处:http://blog.csdn.net/l1028386804/article/details/73731363 一、背景 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了能够快速迭代上线,往往不太注重产品/项目/系统的高可靠性、高性能与高扩展性,采用单体应用和单实例数据 阅读全文
posted @ 2018-11-08 01:10 *码识途 阅读(1996) 评论(0) 推荐(0)
摘要:这个demo是基于springboot项目的。 名词介绍: ShiroShiro 主要分为 安全认证 和 接口授权 两个部分,其中的核心组件为 Subject、 SecurityManager、 Realms,公共部分 Shiro 都已经为我们封装好了,我们只需要按照一定的规则去编写响应的代码即可… 阅读全文
posted @ 2018-11-08 00:40 *码识途 阅读(16224) 评论(3) 推荐(1)