eureka

Nacos入门

不羁岁月 提交于 2020-04-19 18:29:57
1. Nacos入门 1.1. 前言 我的初衷是想搞一套适合自定义快速开发的框架,把一些必要的技术整合进来,第一想法是尝试下 SpringCloud Alibaba ,毕竟是阿里开发,适应国人需求,下载源码本打算研究下,看了nacos,就想到之前项目用的Eureka,而我也深知Eureka真的只是单纯的注册中心,需要配置属性还要依赖git做配置中心,所以改用nacos或许也是不错的主意,于是开始研究nacos 1.2. 部署配置 我这入门和普通的运行demo入门不一样,直接看源码说话,先把 SpringCloud Alibaba 的git代码下下来 由于nacos是个单独部署的服务,所以先去 Nacos官网 安装好nacos,账号密码都是 nacos ,修改配置文件nacos地址 1.3. 控制台配置 可以看到上述配置文件,明显一个dataId对应了一个配置文件,group做为分组参数,我们可以再nacos界面进行配置 点击发布,确认后就可以更新到应用,那么现在来研究它的原理 1.4. 调试分析 1.4.1. 获取配置 随意发布更新一个配置看到打印参数 那么进 ClientWorker 类,可以看到一个单独的线程池负责了数据的接收 其中核心的更新配置方法为 checkUpdateDataIds ,而该方法内部的核心方法为 checkUpdateConfigStr ,其核心内容如下

架构设计基础:单服务.集群.分布式,基本区别和联系

独自空忆成欢 提交于 2020-04-18 19:49:26
一、分布式简介 1、架构简介 现在的互联网,几乎常见的复杂系统都会使用分布式架构,如果在不清楚概念之前,刚接触分布式架构这个名词会感觉十分的高大上,其实在对比单服务,集群服务之后,你就会发现本质上都是一样的。 絮叨一句 :所谓Java架构师,基本就是看被单服务,集群,分布式不断暴打的频率,架构师因为被虐频率高,自然做出来的系统架构坑少,新手不能做架构的原因,所以你该懂的。 言归正传,分布式架构对于Java开发来说基本算是分水岭,能不能从开发层面跳出来,就看你工作个三五年之后,对分布式系统理解到什么程度。单服务应用,基于单服务做集群化部署,这种操作运维可以自行搭建环境,所以基本对能力要求不算高。但是如何设计出弹性、配置化、分布化、高性能、高容错、安全的分布式系统,的确是一件很有挑战的事情。 2、集群和分布式 首先需要理清楚单服务,集群,分布式这几种不同架构的区别。 单服务和集群 一张图,你品,你细品: 业务体量小,所有服务和应用部署在一台服务上,节省成本,这是单服务结构。当业务量逐渐增大,把一台服务进行水平扩展,做一个服务群,每台服务称为集群的一个节点,到这就是集群服务。集群服务要面对的一个问题就是:请求分配,自然需要一个调度组件来均衡服务器压力,这也被称为负载均衡。 补刀一句 :做到集群模式的应用,在程序员面试的时候已经会被拿来做高格调的自吹自擂了,其实单服务和集群的本质区别就是

SpringCloud学习笔记(3):使用Feign实现声明式服务调用

邮差的信 提交于 2020-04-18 10:10:17
简介 Feign是一个声明式的Web Service客户端,它简化了Web服务客户端的编写操作,相对于Ribbon+RestTemplate的方式,开发者只需通过简单的接口和注解来调用HTTP API。它支持Spring MVC注解和JAX-RS注解,还支持可插拔式的编码器和解码器。整合了Eureka,Ribbon和Hystrix,具有可插拔、基于注解、负载均衡、服务熔断等一系列便捷功能。 项目介绍 sc-parent,父模块(请参照 SpringCloud学习笔记(1):Eureka注册中心 ) sc-eureka,注册中心(请参照 SpringCloud学习笔记(1):Eureka注册中心 ) sc-provider,提供者(请参照 SpringCloud学习笔记(1):Eureka注册中心 ) sc-consumer-feign,基于Feign声明式调用的消费者 基于Feign声明式调用的消费者 1.在父模块下创建子模块项目sc-consumer-feign,pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM

Spring Cloud第十二篇 | 消息总线Bus

别等时光非礼了梦想. 提交于 2020-04-18 10:08:05
​ ​本文是Spring Cloud专栏的 第十二篇 文章,了解 前十一篇 文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cloud第二篇 | 使用并认识Eureka注册中心 Spring Cloud第三篇 | 搭建高可用Eureka注册中心 Spring Cloud第四篇 | 客户端负载均衡Ribbon Spring Cloud第五篇 | 服务熔断Hystrix Spring Cloud第六篇 | Hystrix仪表盘监控Hystrix Dashboard Spring Cloud第七篇 | 声明式服务调用Feign Spring Cloud第八篇 | Hystrix集群监控Turbin Spring Cloud第九篇 | 分布式服务跟踪Sleuth Spring Cloud第十篇 | 分布式配置中心Config Spring Cloud第十一篇 | 分布式配置中心高可用 ​ 一、前言 由于在没有使用消息总线的时候,我们如果需要修改某个配置,如果涉及修改的微服务节点比较多,我们需要手动的一个节点一个节点的刷新非常麻烦,在微服务架构的系统中,我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有微服务实例都连接上来,由于该主题中产生的消息会被所有实例监听和消费,所以我们称它为消息总线

跟我学SpringCloud | 第八篇:Spring Cloud Bus 消息总线

此生再无相见时 提交于 2020-04-18 10:07:46
SpringCloud系列教程 | 第八篇:Spring Cloud Bus 消息总线 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明,本系列教程全采用以上版本 前面两篇文章我们聊了Spring Cloud Config配置中心,当我们在更新github上面的配置以后,如果想要获取到最新的配置,需要手动刷新或者利用webhook的机制每次提交代码发送请求来刷新客户端,客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用Spring Cloud Bus(国人很形象的翻译为消息总线,我比较喜欢叫消息巴士)可以完美解决这一问题。 1. Spring Cloud Bus Spring cloud bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Spring bus的一个核心思想是通过分布式的启动器对spring boot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道,同样特性的设置(有些取决于通道的设置)在更多通道的文档中。 大家可以将它理解为管理和传播所有分布式项目中的消息既可,其实本质是利用了MQ的广播机制在分布式的系统中传播消息,目前常用的有Kafka和RabbitMQ

SpringCloud学习系列之二 ----- 服务消费者(Feign)和负载均衡(Ribbon)使用详解

为君一笑 提交于 2020-04-18 08:27:48
前言 本篇主要介绍的是SpringCloud中的服务消费者(Feign)和负载均衡(Ribbon)功能的实现以及使用Feign结合Ribbon实现负载均衡。 SpringCloud Feign Feign 介绍 Feign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单。我们只需要使用Feign来创建一个接口并用注解来配置它既可完成。它具备可插拔的注解支持,包括Feign注解和JAX-RS注解。Feign也支持可插拔的编码器和解码器。Spring Cloud为Feign增加了对Spring MVC注解的支持,还整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现。 开发准备 开发环境 JDK :1.8 SpringBoot :2.1.1.RELEASE SpringCloud :Finchley 注:不一定非要用上述的版本,可以根据情况进行相应的调整。需要注意的是SpringBoot2.x以后,jdk的版本必须是1.8以上! 确认了开发环境之后,我们再来添加相关的pom依赖。 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> <

Spring Cloud第八篇 | Hystrix集群监控Turbine

☆樱花仙子☆ 提交于 2020-04-18 08:23:56
​ 本文是Spring Cloud专栏的 第八篇 文章,了解 前七篇 文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cloud第二篇 | 使用并认识Eureka注册中心 Spring Cloud第三篇 | 搭建高可用Eureka注册中心 Spring Cloud第四篇 | 客户端负载均衡Ribbon Spring Cloud第五篇 | 服务熔断Hystrix Spring Cloud第六篇 | Hystrix仪表盘监控Hystrix Dashboard Spring Cloud第七篇 | 声明式服务调用Feign ​ 一、前言 《 Spring Cloud第六篇 | Hystrix仪表盘监控Hystrix Dashboard 》一文我们看了一个监控单体应用的例子,在实际应用中,我们要监控的应用往往是一个集群,这个时候我们就得采取Turbine集群监控了。Turbine有一个重要的功能就是汇聚监控信息,并将汇聚到的监控信息提供给Hystrix Dashboard来集中展示和监控。那我们就来看看Turbine集群监控如何使用。 Turbine所处的作用如图: ​ 二、Turbine的应用 1、创建turbine模块(springcloud-hystrix-turbine) 2、添加依赖 <!--

浅谈SpringCloud (三) Ribbon负载均衡

帅比萌擦擦* 提交于 2020-04-18 07:46:53
什么是负载均衡 当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。 我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。 Ribbon   Spring Cloud Ribbons是基于Netflix Ribbon实现的一套客户端负载均衡的工具。   Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的,包括后续我们将要介绍的Feign,它也是基于Ribbon实现的工具。所以,对Spring Cloud Ribbon的理解和使用,对于我们使用Spring Cloud来构建微服务非常重要。 SpringCloud使用Ribbon 1.修改客户端的pom.xml文件 <? xml version="1.0"