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 | 第十七篇:服务网关Zuul基于Apollo动态路由

我是研究僧i 提交于 2020-04-18 08:43:25
SpringCloud系列教程 | 第十七篇:服务网关Zuul基于Apollo动态路由 Springboot: 2.1.7.RELEASE SpringCloud: Greenwich.SR2 [TOC] 上一篇文章我们介绍了Gateway基于Nacos动态网关路由的解决方案 《Spring Cloud Alibaba | Gateway基于Nacos动态网关路由》 ,同为Spring Cloud服务网关组件的Spring Cloud Zuul在生产环境中使用更为广泛,那么它有没有方便的动态路由解决方案呢?答案当然是肯定的,Zuul作为一个老牌的开源服务网关组件,动态路由对它来讲是一个十分必要的功能,毕竟我们不能随便重启服务网关,服务网关是一个微服务系统的大门,今天我们介绍的Zuul动态路由的解决方案来自于携程开源的配置中心Apollo。 Apollo概述 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。 Apollo支持4个维度管理Key-Value格式的配置: application (应用) environment (环境) cluster (集群) namespace (命名空间) Apollo相比于Spring Cloud Config优势

Spring Cloud Alibaba | Gateway基于Nacos动态网关路由

血红的双手。 提交于 2020-04-18 07:29:17
Spring Cloud Alibaba | Gateway基于Nacos动态网关路由 本篇实战所使用Spring有关版本: SpringBoot:2.1.7.RELEASE Spring Cloud:Greenwich.SR2 Spring CLoud Alibaba:2.1.0.RELEASE 前面几篇文章我们介绍了 《Nacos服务注册与发现》 和 《Nacos配置管理》 ,还没看过的小伙伴们快去看一下,本篇文章是建立在这两篇文章基础上的一次实战。 背景介绍 在Spring Cloud微服务体系下,常用的服务网关有Netflix公司开源的Zuul,还有Spring Cloud团队自己开源的Spring Cloud Gateway,其中NetFlix公司开源的Zuul版本已经迭代至2.x,但是Spring Cloud并未集成,目前Spring Cloud集成的Spring Cloud Zuul还是Zuul1.x,这一版的Zuul是基于 Servlet 构建的,采用的方案是阻塞式的多线程方案,即一个线程处理一次连接请求,这种方式在内部延迟严重、设备故障较多情况下会引起存活的连接增多和线程增加的情况发生。Spring Cloud自己开源的Spring Cloud Gateway则是基于 Spring Webflux 来构建的, Spring Webflux

spring-cloud生产环境热部署

删除回忆录丶 提交于 2020-04-18 01:08:46
通过eureka 对注册实例进行操作,比如:将服务离线/上线,注册/注销,动态修改meta元数据等 注:重新发布,一般要先停止应用,在启动应用,建议用kill pid,不要带-9强杀,以防万一还有未执行完成的请求。 来源: oschina 链接: https://my.oschina.net/u/4198095/blog/3271562

形象化理解 SpringBoot + SpringCloud

萝らか妹 提交于 2020-04-17 13:13:03
【推荐阅读】微服务还能火多久?>>> Spring framework架构的项目就像上海中心这样的高楼大厦,一栋大厦里租用者各色各样的公司和企业为用户提供各种各样的服务。 大厦里的每间办公室都是一个容器,对应着一个docker容器,空办公室对于用户来说是没有任何意义的,只有里面入住了企业(Spring boot),跑了各种程序,才叫一个微服务结点。 房间号可以理解成容器的ip和端口,企业名理解成微服务的服务名,如果一家企业规模较大,需要租多间办公室才可以,那就是多个容器共同组成一个高可用性的微服务组群。 大厦有一本企业列表,有哪些企业提供哪些服务,对应的房间号是什么,这本列表就是Spring Cloud Eureka。 大厦的大门是所有企业的对外的gateway,用户只能通过大门进去然后进行安检后保安会帮你指路告诉你要找的企业在哪里,这里的大门和门卫就是Spring Cloud Zuul。 也不是所有的房间都是给企业准备的,也有弱点室、茶水间等为所有企业准备的公共设施,这就是Spring Cloud Hystrix的Dashboard、redis、MQ等这些独立的辅助服务。 如果要访问大厦里的某一个企业你只知道企业名,你是不知道具体在哪一楼层哪一房间的,需要去看楼层的导航图或者电梯附近的企业列表(Eureka),如果一个企业有多个房间,客户自己决定进哪一个房间去获取服务

SpringCloud : 多个 @FeignClient 注解 value 设置为同一个应用的解决方案

帅比萌擦擦* 提交于 2020-04-17 02:12:06
【推荐阅读】微服务还能火多久?>>> Feign 版本10.1.0 Spring 版本 5.1.5.RELEASE SpringBoot 版本 2.1.5.RELEASE SpringCloud 版本 2.1.1.RELEASE 在微服务架构中,当我们需要进行服务间调用时可以选择feign组件, 现在遇到的问题是: 当同一个服务,声明多个feign实例时,启动时直接报错。 解决办法, 通过 Feign.builder() 手动生成代理类。 1.定义接口: public interface AbcClient{ @ResponseBody @PostMapping( "/abc" ) JSONObject doSomething(@RequestBody Req request); } public interface DefClient{ @ResponseBody @PostMapping( "/def" ) JSONObject doSomething(@RequestBody Req request); } 2.配置接口代理 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support

spring boot集成zookeeper注册中心

柔情痞子 提交于 2020-04-16 21:23:05
【推荐阅读】微服务还能火多久?>>> ZooKeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等 ZooKeeper是一个树形结构的目录服务,支持变更推送 在ZooKeeper中,节点分为两类:   机器节点:     指构成集群的机器   数据节点ZNode:     指数据模型中的数据单元       ZooKeeper将所有数据存储在内存中,数据模型是一棵树(ZNode Tree),由斜杠(/)进行分割的路径,就是一个ZNode,例如/services/customer     每个ZNode上都会保存自己的数据内容,同时还会保存一系列属性信息     Znode可分为:       持久节点:指一旦这个ZNode被创建了,除非主动进行ZNode的移除操作,否则这个ZNode将一直保存在ZooKeeper上       临时节点:它的生命周期和客户端会话绑定,一旦客户端会话失效,那么这个客户端创建的所有临时节点都会被移除 1.docker安装 docker pull zookeeper: 3.5 2.启动 docker run --name zookeeper -p 2181 : 2181 -d zookeeper: 3.5 3

金三银四,看完这些Java高级架构面试笔记,已入职某厂涨薪18K

不羁的心 提交于 2020-04-16 16:03:31
【推荐阅读】微服务还能火多久?>>> 金三银四面试了近10家互联网公司(阿里,京东,美团等),今天将我复习的面试题及面试被问的高频问点进行整理,筛选其中出镜率最高的面试题,给出参考答案,供大家复习!(文末附解析) Java基础 JVM与优化 Redis缓存 Spring SpringBoot,SpringCloud 消息队列(Kafka,MQ) 分布式架构(Zookeeper,Nginx) 高可用架构 分库分表 注意:为了不影响阅读,整理了解析成文档给大家复习参考!有需要这2份“面试跳槽宝典:互联网大厂Java高级工程师核心面试1080题解析”和“Java高级架构面试知识点整理”,可以免费分享给大家一起学习,添加VX(备注学习):13272413561 即可! Java高级工程师核心面试1080题解析 Java高级架构面试知识点问题解析整理 Java面试知识点笔记整理 免费获取方式:添加VX(备注学习):13272413561 即可! 来源: oschina 链接: https://my.oschina.net/u/4271739/blog/3236583

金三银四,看完这些Java高级架构面试笔记,已入职某厂涨薪18K

為{幸葍}努か 提交于 2020-04-16 11:41:24
【推荐阅读】微服务还能火多久?>>> 金三银四面试了近10家互联网公司(阿里,京东,美团等),今天将我复习的面试题及面试被问的高频问点进行整理,筛选其中出镜率最高的面试题,给出参考答案,供大家复习!(文末附解析) Java基础 JVM与优化 Redis缓存 Spring SpringBoot,SpringCloud 消息队列(Kafka,MQ) 分布式架构(Zookeeper,Nginx) 高可用架构 分库分表 注意:为了不影响阅读,整理了解析成文档给大家复习参考!有需要这2份“面试跳槽宝典:互联网大厂Java高级工程师核心面试1080题解析”和“Java高级架构面试知识点整理”,可以免费分享给大家一起学习,添加VX(备注学习):13272413561 即可! Java高级工程师核心面试1080题解析 Java高级架构面试知识点问题解析整理 Java面试知识点笔记整理 免费获取方式:添加VX(备注学习):13272413561 即可! 来源: oschina 链接: https://my.oschina.net/u/4331414/blog/3236234

免费开源数字货币交易所——基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所

跟風遠走 提交于 2020-04-16 10:04:56
【推荐阅读】微服务还能火多久?>>> 本项目是基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币交易所,有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码(有偿提供)、苹果APP源码(有偿提供)、币种钱包RPC源码。 系统架构概要 随便画的一个草图,凑合看吧。。。 系统演示视频 PC前端(用户Web端): https://gitee.com/cexchange/CoinExchange/attach_files 手机APP端: https://gitee.com/cexchange/CoinExchange/attach_files 管理后台: https://gitee.com/cexchange/CoinExchange/attach_files 开发参考 开源地址: https://gitee.com/cexchange/CoinExchange 开发参考文档: https://gitee.com/cexchange/CoinExchange/blob/master/DEVELOP.md 管理后台截图: https://gitee.com/cexchange/CoinExchange