- 博客(56)
- 收藏
- 关注
原创 服务网格Istio之微服务架构设计模式
微服务架构的构件原创 扼杀者模式 它们是传统、庞大的单体应用。扼杀者模式为此而生。这种模式会创建两个独立的应用,一同运行在同样的 URI 空间中。随着时间点的推移,新的重构了的应用会扼杀或者替换掉原有应用,最后就可以关掉单体应用了。这种模式分为 转换、共存 和 终结 三个步骤 单体你继续运营者, 我慢慢把你替换掉 舱壁模式 这个模式把应用的元素隔离开来,这样一个失败之后,其它的还能继续工作。这个模...
2019-11-17 17:21:03
762
原创 设计模式(单例模式和原型模式)
设计模式 最近出去面试,发现自己对设计模式上面有点生疏了,也的的确确忘了很多,这边就稍微的巩固一下自己的设计模式.面试官也说到了,你如果都不知道这些设计模式的存在,你怎么知道要去使用他, 一直去了解分布式结构的使用,却忘了最基本的东西的确该打. 单利模式 单利模式,我相信我们在开发过程中最容易碰见,我连这个都忘记了.果然不行. 懒汉式单例模式 public class LanHan{ //vo...
2019-11-04 23:36:13
501
原创 Logback 日志管理配置
logback 配置 我们一般都有比较多的去使用logback 但是配置我一般都记不住这里简单的记录一下防止以后用上. <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artif...
2019-10-31 20:24:27
572
原创 Spring Cloud Alibaba(七) Sentinel 连接客服端以及服务熔断
Sentinel连接 POM <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> ...
2019-10-27 19:59:21
723
原创 Spring Cloud Alibaba(六) Sentinel 分布式系统的流量防卫部
什么是Sentinel 我们知道在微幅框架中, 我们会根据业务来拆分成一个个的服务,服务与服务之间可以通过HTTP/RPC来相互调用,那么如果一个服务挂了,那么我其他相关联的服务岂不是都会一个个崩溃,服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的 “雪崩” 效应。为了解决这个问题,业界提出了 所有的服务都要接入Sentinel 所有的服务都需要接入Na...
2019-10-27 19:56:42
337
原创 Spring Cloud Alibaba(五) Nacos Config 分布式配置中心
为什么Nacos Config? 在分布式系统中,由于服务特别的多,那是不是我的配置文件也特别的多,我总不可能要改配置就一个个改把,打个比方我需要修改数据库的地址账号密码等,我一个个提供方去改,这未免效率也太低了把(〃>皿<) 所以这个时候我们就需要Nacos Config Nacos Config 介绍 Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化...
2019-10-25 23:37:06
1028
原创 RocketMQ(二) 集群配置
相关概念 NameServer 这里我们可以理解成类似于zk的一个注册中心,而且rocketmq最初也是基于zk作为注册中心的,现在相当于为rocketmq自定义了一个注册中心,代码不超过1000行。RocketMQ 有多种配置方式可以令客户端找到 Name Server, 然后通过 Name Server 再找到 Broker,分别如下,优先级由高到低,高优先级会覆盖低优先级。客户端提供http...
2019-10-23 20:59:50
1264
原创 RocketMQ(一) 基本使用
RocketMQ 一. JMS介绍 JMS(Java Message Service),是Java平台中关于面向消息中间件的接口,是一种与厂商无关的API,用来访问消息收发。它的使用场景如下: 实现业务的解耦、削峰,异步。 跨平台,多语言 分布式事务,最终一致性 二. RocketMQ常见的概念 Producer:生产消息的服务。 Producer Group: 消息生产者组,发送同类消息...
2019-10-23 20:48:11
1246
原创 Spring Cloud Alibaba(四) Nacos Feign 客户端和负载均衡策略
Nacos Feign 客户端 什么是 Feign Feign 是一个声明式的伪 HTTP 客户端,它使得写 HTTP 客户端变得更简单。使用 Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用 Feign 注解和 JAX-RS 注解。Feign 支持可插拔的编码器和解码器。Feign 默认集成了 Ribbon,Nacos 也很好的兼容了 Feign,默认实现了负载均衡的效果 ...
2019-10-21 12:03:32
5483
2
原创 Spring Cloud Alibaba(三) Nacos 注册中心(服务于发现)
Nacos 是什么,做什么用的 这里我就不bb了, 官方文档不是更加详细吗,还有的更新 去吧,这里去Nacos官网 但是我还是要bb一下. 概述 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以 “服务” 为中心的现...
2019-10-21 12:00:50
539
1
原创 Spring Cloud Alibaba(二) 搭建工程项目
创建项目工程 创建一个普通的工程就可以了, 负责管理模块的开发 POM 一大堆根本记不住的东西,看着复制就好,根据自己需求改 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XML...
2019-10-21 11:56:18
3902
原创 Spring Cloud Alibaba(一) 概念,简介
为什么需要学习Spring Cloud Alibaba 因为该死的Spring Cloud Netflix 系列技术栈进入维护模式了!! 学了半天的Eurker也停止维护了!!! 慢慢的这些分布式模块都将慢慢的进入维护模式,不再更新进的功能,也就意味着现在不学以后也得学别的,在取代这些技术. 以下 Spring Cloud Netflix 模块和相应的 Starter 将进入维护模式: spri...
2019-10-21 11:53:31
788
原创 (六) Redis 实现Schedule 定时任务
Schedule(定时任务) ⼀张图来说明(任务执⾏⻓度超过周期的情况): 虽然定时任务可以嵌⼊到web应⽤程序和WAR⽂件中,但下⾯演⽰⼀种更简单的⽅法创建了⼀个独⽴的应⽤程序。您将所有的内容打包在⼀个单⼀的、可执⾏的JAR⽂件中,⽤⼀个传统Java main()⽅法驱动。这也就是springboot的启动类。 一. 入门案例 1.1 主程序 package com.qianfeng.te...
2019-10-17 22:58:43
3570
3
原创 (五) Redis 实现Mybatis 二级缓存
一. redis与spring boot整合 依赖配置: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <...
2019-10-17 22:57:26
243
原创 (四) Redis Redis集群设置
一. Redis集群 A. 在redis的解压目录下新建rediscluster文件夹,将redis的解压目录下的redis.conf文件拷贝到rediscluster目录下,将该文件复制六份,名字分别为: redis-6379.conf redis-6380.conf redis-6381.conf redis-6382.conf redis-6383.conf redis-6384.conf...
2019-10-17 22:56:45
275
原创 (三) Redis Linux中Redis的安装
Linux版Redis的下载地址为:https://redis.io/download 将Redis放入到Linux操作系统中,然后解压,进入到redis-5.0.5目录下: 执行 make 命令 make 如果在使用make命令的时候出现如上的错误,执行以下命令: apt install gcc automake autoconf libtool make 再次执行 make 命...
2019-10-17 22:55:44
198
原创 (二) Redis redis.conf配置文件
一.Redis配置 redis的核心配置文件为redis的解压目录下名为redis.windows-service.conf的模板文件,拷贝一份重命名为redis.conf文件。 1.1 安全登录 1.2 数据的持久化 1.3 主从备份(灾备)(Master-Slave) 二. Redis 持久化之RDB和AOF Redis 有两种持久化方案,RDB(Redis DataBas...
2019-10-17 22:54:06
534
原创 (一) Redis 介绍以及常用类型操作
Redis 一. 简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。 下载地址:https://github.com/microsoftarchive/redis/...
2019-10-17 22:50:19
229
原创 spring boot 统一结果集处理(使用注解和aop)
1.创建Result工具类 1.1 首先你可以创建枚举类型用来标记状态 public enum StatusTypeEnum { /** * 200为成功 * 404为错误信息 */ SUCCESS(200, "success"), ERROR(404, "error"); private String msg; privat...
2019-10-11 13:14:38
838
原创 springCloud 四.使用config控制 分布式配置问题
1. spring cloud config 了解 spring cloud config 为微服务架构中的各个服务提供了集中化的外部配置,配置服务器为各个不同的微服务环境提供了一个中心化的配置。 简单的来说,可以将一些配置信息放在git上面,config通过方式获取git上面的配置信息,在分给需要配置的 分布式服务 解决了部署导致配置文件不好管理的问题,而且配置环境有开发环境测试环境和上线环境,...
2019-10-11 12:59:11
213
原创 springCloud 三. 集成Zuul路由网关控制
1. Zuul 路由网关介绍 其实我们可以吧zuul看成,是公司的前台,我在在做使用zureka做完分布式操作之后呢,我们会发现这些端口我们都可以直接连接,那么既然能直接连接肯定不行,所以我们需要统一管理这些端口,用一个端口去调用这些端口,而Zuul就是解决这个问题的. 具体功能: 外部访问统一入口 过滤功能 也即以后的访问微服务都是通过Zuul跳转后获得 所以我们也需要把zuul注册Eure...
2019-10-11 12:58:19
284
原创 springCloud 二. 分布式服务 Hystrix断路器
1. Hystrix 断路器 概念 Hystrix是一个用于分布式系统的延迟和容错的开源库,在分布式系统中,许多依赖会不可避免的调用失败,例如超时,异常等,Hystrix能保证在一个依赖出现问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。 为系统提供保护和控制 以进行快速失败,缩短延迟等待时间 提供失败回退(Fallback)和相对优雅的服务降级机制 提供有效的服务容错...
2019-10-11 12:57:33
314
原创 springCloud 一 .集成eureka分布式服务发现框架
Eurel 1. Eurel简介 Eureka是Netflix开发的服务发现框架,是一个基于REST的服务 主要包含两个组件: Eureka Server和Eureka Client 主要有: Eureka Server(服务注册中心) 服务提供方 服务消费方 可以看这张图了解大概 [外链图片转存失败(img-mfrXhR2c-1569338591091)(BDB475AE408B4089B5...
2019-09-24 23:24:49
375
原创 springBoot(七) 简单配置 Redis加工具类
1 连接Redis jedis 1.5 redssion 2.0 spring boot 导包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot...
2019-09-24 23:22:48
325
原创 mysql 锁原理与概念
1乐观锁 实现的机制 一般会在数据库中加一个字段一般叫(version) 实现原理 取出记录时,获取当前version 更新时,带上这个version 执行更新时, set version = newVersion where version = oldVersion 如果version不对,就更新失败 2悲观锁 3事务 3.1原子性 **原理: ** 当我们开启了事务,将数据全部写到日...
2019-09-24 23:19:29
275
原创 spring boot 教你全局异常的处理
spring boot 全局异常处理 处理全局异常需要分为三步来做 自定义异常枚举 自定义异常 spring boot AOP异常处理 下面我写的比较简单,希望结合根据自己情况处理,这里就简单的写一些代码思想 1 自定义一样枚举 public enum WebExceptionEnum { /** * SYS_ERROR 系统文件错误 * UNKNOWN_...
2019-09-21 08:56:31
316
原创 spring boot --- result 统一的结果集处理
1 url的命名 在实际开发中名词居多,见名知意 get 获取数据 post 添加数据 put 修改数据 delete 逻辑假删除 2 返回数据的格式 2.1 一般返回的是json数据 {状态码: 信息} **一些常用的返回状态码 ** https://help.aliyun.com/knowledge_detail/36393.html?spm=5176.10695662.1...
2019-09-21 08:55:37
3743
原创 springBoot(六) 调用多数据源 dynamic-datasource
1 dynamic-datasource简介 本框架只做 切换数据源 这件核心的事情,并不限制您的具体操作。 强烈建议在 主从模式 下遵循普遍的规则,以便他人能更轻易理解您的代码。 主数据库 建议 只执行 INSERT UPDATE DELETE 操作。 从数据库 建议 只执行 SELECT 操作。 2 使用方法 2.1 引入dynamic-datasource-spring-boot-sta...
2019-09-21 08:53:49
26219
原创 springBoot(五) 配置热部署
1 配置热部署 1.1 热部署的作用 在编辑器中已经启动的项目,当再次修改其源代码后,能自动的进行编译、更新,不用人为的手动停掉项目,再进行重启。 2 热部署的步骤 2.1导如包 <!--依赖包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId...
2019-09-21 08:53:00
238
原创 springBoot(四)增强插件-mybatis Plsh
增强插件流行的两种 tk.mybatis mybatis plus 注意:侵入性强的代码,劲量少用,不然后期维护会很麻烦(一旦增强插件不维护了) Mybatis-Plsh 官网: https://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A7 优点 侵入性小,损耗小 通过CRUD操作,支持分页 预防SQL注入,支持多种数据区 支持ActiveRecord支...
2019-09-21 08:50:32
457
原创 SpringBoot(三)配置文件(yml)和自动化配置原理
SpringBoot 配置文件 配置文件的两种分类 application.properties application.yml properties配置格式 栗子: server.port=8080 server.servle.context-path= /api yml配置格式 栗子: server: servlet: context-path: /api port: 9000 ...
2019-09-21 08:49:21
694
原创 在application-context.xml中配置多个property-placeholder报错问题
配置多个property-placeholder会报错 各位在配置多个applicaton想在xml中调用其字段的时候是不是发现调用一个没有问题但是同时写两个application-context 就会报错总有一个里面的字段找不到数据. 例如:???? 原因: 即便是写在不同的xml里面,只要最终被application-context.xml的标签所引入,都是会报错的。 解决: 正确的做法追加一个i...
2019-09-18 09:19:31
517
原创 SpringBoot(二)概念
SpringBoot简介 传统的ssm项目 配置文件过于繁琐而且依赖包太多,容易导致冲突 springboot 简化了使用的难度(配置文件),以及有各种.starter,减少了依赖包 spring cloud(微服务)的基础 核心思想 习惯优于配置 利用很少的配置,就可以开发我们的web端 优点 减少开发的时间,提高了开发的效率(因为没有繁琐的配置) 基于javaConfig , 避免使用x...
2019-09-18 09:13:32
302
原创 (枚举) 在实战中的基本用法
在项目中我们常常会碰到一些常量之类的死数据,但是为了方便管理,我们最好都是不要直接写死,不然等到要修改的时候就只能一条条的修改,那么我们有没有更加方便的方式去保存这些死数据呢,这里我们就可以用到枚举了 枚举的特点: 是一个特殊的类,拥有编译安全、完全单利、和线程的安全 而且我们也可以写一个接口枚举例如: public interface IEnum { String getCode()...
2019-09-04 20:38:39
370
原创 Linux常见命令大全
一、查看 语法: ls[参数][路径] ([] 为可选) 参数说明: -a 显示全部(常用) -l 详细细节(常用) -R 递归显示子目录文件列表(常用) -A 显示隐藏 -d 只显示目录,不显示目录下的文件 -i 显示inode值 -u 按修改时间排序 -S 按文件大小排序 -F 显示文件类型后缀 目录/连接@可执行文件 color 不同属性以不同颜色显示 二、切换目...
2019-09-04 20:12:03
173
原创 一分钟搭建完Spring-mvc基础环境
导入Maven包 <!--版本--> <spring.version>5.1.9.RELEASE</spring.version> <mybatis.version>3.5.2</mybatis.version> <mybatis-Spring.version>2.0.2</mybatis-Spr...
2019-08-26 22:58:49
241
原创 Spring 四、 spring-mybaits 关联查询(二)
概念 所谓的一对一查询,就是说我们在查询一个表的数据的时候,需要关联查询其他表的数据 一对多(多对一)是指一方持有多方的引用。 实现方式 使用resultMap实现 使用resultType实现 SQL语句需要使用连接查询 SQL语句需要使用嵌套查询 栗子 表映射类 @Data public class Cart { private Integer cartId; /** ...
2019-08-21 23:22:53
240
原创 Spring 四、spring-mybaits 数据库控制(一)
mybaits的基本使用 导入相关包 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <depende...
2019-08-21 22:53:07
262
原创 Spring 三、Spring-MVC及其常用注解
创建MVC步骤 导入Spring MVC包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${sping-version}</version&g...
2019-08-21 22:48:45
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅