自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿甘兄

Life is like a box of chocolates

  • 博客(92)
  • 资源 (4)
  • 论坛 (1)
  • 收藏
  • 关注

原创 温故知新-并发编程篇

01 Mind Map02 Question&AnswerQ1: 线程创建方式?A: 分为“有返回结果”(3种)和“无返回结果”Q2: 线程分类?A: 两种,哪两种?有什么特性?Q3: 线程运行状态?A: 5个流程,分别对应代码那一部分?Q4: 线程优先级?A: 两个方法的特点、设置优先级的范围Q5: 如何让3个线程按顺序执行?A: 使用join方法,考虑具...

2019-12-30 11:40:27 173 2

原创 互联网知识总结

2019年即将过去,经过一段时间的学习,互联网知识的学习已暂告一段落,内容很多,是时候总结下自己所学习的知识了。这一路来的学习,每一个知识都得自己去动手实操,没人指导,只能靠自己。虽然过程很累,但学习到的是自己的,能让自己成长,一切都值得!本文先列出整个互联网知识的目录,再使用脑图来总结下:《互联网知识》I*****************《并发编程篇》I_ _ _ _ _ _ _ _ _...

2019-12-26 17:06:11 747

原创 认清学习的本质

01 引言我作为一名接受16年教育(小学6年+中学6年+大学4年)的学生。为什么我要称自己为学生,而不是工作者、学者、大学生?我们需要知道的是,无论一个人多有能力,多有才华亦或是天才,都不敢称自己是一个「无所不知」的人,在这个浩瀚的宇宙,我们终究是个平凡人。认识到这一点,我们就应该按正常人的自然规律去认识这个世界,学会与这个世界和谐相处,用自己有限的生命去学习世界上有限的知识,探索无限...

2019-12-26 11:43:13 487

原创 微服务技术系列教程(45)-Docker总结

1. 引言Docker在之前的文章有讲到过,有兴趣的同学可以参考下:《Docker专栏》本文来主要重温一下Docker。2. Docker简介Docker官方网址: https://docs.docker.com/ 英文地址Docker中文网址: http://www.docker.org.cn/ 中文地址Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是...

2019-12-26 10:01:43 270

原创 微服务技术系列教程(44)- SpringCloud2.x新知识介绍

在之前的博客,我们学的都是SpringCloud1.0 的基础知识,SpringCloud2.x新增了很多知识需要去学习的,如下图:文章就不再详细描述了,可以参考博客:《使用springcloud gateway搭建网关(分流,限流,熔断)》《Nacos初探–作为配置中心》《随行付微服务之配置中心ConfigKeeper》《熔断器Resilience4j》《Sentinel 与 H...

2019-12-25 18:12:19 216

原创 数据库系列课程(12)-MySQL数据库优化及注意事项

1.MySQL数据库优化方案Mysql的优化,大体可以分为三部分:索引的优化慢查询优化表优化开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。还可以使用腾讯云MySQL数据库监控:腾讯云数据库地址:https://console.cloud.tencent.com/cdb实例监控https://conso...

2019-12-25 16:56:24 215

原创 数据库系列课程(11)-MyISAM和InnoDB对B-Tree索引不同的实现方式

MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM主键索引的:InnoDB也使用B+Tree作为索引结构,但具体实现方式却与MyISAM截然不同.MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个...

2019-12-25 16:38:13 153

原创 数据库系列课程(10)-MySQL索引实现原理

1. 引言MySQL官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构。白话文:索引就像书的目录一样可以非常快速的定位到书的页码。如果向mysql发出一条sql语句请求,查询的字段没有创建索引的话,可能会导致全表扫描,这样的话查询效率非常低。那么MySQL中索引采用的是那些数据结构?或者说索引实现的原理。下面来举例讲解。2. 索引实现的原理2.1 方式一:...

2019-12-25 16:33:10 131

原创 微服务技术系列教程(43)- SpringCloud -Zipkin环境集成

1. 引言Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现的。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助查询跟踪数据以实现对分布式系统的监控程序,从而及时发现系统中出现的延迟过高问题。除了面向开发的 API 接口之外,它还提供了方便的 UI 组件来帮助我们直观地搜索跟踪信息和分析请求链路明细,比如可以...

2019-12-25 15:49:51 196

原创 微服务技术系列教程(42)- SpringCloud -Sleuth与Zipkin服务链路

1. 分布式链路监控与追踪产生背景在微服务系统中,随着业务的发展,系统会变得越来越大,那么各个服务之间的调用关系也就变得越来越复杂。一个 HTTP 请求会调用多个不同的微服务来处理返回最后的结果,在这个调用过程中,可能会因为某个服务出现网络延迟过高或发送错误导致请求失败,这个时候,对请求调用的监控就显得尤为重要了。Spring Cloud Sleuth 提供了分布式服务链路监控的解决方案(链路...

2019-12-25 15:43:42 368

原创 数据库系列课程(09)-Sharding-Jdbc日志分析

Sharding-JDBC中的路由结果是通过分片字段和分片方法来确定的。如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片。如果查询没有分片的字段,会向所有的db或者是表都会查询一遍,让后封装结果级给客户端。Sharding-Jdbc和MyCat查询原理大致相同:示例代码:public interface OrderRepository extends CrudRe...

2019-12-25 15:21:27 566

原创 数据库系列课程(08)-SpringBoot整合Sharding-Jdbc

1. 引言先来理解几个概念:「LogicTable」:数据分片的逻辑表,对于水平拆分的数据库(表),同一类表的总称。例如订单信息表拆分为2张表,分别是t_order_0、t_order_1,他们的逻辑表名为t_order。「ActualTable」:在分片的数据库中真实存在的物理表。即上个示例中的t_order_0、t_order_1。「DataNode」:数据分片的最小单元。由数据源名...

2019-12-25 14:24:20 93

原创 数据库系列课程(07)-Sharding-Jdbc简介

1. Sharding-Jdbc介绍Sharding-Jdbc在3.0后改名为Shardingsphere,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。Sharding-Sphere(...

2019-12-24 16:23:37 117

原创 数据库系列课程(06)-MyCat分片按省操作数据库例子

1.引言MyCat中的路由结果是通过分片字段和分片方法来确定的,如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片。如果查询没有分片的字段,会向所有的db都会查询一遍,让后封装结果级给客户端。那么实际情况中,在Mycat中分片是如何实现的呢?下面来举个例子。需求:数据库中主要存放“省”的信息,如广东省要放到广东省数据库,浙江省要放到浙江省数据。。。每个省都有自己的数据库...

2019-12-23 15:51:39 137

原创 数据库系列课程(05)-MyCat分库分表策略

1.MyCat分库分表数据库分表分库原则遵循 垂直拆分与水平拆分。1.1 垂直拆分垂直拆分就是根据不同的业务,分为不同的数据库,比如会员数据库、订单数据库、支付数据库等,垂直拆分在大型电商系统中用的非常常见。优点:拆分后业务清晰,拆分规则明确,系统之间整合或扩展容易。缺点:部分业务表无法join,只能通过接口方式解决,提高了系统复杂度。存在分布式事务问题。1.2 水平拆分...

2019-12-23 11:11:34 345

原创 数据库系列课程(04)-SpringBoot整合MySQL读写分离

1.引言代码已上传到Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/SpringBoot-MyCat-Demo在前面几个章节,我们了解到了MySQL数据库的主从复制、使用MyCat实现读写分离:《数据库系列课程(01)-MySQL主从复制与数据备份》《数据库系列课程(02)-MyCat读写分离》《数据库系列课程(03)-Linu...

2019-12-20 17:35:33 233

原创 数据库系列课程(03)-Linux环境MyCat的安装与配置

本文来讲解下如何在Linux下安装MyCat:1.上传Mycat-server-1.6.5-release-20180122220033-linux.tar2.解压安装包tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz 3.配置schema.xmlcd /usr/local/mycat/conf/vi s...

2019-12-20 17:00:08 161

原创 数据库系列课程(02)-MyCat读写分离

1.MyCat简介MyCAT是一款由阿里Cobar演变而来的用于支持数据库,读写分离、分表分库的分布式中间件。MyCAT支持Oracle、MSSQL、MYSQL、PG、DB2关系型数据库,同时也支持MongoDB等非关系型数据库。MyCAT原理:MyCat主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做...

2019-12-20 16:27:54 143

原创 数据库系列课程(01)-MySQL主从复制与数据备份

1.MySQL数据库MySQL作为世界上使用最为广泛的数据库之一,免费是其原因之一。但不可忽略的是它本身的功能的确很强大。随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题了。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。在此之前我们必须要保证每台MySQL服务器里的数据同步。数据同步我们可以通过MyS...

2019-12-20 15:58:21 220

原创 分布式系列教程(43) -高并发情况下生成分布式全局id策略

方案一:利用全球唯一UUID生成订单号UUID基本概念:UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。UUID组成部分:当前日期和时间+时钟序列+随机数+全局唯一的IEEE机器识别号(全局唯一的IEEE机器识别号:如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得)。UUID优点:简单,代码方便。生成ID性能非常好,基本不会有性能问题。全球唯一,...

2019-12-19 20:20:23 201

原创 分布式系列教程(42) -ELK配置与使用

引言在前面的博客中,我们知道在Linux下如何搭建ELK(ElasticSearch+Logstash+Kibana)以及它们的使用,如有兴趣的同学,可以参考下。安装教程:《分布式系列教程(27) -Linux环境下安装Elasticsearch》《分布式系列教程(37) -Linux下搭建ElasticSearch集群》《分布式系列教程(28) -Linux环境安装Kibana》《...

2019-12-19 19:32:02 135 1

原创 分布式系列教程(41) -Logtash的简单使用

引言在上一篇博客《分布式系列教程(40) -Linux下安装Logstash》,我们知道了Logstash的安装步骤,本文就来详细讲解Logstash的使用。下面来讲解一个简单的案例。Logstash以JSON的格式输出ES的日志在ElasticSearch日志目录文件夹下(/usr/local/elasticsearch-6.4.3/logs),可以看到各种es的日志文件:其中上图的...

2019-12-19 17:41:47 155

原创 分布式系列教程(40) -Linux下安装Logstash

Logstash安装很简单,下面直接写过程:1.上传logstash安装包2.解压tar -zxvf logstash-6.4.3.tar.gz 3.启动logstash:cd /usr/local/logstash-6.4.3/bin/./logstash -f ../config/myconfig.conf启动的时候可以指定配置文件,具体的配置规则在自定义的文件myconf...

2019-12-19 17:01:00 101

原创 分布式系列教程(39) -分布式日志采集系统ELK

引言在传统项目中,如果在生产环境中,有多台不同的服务器集群,如果生产环境需要通过日志定位项目的Bug的话,需要在每台节点上使用传统的命令方式查询,这样效率非常底下。通常,日志被分散在储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。...

2019-12-19 16:29:41 156

原创 分布式系列教程(38) -SpringBoot基于ES的网盘应用

1. 引言项目以提交至Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/SpringBoot-ES-NetDisk-Demo网盘搜索原理图:本文主要做一个迷你版的网盘操作,具体的爬虫获取数据功能就不做了,主要做网盘搜索的功能,演示效果如下:搜索之后2. SpringBoot基于ES的网盘应用开发2.1 数据准备1.定义文档...

2019-12-19 15:40:05 155

原创 分布式系列教程(37) -Linux下搭建ElasticSearch集群

引言在上一篇博客《分布式系列教程(36) -ElasticSearch集群原理》,主要讲解了ElasticSearch集群的原理。本文开始实践,在Linux下搭建ElasticSearch集群。Linux下搭建ElasticSearch集群1.首先准备三台服务器:服务器名称IP地址node-1192.168.212.184node-2192.168.212.1...

2019-12-19 11:46:01 116

原创 分布式系列教程(36) -ElasticSearch集群原理

1.引言ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心内容分片机制、集群发现、分片负载均衡请求路由。1.1 ES基本概念名词Cluster:代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任...

2019-12-19 11:22:38 514

原创 分布式系列教程(35) -ElasticSearch文档映射

1. 文档映射已经把ElasticSearch的核心概念和关系数据库做了一个对比,索引(index)相当于数据库,类型(type)相当于数据表,映射(Mapping)相当于数据表的表结构。关系型数据库ElasticSearch数据库(DB)索引(Index)表(Table)类型(type)行(Row)文档(Docments)列(Columns)字段...

2019-12-18 19:52:32 126

原创 分布式系列教程(34) -Linux下安装ik分词器

因为Elasticsearch中默认的标准分词器分词器对中文分词不是很友好,会将中文词语拆分成一个一个中文的汉字,因此引入中文分词器-es-ik插件。本文来讲解下再Linux下安装ik分词器。1. 首先下载ik分词器下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases注意:es-ik分词插件版本一定要和es安装...

2019-12-18 17:51:52 482

原创 分布式系列教程(33) -ElasticSearch DSL语言查询与过滤

ES中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST过去一个JSON,由于POST的请求是JSON格式的,所以存在很多灵活性,也有很多形式。下面来举些例子:1. 根据名称精准查询姓名GET user_dao/user/_search{ "query":...

2019-12-18 17:14:44 154

原创 分布式系列教程(32) -ElasticSearch条件查询

ElasticSearch可以执行复杂的条件查询,下面直接举例子:首先先添加文档:PUT /user_dao/user_table/1{ "name":"baby", "sex":0, "age":1}PUT /user_dao/user_table/2{ "name":"father", "sex":0, "age":26}PUT /user_dao/us...

2019-12-18 16:56:20 154

原创 分布式系列教程(31) -ElasticSearch倒排索引

正向索引正排表 : 以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护,因为索引是基于文档建立的。若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除。但是在查...

2019-12-18 16:30:32 203 1

原创 分布式系列教程(30) -SpringBoot整合ElasticSearch

引言代码已提交至Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/SpringBoot-ElasticSearch-DemoSpringBoot整合ElasticSearch1.新建Maven项目Spring-ElasticSearch-Demo2.添加maven依赖:<parent> <groupId>org...

2019-12-17 20:31:49 274

原创 分布式系列教程(29) -Kibana实现增删改查

ElasticSearch类似于关系型数据库,可以使用Kibana对ElasticSearch进行增删改查。关系型数据库与ES对比:关系型数据库ElasticSearch数据库(DB)索引(Index)表(Table)类型(type)行(Row)文档(Docments)列(Columns)字段(Fields)在Kibana的管理界面,可以进行...

2019-12-17 20:01:30 217

原创 分布式系列教程(28) -Linux环境安装Kibana

引言Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询...

2019-12-17 19:36:00 171

原创 分布式系列教程(27) -Linux环境下安装Elasticsearch

1. 引言在上一篇博客《分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介》,介绍了ES的优点、应用场景等。本文进行实际操作,在Linux下安装ES。2. Linux下安装Elasticsearch注意:必须先安装好JDK!ES非常占内存,Linux安装内存建议1g内存以上!2.1 正常安装1.下载elasticsearch安装包:https://www.elas...

2019-12-17 19:18:24 216

原创 分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介

1. Elasticsearch简介Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。El...

2019-12-17 17:10:11 207

原创 微服务技术系列教程(41)- SpringCloud -OAuth2搭建微服务开放平台

引言在Spring Cloud需要使用oauth2来实现多个微服务的统一认证授权,通过向OAuth服务发送某个类型的grant type进行集中认证和授权,从而获得access_token,而这个token是受其他微服务信任的,我们在后续的访问可以通过access_token来进行,从而实现了微服务的统一认证授权。客户端根据约定的ClientID、ClientSecret、Scope来从Acc...

2019-12-17 16:41:03 371

原创 微服务技术系列教程(40)- SpringCloud -OAuth2简介&原理

1. 引言在前面《互联网并发与安全专题》中,有讲到过OAuth协议。《互联网并发与安全系列教程(09) -基于AccessToken方式实现API设计》《互联网并发与安全系列教程(11) -OAuth2.0协议实现API设计》2. 开放平台接口开放平台接口一般应用于以下场景:比如腾讯的QQ互联网、微信开放平台、蚂蚁金服开放平台 、微博开放平台,比如实现功能QQ联合登陆、微信扫码登...

2019-12-17 15:54:04 806

原创 微服务技术系列教程(39)- SpringBoot -RBAC权限模型

1. 引言代码和相关的sql脚本已提交至Github,有兴趣的同学可以下载看看:https://github.com/ylw-github/SpringBoot-Security-Demo2. RBAC权限模型RBAC权限模型 : 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中...

2019-12-17 15:22:06 374

Navicat for SqlServer(破解详细教程版)

Navicat是一个SQLServer查看工具,相对于其它的数据库查看软件,功能十分强大。里面包含破解的教程,以及破解相关的补丁。

2019-04-10

NavicatPremium12(破解版)

NavicatPremium12 破解版本,支持各种格式,SQLServer 、MySql、Oracle等。

2019-04-26

redis-desktop-manager-0.8.2.3849.zip

redis-desktop-manager-0.8.2.3849 是一个redis可视化工具。

2019-05-09

Navicat for SqlServer

相对于其它的数据库软件,Navicat for SqlServer 可以更方便地查看SqlServer数据库

2019-04-10

杨林伟的留言板

发表于 2020-01-02 最后回复 2020-05-19

空空如也

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

TA关注的人 TA的粉丝

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