自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 一、线程安全

1、什么是线程安全性     线程安全性——多线程访问时,一个类可持续进行正确的行为。     只有成员变量位置的参数才会涉及到线程安全问题。所以没有成员变量的类,永远是线程安全的。 2、原子性     原子操作:一个操作要么不执行,要么完全执行完成,过程中不受其他线程干扰。     如果我们定义一个成员变量int count用于基数,然后在成员方法中进行++count操作,由于++co...

2019-01-18 15:57:21 194

原创 十、SpringCloud Sleuth实现请求链路追踪

1、为什么要实现微服务的追踪     网络非常的脆弱、网络资源非常有限。为数众多的微服务都通过网络进行通信,一个请求都经过了哪些微服务,消耗多长时间,对于解决系统问题很有帮助。 2、SpringCloud Sleuth简介     Sleuth基本术语: span(跨度):基本工作单元,用一个spanID作为唯一标识。还包含:描述、时间戳事件、span父ID等。初始化的span被称为“ro...

2019-01-16 19:30:49 453

原创 九、SpringCloud Config统一管理微服务配置

1、为什么要统一管理微服务配置     集中管理配置——微服务架构中成百上千个微服务,需要集中管理     运行期间可动态调整——可在不重启微服务同时修改微服务配 2、SpringCloud Config简介     SpringCloud Config为分布式系统外部配置提供了服务器端和客户端的支持,包括ConfigServer和ConfigClient两部分。 3、编写Config...

2019-01-15 15:23:33 425

原创 八、Zuul构建微服务网关

1、为什么要使用微服务网关     1.1、没有网关的话,存在的问题         客户端要多次请求不同微服务,增加客户端复杂性         存在跨域请求问题         认证复杂,每个项目都要单独一套认证         难以重构,如果微服务做修改,所有调用的客户端都要改一遍         某些微服务使用防火墙/不友好协议,直接访问比较困难     使用微服务网关就可以解...

2019-01-09 11:41:09 250

原创 七、Hystrix实现容错

    微服务要实现一个一般功能,通常都要涉及到一连串的微服务调用,而当最底层依赖服务出故障,就可能会导致整个调用链路资源被占用、甚至崩溃。这个时候就需要做一些容错处理。 1、容错手段     1.1、“错”——雪崩效应         微服务之间通过网络通信,存在一定依赖关系。微服务本身出错或者网络问题,都有可能会导致请求失败。我们通常把“基础服务故障”导致的“级联故障”现象称为雪崩效应。...

2019-01-02 19:57:04 690

原创 六、Feign实现声明式REST调用

    遗留问题:前文中使用RestTemplate实现REST API调用时,会有拼接参数问题,如果参数过多会显得非常的不优雅,如下: ribbonRestTemplate.getForObject("http://microservice-provider-user/"+id, User.class); 这时候就需要一种更加便捷、优雅地调用HTTP API的方式——Feign! ...

2018-12-20 15:29:49 274

原创 五、Ribbon实现客户端的负载均衡

    前言:消费者获取出多个服务提供者的地址后,按一定的规则请求这多个相同服务中的一个,实现负载均衡。Ribbon的这种负载均衡可理解为针对消费者请求时做的。 1、Ribbon简介     SpringCloud中,当Ribbon和Eureka配合使用,Ribbon可自动从Eureka Server中获取供给方地址列表,基于负载均衡算法(也可以自定义算法)请求其中一个服务提供者实例。如图: ...

2018-12-20 10:50:57 173

原创 四、微服务的注册与发现

    遗留问题:前面提到即使通过配置来使消费者指向提供者的服务,当提供者位置改变。消费者就要修改并重新部署,非常不方便。这就需要一个强大的服务发现机制,消费者可通过该机制获取服务提供者的网络信息——服务发现组件就提供了这种服务! 1、提供者、消费者和服务发现组件三者的关系 各微服务启动时,将自己的网络信息注册到服务发现组件中 服务消费者可以从发现组件中获取提供者的网络地址,并调用服务 ...

2018-12-19 17:24:59 886

原创 三、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.9 2、服...

2018-12-18 19:27:32 299 1

原创 二、微服务框架——Spring Cloud

1、Spring Cloud简介     Spring Cloud并不是“云计算的解决方案”。而是在SpringBoot基础上,快速构建分布式系统的工具集。适合部署在Docker或PaaS上。 2、Spring Cloud的特点     约定优于配置     适用于各种开发环境——各种服务器或云环境(如阿里云、AWS等)     隐藏了组件的复杂性,提供了声明式、无xml配置     ...

2018-12-18 16:39:56 302

原创 一、微服务架构概述

1、为什么会出现微服务 1.1、单体应用的问题     单体应用——一个war包包含了所有功能的应用程序。     问题:随着需求增加,一个单体项目会变得越来越臃肿,可维护性降低。 复杂性高:模块多、依赖不清,混乱堆砌 技术债务:技术人员变更,老代码难以维护修改 部署频率低:每次简单修改就要整个臃肿项目重新部署,所以一般少部署 可靠性差:一个小bug,可能导致整个项目的崩溃(如:死循...

2018-12-18 15:31:36 5834 1

原创 mysql事件(event)的简单使用

一、事件(event)简介:mysql中的事件就相当于是一个“定时器”,它可以设定隔一定时间去执行某个sql语句,或者调用(call)某个存储过程!并且该“定时器”不需要借助任何外部代码,在mysql内部就可以完成任务!二、事件(event)的简单使用:(以下都以sqlyog工具为例) 1. 事件的创建 2. 事件的设定 3. 事件的修改和删除 4. 事件设定或修改

2017-08-28 11:40:56 1609

原创 maven开发环境的搭建

maven环境搭建,eclipse配置maven,maven仓库

2017-08-21 18:01:14 351

空空如也

空空如也

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

TA关注的人

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