自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 【mysql】mysql的数据库主从(一主一从)
原力计划

在搭建mysql的数据库主从之前,我们在两台不同的服务器上搭建mysql数据库,安装的步骤在下面的博客中:linux安装mysql :https://blog.csdn.net/wangyunzhao007/article/details/104230509然后我们正式开始做数据库主从:一、主机配置(主机ip:192.168.157.130)1.打开配置文件vim /etc/my.cnf2.在配置文件中写入我们的配置#主服务器唯一IDserver-id=1#启用二进制日志

2020-07-11 15:44:10 268

原创 【alibaba-cloud】nacos详解

Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。

2020-06-14 20:45:51 171 1

原创 【redis】布隆过滤器详解

简介本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”,逻辑是当布隆过滤器说某个值存在时,这个值可能不存在;当它说不存在时,那么一定不存在。优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。适用场景1.大数据判断是..

2020-06-02 19:22:59 106

原创 【redis】缓存击穿、雪崩、穿透

缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,我们数据库的 id 都是1开始自增上去的,如发起为id值为 -1 的数据或 id 为特别大不存在的数据纪。这时的用户很可能是攻击者,攻击会导致数据库压力过大,严重会击垮数据库。...

2020-06-02 08:49:12 178 1

原创 【redis】redis简介及基本数据结构的操作

简介Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。linux安装redis:https://blog.csdn.net/wangyunzhao007/article/details/105163473数据结构字符串String字典Hash列表List集合Set有序集合SortedSet...

2020-05-31 19:32:02 160

转载 随笔-集合家族

Java 集合框架上面的图展示了整个集合大家族的成员以及他们之间的关系。下面就上面的各个接口、基类做一些简单的介绍(主要介绍各个集合的特点。区别),更加详细的介绍会在不久的将来一一讲解。一、Collection 接口Collection 接口是最基本的集合接口,它不提供直接的实现,Java SDK提供的类都是继承自 Collection 的“子接口”如 List 和 Set。Collection 所代表的是一种规则,它所包含的元素都必须遵循一条或者多条规则。如有些允许重复而有些则不能重复、.

2021-01-04 14:48:04 27

原创 Springboot集成netty实例

一、简介netty是jboss提供的一个java开源框架,netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可用性的网络服务器和客户端程序。也就是说netty是一个基于nio的编程框架,使用netty可以快速的开发出一个网络应用。netty的核心是支持零拷贝的bytebuf缓冲对象、通用通信api和可扩展的事件模型;它支持多种传输服务并且支持HTTP、Protobuf、二进制、文本、WebSocket 等一系列常见协议,也支持自定义协议。netty的模型是基于reac

2020-12-01 09:51:35 191

原创 Springboot集成websocket实例

一、简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。WebSocket

2020-11-25 09:30:13 212 1

原创 项目使用mysql接收emoji表情

1.数据库、表、字段编码格式为utf8mb4

2020-11-16 10:33:25 112 1

原创 SpringBoot使用security和jwt进行鉴权设计

一、登录成功、生成token、返回前段二、请求头带上token访问后端接口

2020-11-13 13:55:09 144 1

原创 SpringBoot整合security的登录问题

依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>之后我们启动项目,打开我们的swagger页面,发现自动跳转到以下界面这是由于securi

2020-10-26 15:47:34 115 1

原创 我对软件设计原则的理解

1. 开闭原则软件实体(class,模块,功能或业务,微服务etc)对修改关闭,对拓展开放。抽象构建框架,实现拓展细节。面向抽象编程,而不是面向具体实现编程。因为抽象相对来说是稳定的,让类去依赖于固定的抽象,所有对于修改来说就是封闭的,通过OO的继承,多态机制就可以实现对抽象体的拓展,通过重写改变固有的方法或者实现新的拓展方法。2. 依赖倒置原则高层实现不应该直接依赖于低层实现,它们应该依赖于共同的抽象(低层接口)。越基础的模块发生变化影响的范围越大。3. 单一职责原则不要存

2020-10-20 20:11:32 106

原创 SpringBoot定义统一的controller返回格式

一.定义接口返回包装类package com.example.auth.filter;import com.fasterxml.jackson.annotation.JsonInclude;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;@Data@NoArgsConstructor@All

2020-10-16 14:41:06 228 2

原创 mysql-索引-笔记

为什么用?通过创建唯一索引,保证数据库表的每一行的唯一性。 大大加快数据的检索速度。(创建索引最主要的原因) 帮助服务器避免排序和临时表 将随机IO编程顺序IO 可以加速表和表之间的连接。优点很多,为什么不对表中的每一个列创建一个索引当表中数据增加,删除和修改。索引也要动态维护。降低数据的维护速度。 索引占物理空间,除了数据表占据空间之外,每个索引也要占据物理空间。如果建立聚簇索引,需要的空间会很大。 创建索引和维护需要耗费时间,随着数据量增加而增加。使用索引的注意事项:在经常需

2020-09-06 21:18:07 65

原创 Spring事务--笔记

事务是逻辑上的一组操作,要么都执行,要么不执行。事务能否生效数据库引擎是否支持事务的关键。比如常用的mysql数据默认的使用支持事务innodb引擎。但是,数据引擎变为mysiam,那么程序也就不再支持事务了。事务特性(ACID):原子性:事务是最小的执行单位,不允许分割。要不全部成功,要不全部回滚。一致性:事务执行前后,数据保持一致。隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰。也就是说多个事务并发执行时,一个事务的执行不影响其他事务的执行。持久性:一个事务被提.

2020-08-30 21:25:39 49

原创 mysql-sql优化--笔记

https://www.jianshu.com/p/663b8f38db9f分析慢查询1.查看慢SQL是否启用,查看命令:show variables like 'log_slow_queries';如果结果为ON则是开启了,如果为OFF则表示禁用了。2.开启慢查询命令:set global log_slow_queries = on; 3.查看是否开启:show variables like 'log_slow_queries';4.查看慢查询参数,即设置超过多...

2020-08-23 20:11:04 85

原创 Zookeeper --笔记

分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。Zookeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心(提供发布订阅服务)。服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。如下图所示,在 Dubbo架构中 Zook..

2020-08-16 23:12:07 50

原创 Mybatis问题解释?

1.什么是Statement对象?Statement对象,用于执行不带参数的简单SQL语句2.什么是Mybatis?1.半ORM,内封装JDBC,只关注sql语句。不需要处理加载驱动,创建连接,创建statement等繁杂的过程。直接编写sql,灵活度高。2.使用xml和注解来映射原生信息。将POJO映射成数据。几乎避免了所有的JDBC代码和手动设置参数和获取结果集。3.通过xml和注解将要执行的各种statement配置起来,通过java对象和statement中的sql的动态参数进行

2020-08-09 21:31:45 74

原创 【mycat】分库分表

一、垂直分库二、水平分表1.按照时间分类2.按照字段3.按照范围5.按照枚举分类6.全局表

2020-07-21 19:17:50 91

原创 【mycat】简介及安装

一、简介1.mycat是什么?Mycat 是数据库中间件。中间件是一类连接软件组件和应用的计算机软件, 以便于软件各部件之间的沟通。tomcat和web都是中间件。而数据库中间件是连接java应用程序和数据库。它支持MySQL ORACLE SQLServer等一些主流的数据库。2.为什么要用mycat?现在互联网行业飞速发展,数据的量级也是指数级的增长。在这种情况下,对数据的各种操作也是更加困难。一般的关系型数据库已经无法满足快速查询和插入数据的需求了。Mycat能满足数据库数据大量存储,

2020-07-15 09:16:37 87

原创 【mycat】读写分离

在此之前,我们需要安装双主双从的mysql数据库https://blog.csdn.net/wangyunzhao007/article/details/107330124还需要安装mycat一,修该schema.xml配置文件<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"> &

2020-07-15 09:16:20 60

原创 【mysql】mysql的数据库主从2(双主双从)
原力计划

在搭建mysql的数据库双主双从之前,我们在四台不同的服务器上搭建mysql数据库,安装的步骤在下面的博客中:linux安装mysql :https://blog.csdn.net/wangyunzhao007/article/details/104230509一、架构图二、配置1.主机配置第一台主机的配置(192.168.157.130)#修改配置文件vim /etc/my.cnf在my.cnf中加入以下配置文件#主服务器唯一IDserver-id=1#启用二

2020-07-14 09:18:35 177

原创 【zookeeper+Dubbo】Dubbo与SpringBoot整合的三种方式
原力计划

一、导入dubbo-start,在application,properties配置属性,使用@service暴露服务,使用@reference调用服务二、xml文件导入配置三、使用注解api方式 将每个组件手动创建到容器中

2020-07-07 17:40:11 186

转载 【zookeeper+Dubbo】zookeeper和Dubbo安装

Centos中安装zookeeper集群https://blog.csdn.net/cxh6863/article/details/101720203

2020-07-05 16:07:11 65

原创 【alibaba-cloud】网关整合sentinel实现限流

网关整合sentinel实现限流还是在前几篇博客的基础上搭建的,需要有服务端,客户端,网关等客户端服务端的搭建:https://blog.csdn.net/wangyunzhao007/article/details/106895672网关的搭建:https://blog.csdn.net/wangyunzhao007/article/details/106895545springboot整合sentinel:https://blog.csdn.net/wangyunzhao007/arti

2020-06-25 08:26:11 427

原创 【alibaba-cloud】sentinel的使用
原力计划

简介Sentinel 是面向微服务的轻量级流量控制框架,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。代替了Hystrix。Hystrix 的关注点在于以隔离和熔断为主的容错机制,超时或被熔断的调用将会快速失败,并可以提供 fallback 机制。而 Sentinel 的侧重点在于:多样化的流量控制 熔断降级 系统负载保护 实时监控和控制台安装包安装包下载的网盘地址。链接:https://pan.baidu.com/s/17mjnUvDB...

2020-06-24 19:26:27 236

原创 【alibaba-cloud】Gateway网关

什么是微服务网关?微服务网关是整个微服务API请求的入口,可以实现日志拦截,权限控制,解决跨域问题,限流,熔断,负载均衡,黑名单与白名单拦截,授权等。过滤器和网关的区别过滤器用于拦截单个服务,网关拦截整个的微服务Zuul和Gateway有哪些区别Zuul网关属于Netfix公司开源的产品属于第一代微服务网关。gateway属于SpringCLoud自研发的第二代微服务网关。相比来说SpringCloudGateway性能比zuu性能好。注意zuul是基于Spring5构建

2020-06-24 17:03:21 150

原创 【alibaba-cloud】openfeign的使用
原力计划

Spring Cloud D版及之前的版本使用的是Feign,而该项目现已更新为了OpenFeign。所以后续使用的依赖也发生了变化Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。openfeign也是类似。...

2020-06-24 15:26:08 276

转载 【alibaba-cloud】SpringCloud和SpringCloud对比

2020-06-22 09:12:35 263

原创 【alibaba-cloud】nacos安装
原力计划

一、安装准备1.安装包我自己网盘的链接:链接:https://pan.baidu.com/s/1mmxvd0cygzZVNSQyo4RBOA提取码:w1a6nacos官网的下载地址:https://github.com/alibaba/nacos/releases2.安装环境需要jdk1.8,再win和liunx安装都是这个。在启动之前有个小知识分享给大家,nacos是自己有个小型的数据库的,我们配置的数据,他能够自己存储,但是集群的情况下我们需要他们共用一个数据库,所以.

2020-06-21 18:05:20 172

原创 【alibaba-cloud】nacos持久化

一、准备mysql数据库https://blog.csdn.net/wangyunzhao007/article/details/104230509二、运行sql脚本nacos安装包我自己网盘的链接:链接:https://pan.baidu.com/s/1mmxvd0cygzZVNSQyo4RBOA提取码:w1a6nacos官网的下载地址:https://github.com/alibaba/nacos/releases下载好后,直接解压。我们找到sql脚本。在m.

2020-06-20 18:51:33 104

原创 【redis】redis持久化

Redis的数据全部存储在内存中,如果突然宕机,数据就会全部丢失,因此必须有一套机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制,它会将内存中的数据库状态保存到磁盘中。...

2020-06-02 18:27:37 90

原创 【并发编程】CountDownLatch与CyclicBarrier
原力计划

CountDownLatch简介CountDownLatch,意思是倒数门闩。它的作用是多个线程做汇聚。主线程开启了 A、B、C 三个线程做不同的事情,但是主线程需要等待 A、B、C 三个线程全部完成后才能继续后面的步骤。此时就需要 CountDownLatch 出马了。CountDownLatch 会阻塞主线程,直到计数走到 0,门闩才会打开,主线程继续执行。而计数递减是每个线程自己操作 CountDownLatch 对象实现的。这种场景很常见:篮球比赛中,作为控球后卫,如果没有快攻机会,..

2020-05-23 19:55:29 84

原创 【并发编程】线程池--Executor框架
原力计划

简介我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务,Executor的实现还提供了对生命周期的支持,以及统计信息收集,应用程序管理机制和性能监视等机

2020-05-21 20:56:41 57

原创 【并发编程】volatile简单使用

Atomic 以更为轻量的方式实现原子性。。本次我们学习volatile 关键字,则是用来解决可见性、有序性问题。简介在 JDK1.2 之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而在当前的 Java 内存模型下,线程可以把变量保存本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。要解决这个问题,就需要把变量声明为volat.

2020-05-21 20:56:26 69

原创 【并发编程】Atomic与CAS
原力计划

Atomic 相关类在 java.util.concurrent.atomic 包中。针对不同的原生类型及引用类型,有 AtomicInteger、AtomicLong、AtomicBoolean、AtomicReference 等。另外还有数组对应类型 AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray。由于 Atomic 提供的功能类似,就不一个个过了。我们以 AtomicInteger 为例,看看 Atomic 类型变量所能提供的功能。..

2020-05-21 20:56:03 98

原创 【并发编程】JAVA内存模型

JAVA内存模型即JMM(Java Memory Model),有些人会和Java内存结构混淆。虽然两者名字很接近,但描述的为不同内容。Java内存结构描述的是JVM对内存的逻辑划分,我们在学习垃圾回收和JVM优化的时候会关心JVM内存结构。而本节所讲的JMM,实际上是一种规范。它描述了Java程序的运行行为,包括多线程操作对共享内存读取时,所能读取到的值应该遵守的规则。...

2020-05-21 20:55:30 75

原创 【并发编程】并发编程的三大特性
原力计划

并发编程的书籍都会讲到并发编程的三大特性,这是并发编程中所有问题的根源,我们只有深刻理解了这三大特性,才不会编写出漏洞百出的并发程序。基本概念1、原子性,所有操作要么全部成功,要么全部失败。2、可见性,一个线程对变量进行了修改,另外一个线程能够立刻读取到此变量的最新值。3、有序性,代码在运行期间保证按照编写的顺序。为什么会有并发编程特性?线程切换导致了原子性问题对于变量a来说,我们对其执行以下代码a++;此时需要分三步执行:(1)读取a的值(2)将a的值加1

2020-05-21 20:55:02 118

原创 【并发编程】线程等待、通知(wait/notify)
原力计划

了解了在 Java 中如何启动一个线程,并且学习了 Thread 类的 API 以及线程的状态,接下来我们学习一下线程之间的等待和通知,也就是wait/notify。wait/notify 概念当前线程启动后,调用对象的wait()方法,当前线程释放对象锁,从运行态进入阻塞态,然后进入等待队列。依靠notify()/notifyAll()唤醒或者wait(long timeout)timeout时间到自动唤醒,再继续进入运行态,继续执行。还有notify()唤醒在此对象监视器上等待的单个线程,选

2020-05-21 20:54:41 73

原创 【并发编程】线程锁--Synchronized、ReentrantLock(可重入锁)
原力计划

在说锁之前,我们要明白为什么要加锁,不加锁会怎样?在并发编程中,很容易出现线程安全问题,接下来我们看个很经典的例子--银行取钱,来看一下有关线程安全的问题。取钱的流程可以分为一下几个步骤:1.用户输入账户,密码,系统判断用户的账户,密码是否正确。 2.用户输入取款金额 3.系统判断账户余额是否大于取款金额 4.如果余额大于取款金额,取款成功;小于取款金额,取款失败。假设现在有一账户,内有1000元,两人同时取钱,看下面用代码模拟的情况。public class Account {

2020-05-21 20:54:17 79

nacos-code.zip

本资源是nacos的入门测试,讲述了nacos的如何添加配置文件,并且如何使用配置文件。同时我们实现了nacos的服务注册和发现,除此之外,我们还实现了负载均衡,有手动实现的负载均衡,还有使用ribbon的负载均衡等等。

2020-06-21

springcloudalibaba-code.zip

本文件中是有关springCloudAlibaba的框架学习的代码,包含了nacos的使用,openfeign的使用(有客户端和服务端的搭建),gateway的搭建。以及对服务的的降级和限流,还有gateway对sentinel的整合,达到对网关的限流。

2020-06-25

王云召的留言板

发表于 2020-01-02 最后回复 2020-04-23

空空如也

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

TA关注的人 TA的粉丝

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