- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 Zuul路由网关
Zuul路由网关什么是Zuul:zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。zuul和eureak进行整合,将zuul自己注册为eureak服务治理下的应用,同时从eureak中获取其他微服务的消息,也既以后的访问微服务都是通过zuul跳转后获得。注意:zuul服务最终还是会注册进eureak提供:代理+路由+过滤三大功能测试:
2022-03-16 21:20:48
335
1
原创 Redis持久化
Redis持久化Redis是内存数据库,如果不将内存中的数据保存到磁盘中,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以Redis提供了持久化功能!RDB(Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建一个fork(子进程)来进行持久化,会先将数据写入到一个临时文件中,等待持久化操作结束然后去替换上次持久化好的正式文件自己变成了新的正式文件,在整个过程中,主进程是不进行任何
2022-03-11 09:20:05
138
原创 Redis基本的事务操作和乐观锁
Redis事务操作Redis事务本质:一组命令的集合(一组命令一起执行)!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行。一次性、顺序性、排他性(事务在执行时不允许被干扰)执行一系列的命令---队列 set set set 执行---所有命令在事务中并没有直接执行!只有发起执行命令时才会执行!所以Redis事务没有隔离级别的概念!提到事务我们最先想到的就是原子性,也就是大家常说的要么同时成功要么同时失败,在Redis中单条命令是可以保证原子性的,但事务不保证原子性!Red
2022-03-08 17:30:06
137
原创 python基础1
python日记-python基础1pyhton是由模块构成一个模块就是一个python源文件,一般后缀是.py模块由语句组成语句是python程序的构造单元pyhton基本格式行首的空白(也就是空格和tab缩进)用来决定逻辑行的缩进层次,从而用来决定语句的分组语句从新行的第一列开始缩进风格统一python用缩进表示程序块而不是 ”{}”python区分大小写注释:#-行注释段注释:’’’-段注释...
2021-12-28 15:41:57
142
原创 服务降级Hystrix
Feign结合Hystrix的服务降级什么是服务降级在同时拥有多个服务器的情况下 A服务器访问量剧增,这时B、C服务器访问量并不是太多,我们可以选择关闭C服务器来给A服务器更多的资源处理请求再打开C服务器。以Feign客户端为例通过配置@FeignClient注解的fallbackFactory属性来指定自定义的处理工厂,值得一提的事可以看到里面是有两个选择的第一个是指定的类第二个则是工厂创建fallbackFactory处理工厂修改配置文件,在新版本的Springcloud中,Feign
2021-02-26 15:34:53
109
原创 服务熔断Hystrix
分布式面临的问题在复杂分布式体系结构中应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败!服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的雪崩效应。总的来说就是一个链路里面某一个环节出问题了这个链路就会占有越来越多的资源导致服务崩溃,在这种情况下我们就需要 “弃车保帅”什么是Hyst
2021-02-24 16:58:32
143
原创 Feign
Feign是什么Feign是一种负载均衡的HTTP客户端, 使用Feign调用API就像调用本地方法一样,从避免了调用目标微服务时,需要不断的解析/封装json 数据的繁琐。Feign集成了Ribbon。Ribbon+eureka是面向微服务编程,而Feign是面向接口编程。如何使用Feign1.使用@EnableFeignClients启用Feign客户端2.使用@FeignClient定义客户端 value参数为远程服务或者说是微服务3.使用注解注入使用所定义feign的客户端.
2021-01-28 14:24:49
116
原创 负载均衡和Ribbon
服务提供者和消费者eureka服务注册于发现eureka集群配置ribbon是什么实现客户端负载均衡的工具,什么是负载均衡呢,简单来说就是将用户的请求平摊到多个服务上,从而达到系统的高可用,其实就是客户端如何去选择最优的服务,现实场景可能有多个服务但是客户端如果每次调用都是同一个服务那这个服务可能会崩溃,负载均衡的目的就是让客户端选择当前最优的服务。负载均衡的简单分类集中式LB既在服务的消费方和提供者之间使用独立的LB设施,如Nginx:反向代理服务器!,由设备负责把访问的请求通过某种策略转
2020-12-21 17:42:26
149
原创 eureka集群配置
接上上章接上一章首先我们是在本地测试所以就用端口来区分了 新建两个服务注册中心 7002和7003沿用7001的pom和yml文件 不同的是我们的的交互地址需要关联其他两个端口这里以7001为例接下来我们发布的服务 也就是服务提供者应该往集群里面发布 修改8001里的eureka配置我们启动7001 7002 7003 和8001在7001里可以看到7002和7003的挂载 同理在7002 和 7003中也可以看到其余两个的挂载同时会发现8001已经注册到这三个注册中心了注:要是没有发现
2020-09-07 21:13:41
435
1
原创 Eureka服务注册与发现
Eureka是Netflix的一个子模块也是核心模块之一。是基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移,服务注册与发现对于微服务 来说是非常重要的,有了服务注册与发现,只要使用服务的标识符就可以访问到服务,而不需要修改服务调用的配置文件了,功能类似于Dubbo的注册中心,比如ZookeeperEureka的基本架构springcloud封装了Netflix公司开发的Eureka模块来实现服务注册和发现Eureka采用了c-s的架构模式设计,EurekaServer作为服务注
2020-09-04 22:35:41
223
原创 Rest服务提供者和服务消费者
Spring Cloud首先我们先创建一个maven项目因为是父项目我们可以删除项目目录下的src然后修改一下打包方式为pom 然后添加依赖 要注意springcloud的springboot版本兼容问题接下来我们就可以加入模块了新建一个模块我们会发现父项目并没有包导入进来,那是因为父项目只是管理包。在新模块中导入时他会指向父项目的依赖...
2020-08-28 21:06:41
321
原创 枚举enum
枚举enum什么是枚举呢?我们学习过单例模式,即一个类只有一个实例。而枚举就是多例,一般一个枚举类的枚举项不应该太多。定义枚举类型需要使用enum关键字,例如:public enum BranchEnum { /**已创建**/ CREATED(0) /**服务中**/ ,INSERVICE(1) /**已撤点**/ ,WITHDRAWALPOINT(-1) /**暂停业务**/ ,SUSPENDBUSINESS(-2) /**仅收**/ ,ONLYACCEPT(-3);
2020-07-16 14:50:57
141
原创 InnoDB和MYISAM
InnoDB和MYISAM的差别为什么建表时的数据库引擎要用InnoDB 而不用MYISAMMyISAM:默认表类型,他是基于传统的SAM类型,ISAM是Indexed Sequential Access Method (有索引的順序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外鍵,如果执行大量的select,insert MyISAM比较合适。InnoDB:支持事务安全的引擎,支持外鍵、行锁、事务是他的最大特点。如果有大量的update和insert,建议使用In
2020-07-16 14:28:37
116
原创 java判断密码强度工具类
java判断密码强度工具类public class CheckPassword { /** * 密码强度 * * @return Z = 字母 S = 数字 T = 特殊字符 */ /* 一、假定密码字符数范围6-16,除英文数字和字母外的字符都视为特殊字符: 弱:^[0-9A-Za-z]{6,16}$ 中:^(?=.{6,16})[0-9A-Za-z]*[^0-9A-Za-z][0-9A-Za-z]*$ 强:^(?=.{6
2020-07-14 17:46:27
3811
原创 java和js的隐式调用
java和js中的隐式调用所谓的隐式调用简单来说就是自动调用一些方法,而这些方法像钩子一样可以在外部修改,从而改变既定行为。 java 当你没有使用父类默认的构造方法时,此时在子类的构造方法中就需要显示的调用父类定义的构造方法。//父类class Animal{ private String name; //如果你定义一个新的构造方法 public Animal(String name) { this.name = name; }}//子类public D
2020-07-14 17:36:45
215
原创 WHERE 和 ON 的区别
WHERE 和 ON 的区别 在使用sql语句连接操作时,关联两个表或者多个表来返回查询结果时数据库会返回一个临时表给用户,比如LEFT JOIN WHERE 和 ON都是过滤条件,区别在于: ON条件是在生成临时表时的过滤条件,不管ON的条件是否为真都会返回左表数据。 WHERE条件是在临时表生成完成以后对临时表进行数据过滤,此时就不一定会返回左表全部数据,而是经过WHERE条件筛选以后的数据。...
2020-07-14 17:06:00
498
原创 Windows系统下安装操作Redis
第一步 我们要先下载一个安装包 下面是下载路径 https://github.s3.amazonaws.com/downloads/dmajkic/redis/redis-2.4.5-win32-win64.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20171206%2Fus-east-
2017-12-11 10:19:56
290
原创 springboot入门 整合ssm框架
首先看一下项目目录 然后配置pro.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:schemaLocation="http://ma
2017-11-17 15:49:02
17704
1
原创 社会化分享
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
2017-10-27 11:48:17
292
转载 返回新插入数据的主键自增的值。
@Options(useGeneratedKeys = true, keyProperty = "instanceId", keyColumn = "instance_id")@Options注解中默认设置的主键对应的字段名为id、在我们的表中,主键名为instance_id,因此需要将keyProperty和keyColumn设置成我们想要的字段:这个注解的意思就是,从instance_
2017-10-25 09:31:14
365
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人