- 博客(13)
- 收藏
- 关注
原创 一、线程安全
1、什么是线程安全性 线程安全性——多线程访问时,一个类可持续进行正确的行为。 只有成员变量位置的参数才会涉及到线程安全问题。所以没有成员变量的类,永远是线程安全的。2、原子性 原子操作:一个操作要么不执行,要么完全执行完成,过程中不受其他线程干扰。 如果我们定义一个成员变量int count用于基数,然后在成员方法中进行++count操作,由于++co...
2019-01-18 15:57:21 174
原创 十、SpringCloud Sleuth实现请求链路追踪
1、为什么要实现微服务的追踪 网络非常的脆弱、网络资源非常有限。为数众多的微服务都通过网络进行通信,一个请求都经过了哪些微服务,消耗多长时间,对于解决系统问题很有帮助。2、SpringCloud Sleuth简介 Sleuth基本术语:span(跨度):基本工作单元,用一个spanID作为唯一标识。还包含:描述、时间戳事件、span父ID等。初始化的span被称为“ro...
2019-01-16 19:30:49 424
原创 九、SpringCloud Config统一管理微服务配置
1、为什么要统一管理微服务配置 集中管理配置——微服务架构中成百上千个微服务,需要集中管理 运行期间可动态调整——可在不重启微服务同时修改微服务配2、SpringCloud Config简介 SpringCloud Config为分布式系统外部配置提供了服务器端和客户端的支持,包括ConfigServer和ConfigClient两部分。3、编写Config...
2019-01-15 15:23:33 401
原创 八、Zuul构建微服务网关
1、为什么要使用微服务网关 1.1、没有网关的话,存在的问题 客户端要多次请求不同微服务,增加客户端复杂性 存在跨域请求问题 认证复杂,每个项目都要单独一套认证 难以重构,如果微服务做修改,所有调用的客户端都要改一遍 某些微服务使用防火墙/不友好协议,直接访问比较困难 使用微服务网关就可以解...
2019-01-09 11:41:09 226
原创 七、Hystrix实现容错
微服务要实现一个一般功能,通常都要涉及到一连串的微服务调用,而当最底层依赖服务出故障,就可能会导致整个调用链路资源被占用、甚至崩溃。这个时候就需要做一些容错处理。1、容错手段 1.1、“错”——雪崩效应 微服务之间通过网络通信,存在一定依赖关系。微服务本身出错或者网络问题,都有可能会导致请求失败。我们通常把“基础服务故障”导致的“级联故障”现象称为雪崩效应。...
2019-01-02 19:57:04 651
原创 六、Feign实现声明式REST调用
遗留问题:前文中使用RestTemplate实现REST API调用时,会有拼接参数问题,如果参数过多会显得非常的不优雅,如下: ribbonRestTemplate.getForObject("http://microservice-provider-user/"+id, User.class);这时候就需要一种更加便捷、优雅地调用HTTP API的方式——Feign!...
2018-12-20 15:29:49 233
原创 五、Ribbon实现客户端的负载均衡
前言:消费者获取出多个服务提供者的地址后,按一定的规则请求这多个相同服务中的一个,实现负载均衡。Ribbon的这种负载均衡可理解为针对消费者请求时做的。1、Ribbon简介 SpringCloud中,当Ribbon和Eureka配合使用,Ribbon可自动从Eureka Server中获取供给方地址列表,基于负载均衡算法(也可以自定义算法)请求其中一个服务提供者实例。如图:...
2018-12-20 10:50:57 152
原创 四、微服务的注册与发现
遗留问题:前面提到即使通过配置来使消费者指向提供者的服务,当提供者位置改变。消费者就要修改并重新部署,非常不方便。这就需要一个强大的服务发现机制,消费者可通过该机制获取服务提供者的网络信息——服务发现组件就提供了这种服务!1、提供者、消费者和服务发现组件三者的关系各微服务启动时,将自己的网络信息注册到服务发现组件中 服务消费者可以从发现组件中获取提供者的网络地址,并调用服务...
2018-12-19 17:24:59 851
原创 三、Spring Cloud实战微服务
1、Spring Cloud实战前提1.1、技术储备 语言基础——Spring Cloud是基于Java语言的工具套件,同时是基于Spring Boot构建的,所以要有Java+SpringBoot基础1.2、工具及版本 jdk1.8 + springBoot1.4.3.RELEASE + SpringCloud Camden SR4 + Maven3.3.92、服...
2018-12-18 19:27:32 274 1
原创 二、微服务框架——Spring Cloud
1、Spring Cloud简介 Spring Cloud并不是“云计算的解决方案”。而是在SpringBoot基础上,快速构建分布式系统的工具集。适合部署在Docker或PaaS上。2、Spring Cloud的特点 约定优于配置 适用于各种开发环境——各种服务器或云环境(如阿里云、AWS等) 隐藏了组件的复杂性,提供了声明式、无xml配置 ...
2018-12-18 16:39:56 269
原创 一、微服务架构概述
1、为什么会出现微服务1.1、单体应用的问题 单体应用——一个war包包含了所有功能的应用程序。 问题:随着需求增加,一个单体项目会变得越来越臃肿,可维护性降低。复杂性高:模块多、依赖不清,混乱堆砌 技术债务:技术人员变更,老代码难以维护修改 部署频率低:每次简单修改就要整个臃肿项目重新部署,所以一般少部署 可靠性差:一个小bug,可能导致整个项目的崩溃(如:死循...
2018-12-18 15:31:36 5776 2
原创 mysql事件(event)的简单使用
一、事件(event)简介:mysql中的事件就相当于是一个“定时器”,它可以设定隔一定时间去执行某个sql语句,或者调用(call)某个存储过程!并且该“定时器”不需要借助任何外部代码,在mysql内部就可以完成任务!二、事件(event)的简单使用:(以下都以sqlyog工具为例)1. 事件的创建 2. 事件的设定 3. 事件的修改和删除 4. 事件设定或修改
2017-08-28 11:40:56 1523
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人