- 博客(50)
- 收藏
- 关注
原创 Kubernates(k8s) 自学 (一)
Kubernates1. Kubernates在企业中的应用场景1.1 服务器部署模式的变迁1.2 Docker & Kubernates2. Kubernates集群架构及组件3. Pod4. Service1. Kubernates在企业中的应用场景官方文档自动化运维工具 - 使用k8s构建自动化运维平台(降本增效)充分利用服务器资源服务器无缝迁移1.1 服务器部署模式的变迁物理机部署虚拟机部署容器部署1.2 Docker & Kubernates为了提高业
2022-03-17 10:52:33
2460
原创 Elasticsearch自学(二)
Elasticsearch自学(二)1. Elasticsearch分词器1.1 分词器组成1.2 ES内置的分词器2. Elasticsearch安装IK插件2.1 查看容器ID/names,以及版本2.2 进入容器2.3 安装插件2.4 重启容器2.5 IK两种分词模式2.6 测试中文分词3. IK自定义扩展字典3.1 自定义字典文件3.2 修改 ik 的配置文件1. Elasticsearch分词器分词器是ES中专门处理分词的组件,英文为Analyzer,定义为:从一串文本中切分出一个一个的词条,
2020-10-13 15:08:15
473
原创 Elasticsearch自学(一)
Elasticsearch1. Elasticsearch相关概念1.1 优势1.2 主要概念1.3 Elasticsearch和RDBMS之间的比较1.4 docker中安装Elastic Search1.5 ElasticSearch的9200和9300端口区别2. Kibana2.1 Kibana介绍2.2 Docker中安装Kibana3. ES乐观锁控制并发4. Elasticsearch倒排索引4.1 正向索引4.2 倒排索引5. ElasticSearch DSL 介绍5.1 REST 增删改
2020-10-12 17:40:24
612
原创 MongoDB自学(一)
这里写自定义目录标题1 MongoDB相关概念1.1 业务应用场景1.2 MongoDB简介1.3 体系结构1.4 数据模型如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入1 MongoDB相关概念1.1 业务应用场景传统的关系型数据库(如Mysql),在数据操作的“
2020-08-31 16:08:21
360
1
原创 OpenResty(Nginx+Lua)实践
一、OpenResty集成Lua编写简单的HTTP1.1 测试lua脚本保持luatest.lua 文件--用于接收前端数据的对象local args=nil--获取前端的请求方式 并获取传递的参数 local request_method = ngx.var.request_method--判断是get请求还是post请求并分别拿出相应的数据if"GET" == reques...
2020-04-06 23:03:09
302
原创 设计模式之美
一、概念学习导读1.1 设计原则SOLID 原则 -SRP 单一职责原则SOLID 原则 -OCP 开闭原则SOLID 原则 -LSP 里式替换原则SOLID 原则 -ISP 接口隔离原则SOLID 原则 -DIP 依赖倒置原则DRY 原则、KISS 原则、YAGNI 原则、LOD 法则1.2 设计模式创建型常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。...
2020-04-05 17:57:41
1055
原创 Redis使用场景讲解
一、Redis的5大数据类型简易图二、String应用场景单值存储SET key valueGET key对象缓存SET user:1 value (json 字符串)MSET user:1:name zhangsan user:1:sex FMGET user:1:name user:1:sex对象缓存SETNX product:1 true //返回1代表取所...
2020-04-03 22:25:42
230
原创 分布式Session的实现和原理
一、为什么需要session举例:比如张三登录的A网页然后进行用户名和密码登录之后,当跳转到B页面的时候,如果B页面也需要登录信息。这个时候由于HTTP协议是一个无状态协议,这样就需要张三再次登录。因此需要在HTTP协议之上进行扩展,这个时候就引入了cookie和session。二、Cookie与Session1. cookie 是什么?是存储于用户主机浏览器中的一小段文本文件由服务...
2020-03-22 21:11:08
826
原创 AbstractRoutingDataSource实现动态数据源切换
一、AbstractRoutingDataSource介绍Spring-jdbc 提供了AbstractRoutingDataSource 根据用户定义的规则选择当前的数据源,这样我们可以在执行查询之前,设置使用的数据源。实现可动态路由的数据源,在每次数据库查询操作前执行。它的抽象方法 determineCurrentLookupKey() 决定使用哪个数据源。AbstractRoutingD...
2020-03-22 20:12:15
1480
原创 Sharding-jdbc 读写分离(三)- springboot+mybatis+Hikari
概念在上一篇文章介绍了如何使用Sharing-JDBC实现数据库的分表分库。这章节将介绍读写分离,读写分离的好处就是在并发量比较大的情况下,将查询数据库的压力 分担到多个从库中,能够满足高并发的要求。比如上一篇实现的那样,架构图如下:代码sharding.jdbc.datasource.names=db0,db1# 数据源db0sharding.jdbc.datasource.db0....
2020-03-15 19:13:07
963
原创 Sharding-jdbc 分库分表专题内容(二)springboot+mybatis+Hikari
一、单库分表pom.xml配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo...
2020-03-12 21:00:54
810
原创 Sharding-jdbc 分库分表专题内容(一)
一、ShardingSphere背景ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,由以下部分组成。Sharding-JDBC - 提供标准化的数据分片Sharding-Proxy - 分布式事务和Sharding-Sidecar(计划中)- 数据库治理功能可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。二、概念 & 功...
2020-03-10 21:12:57
704
原创 Nginx 核心知识
Nginx 核心技术Nginx 适用场景![在这里插入图片描述](https://img-blog.csdnimg.cn/20191231181336882.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjMzODU...
2020-01-01 14:56:18
231
原创 SpringBoot热部署&热加载
1. 热启动 devtoolPom中直接添加依赖即可:&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-devtools&lt;/artifactId&gt;
2019-02-19 14:50:25
853
原创 Mysql 性能优化(2)
Mysql 性能优化(1)–设置开启慢查询记录并使用慢查询工具分析一 、分析sql查询使用explain查询sql的执行计划explain select customer_id,first_name,last_name from customer;二 、优化sql查询2.1 优化max和count函数**max函数:**获取最大订单日期:explain select max(p...
2019-02-18 18:03:12
290
原创 Mysql 性能优化(1)--设置开启慢查询记录并使用慢查询工具分析
一 、设置开启慢查询1.1 如何发现比较慢的sql使用mysq慢查日志对有效率问题的sql进行监控long_query_time: 慢查询时间,定义超过1秒的查询计数到变量Slow_queriesslow_query_log: 慢查询日志是否开启show_query_log_file: 慢查询日志路径log_queries_not_using_indexes:没有使用索引的查询sho...
2019-02-18 16:11:13
433
原创 Jenkins安装与配置
一、Windows环境中安装Jenkins在最简单的情况下,Jenkins 只需要两个步骤:1、下载最新的版本(一个 WAR 文件)Jenkins官方网址: http://Jenkins-ci.org/ (官网也提供windows版的exe文件)2、命运行运行 java -jar jenkins.war (默认情况下端口是8080,如果要使用其他端口启动,可以通过命令行”java –ja...
2019-02-15 17:28:08
255
原创 华为云-- 消息通知服务(SMN)
1:业务背景利用华为云发送短信邮箱等消息2:华为云设置依次设置主题,订阅(可为手机号码,邮箱地址),消息模板消息模板变量可用{}格式,后台填充数据:3:代码实践3.1:获取token官方文档:https://support.huaweicloud.com/api-iam/zh-cn_topic_0057845583.htmlhttps://iam.cn-east-2.myhua...
2019-01-29 11:32:53
3269
原创 微信公众号--发送模板消息
1:业务背景模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。2:公众号设置2.1 申请模板消息功能接口权限2.2 设置所属行业2.3 选取模板3:代码实践根据模板参数设置模板数据TreeMap<String, String> param...
2019-01-15 14:07:35
746
原创 微信公众号--微信网页授权
1:用户同意授权,获取codehttps://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect替换URL中的APPID&R...
2019-01-02 17:31:54
420
原创 Gson — 自定义类型适配器 (TypeAdapter)
背景要实现java对象是Date类型,使用Gson转成json需要是long类型。这样我们可以通过自定义类型适配器去实现此需求。实现自定义adapter 集成 TypeAdapter 并覆盖write方法,利用jsonWriter.value()方法将date对象转化成任意你想要的值作为json输出值public class DateToLongAdapter extends TypeAd...
2019-01-02 14:05:01
3026
原创 Spring Boot :事件和监听器(Application events and listeners)
一般您不需要使用应用程序事件,但可以方便地知道它们存在。 在内部,Spring Boot使用事件来处理各种任务。实现ApplicationListener接口:@Slf4jpublic class ApplicationStartedEventListener implements ApplicationListener<ApplicationStartedEvent> {...
2018-12-26 11:13:51
705
原创 SpringBoot 利用注解实现AOP
自定义注解@Target({ ElementType.METHOD, ElementType.TYPE })@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface OperateLog{ String value();}添加切面监听@Aspect@Componentpublic class Ope...
2018-12-25 20:39:39
316
原创 利用Jackson自定义JSON序列化工具
背景:@JsonFormat(pattern=“yyyy-MM-dd”) 将Date转换成String 一般后台传值给前台时@JsonFormat会让时间以0区时间显示(格林尼治时间)。如果直接使用会少了8小时(我所在的是北京时区)修改为@JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”)/**更新时间 用户可以点击更新,保存最新更新的时间...
2018-12-25 20:23:11
1406
原创 理解Spring ,Spring MVC和Spring Boot
前言从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷。但是Spring和Spring MVC的众多配置有时却有点繁琐,相信有过Spring MVC开发经验的朋友能深刻体会到这一痛苦。因为即使是开发一个Hello-World的Web应用,都需要我们在pom文件中导入各种依赖,编写web.xml、spring.xml、springmvc.xml配置文件等。所以...
2018-12-21 15:45:37
179
原创 JDK8 新特性
1. Lambda表达式和函数式接口forEach:Arrays.asList( &amp;amp;amp;amp;quot;a&amp;amp;amp;amp;quot;, &amp;amp;amp;amp;quot;b&amp;amp;amp;amp;quot;, &amp;amp;amp;amp;quot;d&amp;amp;amp;amp;quot; ).forEach( e -&
2018-12-05 12:02:21
369
1
原创 Fegin/RestTemplate调用的时候数据格式转换为linkedHashMap
当rest接口中的response,带有Object对象的时候public class BaseResponse { private int status = 200; private String message; private Object data; public BaseResponse (Object data){ this.data =...
2018-11-20 21:21:24
4302
4
原创 Rabbit MQ 自定义监听器容器(Listener Container)的启动与停止
项目中会遇到,MQ队列的监听是在某一前提条件准备好的情况下才启动,比如MQ接收到一系列数据,这些数据的保存依赖于另外一个MQ消息的一些配置接收之后才能完成。指定属性autoStartup为false,并启动对应的listener id@RabbitHandler@RabbitListener(queues = "Message", autoStartup= "false", id = "Me...
2018-11-08 14:35:05
8420
4
原创 spring boot rabbitmq传递bean(实体类)/ JSON
spring boot使用rabbitmq传递实体类:java对象必须序列化。实现序列化有2种方式:1)bean对象实现Serializable接口发送者和接收者bean对象都必须序列化2)借助SerializationUtils工具类&lt;dependency&gt; &lt;groupId&gt;org.apache.commons&lt;/groupId&gt; .
2018-11-08 09:27:42
10369
3
原创 在Docker中部署Springboot项目(windows版)
一、创建springboot项目1.1 controller中加入方法@RestControllerpublic class HelloController { @GetMapping("/docker") public String hello() { return "Hello Docker!!"; }}1.2 pom中加入docker-maven-plugin...
2018-10-17 17:07:13
4164
原创 SpringBoot集成WebSocket (简单例子)
一、 WebSocket简介什么是WebSocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。为什么需要 WebSocket?因为 HTTP 协议有一个缺陷:通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息。二、 WebSocket简单实现使用websocke...
2018-10-16 14:59:10
1378
1
原创 Spring Cloud(十)整合异构系统Nodejs(Spring Cloud Sidecar)
一、 Sidecar简介什么是Sidecar模式? Sidecar模式是一种将应用功能从应用本身剥离出来作为单独进程的方式。该模式允许我们向应用无侵入添加多种功能,避免了为满足第三方组件需求而向应用添加额外的配置代码。就像边车加装在摩托车上一样,在软件架构中,sidecar附加到主应用,或者叫父应用上,以扩展/增强功能特性,同时Sidecar与主应用是松耦合的。非JVM微服务可操作Eurek...
2018-10-10 18:44:35
4940
2
原创 Spring Cloud(九)断路器聚合仪表盘(Hystrix Turbine)
一、使用Turbine聚合监控数据前面使用的/hystrix.stream端点监控单个微服务。然而在使用微服务架构的应用系统一般会包含多个微服务,每个微服务通常都会部署多个实例。如果每次只能查看单个实例的监控数据,就必须在Hystrix Dashboard上切换想要监控的地址,这显然很不方便1.1 Turbine简介Turbine是一个聚合Hystrix监控数据的工具,它可将所有相关/hys...
2018-10-10 11:53:55
290
原创 Spring Cloud(八)断路器仪表盘(Hystrix Dashboard)
一、Hystrix Dashboard简介在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。二、实战本文以介绍基于Ribbon实现Hystrix Dashboard。通过改造ribbon-consumer实...
2018-10-09 18:50:52
464
原创 Spring Cloud(七)消息总线(Spring Cloud Bus)
一、消息总线在微服务架构的系统中,我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有微服务实例都连接上来,由于该主题中产生的消息会被所有实例监听和消费,所以我们称它为消息总线。二、spring cloud busspring cloud bus整合 java的事件处理机制和消息中间件消息的发送和接受,主要由发送端、接收端和事件组成。针对不同的业务需求,可以设置不同的事件,发送...
2018-10-09 15:11:57
461
原创 Springboot集成RabbitMQ
一、Message Broker与AMQP简介1.1 Message BrokerMessage Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景:消息路由到一个或多个目的地消息转化为其他的表现方式执行消息的聚集、消息的分解,并将结果发送到他们的目的地,然后重新组合相应返回给消息用户调用Web服务来检索数据响应事件或错误使用发布-订阅模式来提供内...
2018-10-08 15:53:55
207
原创 在docker上部署启动RabbitMQ
1、查询rabbitmq镜像docker search rabbitmq:management2、拉取rabbitmq镜像docker pull rabbitmq:management注意:如果docker pull rabbitmq 后面不带management(Tag),启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq.3...
2018-10-08 11:02:55
3070
1
原创 Spring Cloud(六)配置中心(Spring Cloud Config)
一、简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config 。Spring Cloud Config就是我们通常意义上的配置中心。Spring Cloud Config-把应用原本放在本地文件的配置抽取出来放在中心服务器,本质是配置信息从本地迁移到云端。...
2018-10-08 08:54:14
252
原创 Spring Cloud(五)服务网关(Zuul)
一、前言Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个微服务框架已经完成了。我们还是少考虑了一个问题,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务。当添加API...
2018-10-02 22:21:57
264
原创 Spring Cloud(四)断路器(Hystrix)
一、Hystrix简介在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,最终导致自身服务的瘫痪。服...
2018-10-02 19:19:10
272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人