- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 k8s
文章目录minikube安装kubectl查看集群信息:查看集群节点查看k8s对象的更多信息为kubectl设置别名和命令行补齐创建别名为kubectl配置tab补全运行第一个应用pod列出pod访问应用创建一个服务对象为什么需要服务增加期望的副本数k8s dashboardminikube安装安装参考dashboard暴露外部访问kubectl proxy --port=8001(暴露的端口) --address='192.168.131.136'(暴露的ip) --accept-hosts=’^
2021-05-22 21:08:44 212
原创 Spring Cloud与gRPC
文章目录Spring Cloud为什么需要gRPCgRPC简介gRPC的核心概念服务定义Spring Cloud为什么需要gRPC微服务架构的风格,是每个微服务运行在自己的进程中,并使用轻量级的通信机制,通常是HTTP RESTFUL API。这些服务是围绕业务能力来划分的、构建的,并通过完全自动化的机制来部署。这些服务可以用不同的语言来编写,以及不同的数据存储技术,以保证最低限度的集中式管理...
2019-02-14 16:19:09 4072
转载 注解@PostConstruct与@PreDestroy详解及实例
转载:https://blog.csdn.net/wo541075754/article/details/52174900
2019-02-12 15:39:52 442
原创 Spring Cloud与分布式事务
文章目录X/Open DTP模型OSI TP与2PCXA接口与JTACAP与BASE定理Java事务编程接口JTA分布式事务TCC模式定义TCC与2PCTCC与ACID分布式事务SAGA模式X/Open DTP模型DTP: Distributed Transaction Processing模型,用来规范全局事务处理。如上图所示,它定义了几个组件,分别如下:AP:Application...
2019-02-12 15:39:01 1006
原创 Spring Cloud认证和授权
文章目录微服务安全与权限流程Spring Cloud认证和授权方案微服务下SSO单点登陆方案分布式Session与网关结合方案客户端Token与网关结合方案浏览器Cookie与网关结合方案网关与Token和服务间鉴权结合微服务安全与权限流程我们发送请求到负载均衡软件,负载均衡发到微服务网关上,网关进行用户认证后,解析出用户的基本信息,通过认证后,携带用户标识到后台微服务,微服务根据标识进行相应...
2019-02-03 14:19:10 5289
原创 Sleuth深入用法
文章目录TracingFilterBaggage实例客户端自定义过滤器配置文件中配置服务端配置文件中配置TracingFilterSleuth是通过Brave的TracingFilter达到收集Span信息的目的。我们可以自定义Filter来对Span信息做一些自定义的修改,比如增加tag或者响应头信息。注意:自定义的Filter的优先级要比TracingFilter的低,不然无法拿到Tra...
2019-02-02 17:55:39 3219
原创 Sleuth
文章目录原理介绍Brave和Zipkin使用依赖Sleuth对feign的支持Sleuth对RestTemplate的支持Sleuth对多线程的支持原理介绍Sleuth通过Trace定义一次业务调用链,根据它的信息,我们就知道多少个系统参与了该业务处理。Span用来记录系统间的调用顺序和时间戳信息。Trace和Span的信息经过整合,就能知道该业务的完整调用链。Brave和Zipkin...
2019-02-02 17:27:17 1225
原创 maven打包命令
文章目录跳过测试跳过测试在打包命令后添加选项-Dmaven.test.skip=true,如mvn clean package -Dmaven.test.skip=truemvn clean 清理上次生成的文件包等。第二种方式,在pom.xml中添加插件<plugin> <groupId>org.apache.maven.plugins</...
2018-12-24 09:24:02 1187
原创 MySQL之分区
文章目录分区类型查看MySQL是否支持分区?分区类型RANGE分区LIST分区HASH分区KEY分区分区类型MySQL分区分为横向分区(按行分区),纵向分区(按列分区)。查看MySQL是否支持分区?MySQL 5.6一下版本使用如下命令:mysql&amp;amp;amp;gt; SHOW VARIABLES LIKE '%partition%';MySQL 5.6以上版本使用如下命令mysql&amp;amp;amp;...
2018-11-02 14:03:26 320
原创 MySQL之用户自定义变量
在查询中混合使用过程化和关系化逻辑的时候,自定义变量可能会非常有用。单纯的关系查询将所有的东西都当成无序的数据集合,并且一次性操作它们。用户自定义变量是一个用来存储内容的临时容器,在连接MySQL的整个过程中都存在。可以使用SET和SELECT来定义他们(在某些情况下,也可以使用=来赋值,不过为了避免歧义,建议始终使用:=):SET @one := 1;SET @min_actor := ...
2018-10-31 18:27:58 6642
原创 MySQL之优化特定类型的查询
文章目录优化COUNT()查询关于MyISAM的神话简单的优化使用近似值优化关联查询优化子查询优化GROUP BY和DISTINCT优化LIMIT分页优化SQL_CALC_FOUND_ROWS优化UNION查询静态查询分析使用用户自定义变量优化COUNT()查询COUNT()可以统计某个列值的数量,也可以统计行数。在统计列值时要求列值是非空的(不统计NULL)。如果在括号中指定了列或列的表...
2018-10-31 15:19:25 283
原创 MySQL之查询优化器的提示
如果对MySQL选择的执行计划不满意,可以使用优化器的几个提示(hint)来控制最终的执行计划。文章目录HIGN_PRIORITY和LOW_PRIORITYDELAYEDSTRAIGHT_JOINSQL_SMALL_RESULT和SQL_BIG_RESULTSQL_BUFFER_RESULTSQL_CACHE和SQL_NO_CACHESQL_CALC_FOUND_ROWSFOR UPDATE...
2018-10-30 15:39:27 439
原创 MySQL之use index()查询
语法:SELECT ... FROM TABLE [ {USE|IGNORE|FORCE} INDEX (key_list)] WHERE ...USE INDEX用来提供你希望MySQL去参考的索引列表,就可以让MySQL不再考虑使用其他可用的索引。INGNORE INDEX让MySQL忽略一个或者多个索引。FORCE INDEX强制MySQL使用一个特定的索引。...
2018-10-30 14:27:13 5272
原创 MySQL之查询优化器的局限性
MySQL的万能"嵌套循环"并不是对每种查询都是最优的。不过还好,MySQL只对少部分查询不使用,我们往往可以通过改写查询来让MySQL高效地完成工作。MySQL 5.6以后,会消除很多MySQL原本的限制,让更多的查询能够以尽可能高的效率完成。文章目录关联子查询UNION的限制关联子查询MySQL的关联子查询实现得非常糟糕。最糟糕的一类查询时WHERE条件中包含IN()的子查询。I...
2018-10-29 18:33:30 299
原创 Spring之事务传播
在TransactionDefinition接口中定义事务的7中传播特性PROPAGATION_REQUIRED支持当前事务,如果当前没有事务,则新建一个事务,这是最常见的选择。 也就是说如果当前有事务,则加入到当前事务中,没有则新建事务执行。PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,则以非事务的方式执行。PROPAGATION_MANDATORY...
2018-10-25 09:20:07 120
原创 MySQL之查询性能优化
文章目录MySQL是否在扫描额外的记录响应时间扫描的行数的返回的行数扫描的行数和访问类型重构查询的方式一个复杂查询还是多个简单查询切分查询分解关联查询查询执行的基础MySQL客户端和服务器通信协议查询状态查询缓存查询的优化处理语法执行器和预处理MySQL是否在扫描额外的记录在确定查询只返回需要的数据之后,接下看看看查询是否为了返回结果扫描了过多的数据。三个衡量查询开销的指标如下:响应时...
2018-10-24 17:59:54 450
原创 MySQL之高性能索引
索引在MySQL中也叫做键(key)是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键。尤其是表中的数据越来越大时,索引对性能的影响愈发重要。不恰当的索引会随着数据量逐渐增大,性能则会急剧下降。索引优化应该是对查询性能优化最有效的手段了。创建一个真正的”最优“经常需要重写查询。文章目录索引基础索引的类型B-Tree索引索引基础在MySQL中,存储引擎首先在索引中找到对...
2018-10-22 18:27:18 354
原创 MySQL之EXPLAIN中type列和extra列的含义
文章目录type列extra列type列MySQL找到数据行的方式,即访问类型。效率从最差到最好的顺序如下:ALL全表扫描,没有用到任何的索引,这是一种非常原始的查找方法,非常的耗时二号抵消。index这种类型只是另一种形式的全部扫描,只不过它的扫描顺序是按照索引的顺序,然后根据索引回表取数据。和All相比,他们都是取得了全表的数据,而且index要先读索引再回表取数据。如果连接类...
2018-10-22 14:36:14 2127 1
原创 Spring Cloud之服务器端的自我保护机制
在Eureka中各个节点都是平等的,没有ZK中角色的概念,某些节点挂点也不会影响其他节点的正常运行。默认情况下,如果Eureka Server在一定时间内(默认90秒)没有收到某个微服务实例的心跳,将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时不应该移除这个微服务,所以引入了自我保护机制。自我保护机制是一种针对网络异...
2018-10-17 09:47:03 393
原创 MySQL之Schema与数据类型优化
良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计schema,这往往需要权衡各种因素。如,反范式的设计可以加快某些类型的查询,但同时可能使另一种的查询变慢。比如,添加计数表和汇总表是一种很好的优化查询的方式,但这些表的维护成本可能会很高。MySQL独有的特性和实现细节对性能的影响也很大。文章目录选择优化的数据类型数据类型整数类型实数类型字符串类型VARCHARCH...
2018-10-11 14:07:50 297
原创 MySQL之基准测试
基准测试(benchmark)是针对系统设计的一种压力测试。通常的目标是为了掌握系统的行为。但也有其他原因,如重新某个系统状态,或者做新硬件的可靠性测试。文章目录为什么需要基准测试基准测试的策略测试何种指标基准测试的方法设计和规划基准测试基准测试应该运行多长时间获取系统性能和状态获得准确的测试结果运行基准测试并分析结果基准测试工具集成式测试工具为什么需要基准测试为什么基准测试很重要?因...
2018-09-30 17:27:44 694
原创 MySQL之存储引擎
在文件系统中,MySQL将每个数据库(schema)保存为数据目录下的一个子目录。创建表时,MySQL会在数据库子目录下创建一个和表同名的.frm文件保存表的定义。例如创建一个MyTable的表,MySQL会在MyTable.frm文件中保存该表的定义。因为MySQL使用文件系统的目录和文件来保存数据库和表的定义,大小写敏感性和具体的平台密切相关。Windows中,大小写是不敏感的;但在类Uni...
2018-09-30 14:18:10 207
原创 MySQL之架构与历史
MySQL最重要,最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理(Query Processing)及其他系统任务(Server Task)和数据的存储/提取相分离。这种处理和存储相分离的设计可以在使用时根据性能、特性和其他需求来选择数据存储的方式。文章目录MySQL逻辑架构连接管理与安全性优化与执行并发控制读写锁锁粒度表锁行级锁事务隔离级别死锁事务日志MySQL中的事务自动提...
2018-09-29 18:20:13 303
原创 NIO2 AIO
与NIO不同,在进行读写操作时,只需直接调用API的read()或write方法即可。这两个方法都是异步的。对于读操作而言,当有流可读取时,操作系统会将流中的数据传入read方法的缓冲区,并通知应用程序;对应写操作而言,当操作系统将流写入完毕时,会主动通知应用程序。可以认为:read/write方法都是异步的,完成后会主动调用回调函数。在JDK1.7中,AIO被称为NIO.2,主要在java...
2018-09-29 11:33:40 484 1
原创 NIO之重要概念
文章目录ChannelBufferSelectorJAVA NIO 框架简要设计分析Channel通道,建立在应用程序和操作系统之间的交换事件,传递内容的渠道。一个通道具有一个专属的文件状态描述符。应用程序可以通过通道读取和向操作系统写入数据。所有被Selector选择器注册的通道,只能是继承了SelectableChannel类的子类。ServerSocketChannel:应用服...
2018-09-29 08:49:47 324
原创 NIO之Path
Java的Path接口是Java NIO2的一部分,位于java.nio.file包中,全路径为java.nio.file.Path。一个Path实例代表了一个文件系统中的路径。一个路径可以指向一个文件或文件夹。一个路径可以是相对路径(相对于其他路径的文件或文件夹路径)和绝对路径(从根路径开始的全路径)。java.nio.file.Path接口和java.io.File类是相似的,但不完全...
2018-09-27 17:37:11 819
原创 Java NIO与IO区别
文章目录面向流和面向缓冲阻塞和非阻塞选择器NIO和IO对程序设计的影响API调用数据处理用来处理数据的线程数面向流和面向缓冲NIO和IO之间的一个最大的区别就是,IO是面向流的,而NIO是面向缓冲区的。IO是面向流的,意味着每次从流中读取一个或多个字节,直到读取所有字节,它们没有被缓存在任何地方。此外,流是单向的,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,则需要把数据缓存...
2018-09-27 16:52:33 1056
原创 JavaNIO之Pipe
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。在Java NIO中,包java.nio.channel.pipe用于按顺序读取和写入数据。管道用于确保数据必须以写入管道的相同顺序读取。文章目录原理图创建管道向管道中写入数据从管道中读取数据原理图创建管道使用Pipe.open()方...
2018-09-27 15:46:10 228
原创 NIO之Selector
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。文章目录Selector的用途Selector的创建打开服务器套接字通道向Selector注册通道SelectionKeyinterest集合ready集合Channel + Selector附加的对象...
2018-09-21 17:56:32 199
原创 NIO之Buffer
Java NIO中的Buffer用于和NIO通道进行交互。数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。Buffer的基本用法四个步骤写入数据到Buffer调用flip()方法从Buffer中读取数据调用clear()方法或者compa...
2018-09-19 11:56:29 164
原创 Java之NIO
java.nio全称java non-blocking IO(实际上是 new io),是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。NIO是为了弥补IO操作的不足而诞生的,NIO的一些新特性有:非阻塞I/O,选择器,缓冲以及管道。管道(Channel),缓冲(Buffer...
2018-09-18 20:12:20 128
原创 Java序列化
对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其它程序获取了这种二进制流,就可以恢复成原来的Java对象。序列化:将java对象转换为二进制字节码的过程。反序列化:将二进制字节码转换为java对象的过程。让某个java对象具有序列化机制,需要实现以下两个接口之一Serial...
2018-09-18 18:00:55 120
原创 java之IO
InputStream:将外部物理设备(磁盘,网络等)中的数据读取到程序(内存)中,OutputStream:将程序中的数据输出到外部设备中。流的分类按操作数据的单位分类:字节流(8bit,以byte为单位传输),字符流(16bit,以char为单位传输)按流的流向分类:输入流和输出流按流的角色分类:节点流和处理流流体系InputStream &amp;amp; Reader在读...
2018-09-18 16:32:46 129
原创 java中System.exit()
System.exit(int status):用来结束当前正在运行的java虚拟机。当status=0时表示正常结束,status=1表示异常退出(强制退出,程序未执行完也会退出)。
2018-09-18 14:11:22 1014
原创 Java I/O之File类
位于java.io.File包。文件或目录名的抽象表示,和平台无关。只能操作文件或目录的属性,如新建,删除,重名文件或目录,但File类无法访问文件内容本身(需要使用输入/输出流)。File可以作为参数传递给流的构造对象。构造方法public File(String pathname) 以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname...
2018-09-18 10:31:11 149
原创 Actor的内置状态转换
在很多场景下,Actor的业务逻辑可能比较复杂,Actor可能需要根据不同的状态对同一条消息作出不同的处理。Akka已经为我们考虑到了这一点,一个Actor内部消息处理函数可以拥有多个不同的状态,在特定的状态下,可以对同一消息进行不同的处理,状态之间也可以任意切换。...
2018-09-14 18:30:53 389
原创 Akka之消息路由
Akka提供了非常灵活的消息发送机制。有时候我们使用一组Actor来提供服务,这一组Actor中所有的Actor都 是对等的,也就是说你可以找任何一个Actor来为你服务。这种情况下,如何才能快速有效地找到合适的Actor呢?或者说如何调度这些消息,才可以使负载更为均衡地分配在这一组Actor中呢?为了解决这个问题,Akka使用一个路由器组件(Router)来封装消息的调度。系统提供了...
2018-09-14 18:16:09 481
原创 Akka之收件箱(Inbox)
我们已经知道,所有Actor之间的通信都是通过消息来进行的。我们不仅可以使用Actor对Actor进行消息的发送和接受,也可以使用收件箱组件对Actor进行消息的发送和接收, 使用收件箱大大的方便了应用程序与Actor之间的交互。实例package com.bzb.java8.akka;import akka.actor.UntypedActor;import akk...
2018-09-14 16:58:17 546
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人