自定义博客皮肤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 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

原创 maven开发环境的搭建

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

2017-08-21 18:01:14 322

空空如也

空空如也

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

TA关注的人

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