202103-05 SpringCloud Stream消息驱动实例详解 1.消息驱动概述1.1是什么在实际应用中有很多消息中间件,比如现在企业里常用的有ActiveMQ、RabbitMQ、RocketMQ、Kafka等,学习所有这些消息中间件无疑需要大量时间经历成本,那有没有一种技术,使我们不再需要关注具体的消息中间件的细节,而只需要用一种适配绑定的方式,自动的在各种消息中间件内切换呢?消息驱动就是这样的技术,它能屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。SpringCloudStream是一个... 继续阅读 >
202102-26 解决SpringCloud Config结合github无法读取配置的问题 前言配置中心存放文件在github是读取过程,可能你会出现读取不到配置信息。本次笔者将这一过程进行详细介绍。准备父工程由于笔者是使用聚合工程,所以这次也是把相关的工程创建说明写上。当然你也可以完全创建两个独立的工程来引用。创建父工程时直接只有一个pom文件,以下是这个文件的依赖信息<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2... 继续阅读 >
202102-26 基于springcloud异步线程池、高并发请求feign的解决方案 ScenTaskTestApplication.javapackagecom.test;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.openfeign.EnableFeignClients;/***@authorscen*@version2018年9月27日上午11:51:04*/@EnableFeignClients@SpringBootApplicationpublicclassScenTaskTestApplication{publicstaticvoidmain(String[]args)... 继续阅读 >
202102-26 浅谈SpringCloud feign的http请求组件优化方案 1描述如果我们直接使用SpringCloudFeign进行服务间调用的时候,http组件使用的是JDK的HttpURLConnection,每次请求都会新建一个连接,没有使用线程池复用。具体的可以从源码进行分析2源码分析我们在分析源码很难找到入口,不知道从何开始入手,我们在分析SpringCloudfeign的时候可用在配置文件下面我讲一下个人的思路。1首先我点击@EnableFeignClients看一下这个注解在哪个资源路径下如下图所示:2找到服务启动加载的配置文... 继续阅读 >
202102-26 SpringCloud Open feign 使用okhttp 优化详解 我就废话不多说了,大家还是直接看代码吧~<!--web模块--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><!--排除tomcat依赖--><exclusion><artifactId>spring-boot-starter-tomcat</artifactId><groupId>org.springframework.boot</groupId></exclusion></exclusions></dependency><dependency><groupId>o... 继续阅读 >
202102-21 SpringCloud Gateway 利用 Mysql 实现动态路由的方法 需求描述标准网关动态路由功能是重要的一环,将路由、断言以及过滤器信息,持久化到Mysql中,通过配置后台页面实现路由、断言、以及过滤器等配置的增删改查。SpringCloudGateway路由及黑白名单实现背景SpringCloud路由APISpringCloudGateway通过定义RouteDefinitionRepository来实现动态路由.//保存路由缓存publicinterfaceRouteDefinitionWriter{Mono<Void>save(Mono<RouteDefinition>route);Mono<Void>de... 继续阅读 >
202102-20 关于IDEA中spring-cloud-starter-alibaba-nacos-discovery 无法引入问题 1、spring-cloud-starter-alibaba-nacos-discovery这里依赖报红,无法引入,或显示无法找到,更换版本也无法解决,启动项目后nacos中也无法发现服务①错误显示unknown就需要加上版本号2、解决①修改IDEA中的maven配置,把下面这个属性修改为FailFast(原来默认为default)②给依赖加上版本③刷新maven,重启项目3、查看nacos服务发现,就成功了更多精彩内容关注公众号【Java技术迷】到此这篇关于关于IDEA中spring-cloud-starter-ali... 继续阅读 >
202101-24 SpringCloud2020整合Nacos-Bootstrap配置不生效的解决 因为公司现在换成了nacos,所以自己写了demo学习一下。结果第一步就走不下去。在使用nacos-config读取nacos配置时。发现bootstrap.yml一直不生效。按照网上的解决方法引入依赖。<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-context</artifactId></dependency>引入之后发现一直不生效。因为这个是解决springboot使用bootstrap.yml配置的。我本身就是springcloud的最后没办法只能去翻官... 继续阅读 >
202101-22 SpringCloud手写Ribbon实现负载均衡 前言前面我们学习了SpringCloud整合Consul,在此基础上我们手写本地客户端实现类似Ribbon负载均衡的效果。注:order模块调用者记得关闭@LoadBalanced注解。我们这里只演示注册中心consul,至于zookeeper也是一模一样。生产者member模块member服务需要集群,所以我们copyapplication-consul.yml文件命名为application-consul2.yml服务别名一致,只需要修改端口号即可。application-consul2.yml配置文件:##服务端... 继续阅读 >
202101-17 从零开始搭建springboot+springcloud+mybatis本地项目全过程(图解) 记录一下从零开始搭建一个springboot+springcloud+mybatis本地项目的demo的过程。纯代码小白一枚,若有不足或错误之处,欢迎广大朋友指出!开发环境准备:IDE:IntelliJIdea2019.3数据库:mysql8.0.2.2SpringBoot版本:2.2.0.RELEASESpringCloud版本:Hoxton.RELEASE一、创建一个新的Idea项目打开Idea,单击New->File->Project,选择Maven,直接下一步输入我们的项目名,我这里起名为pam,单击Finish完成创建二、右键单击projec... 继续阅读 >
202101-17 SpringCloud Eureka的使用教程 什么是EurekaEureka是Netfilx开源的一个用来实现微服务的注册与发现的组件。它包含Server和Client两部分。为什么要有Eureka例如目前有两个服务分别为服务A,服务B,我们可以在服务A调用服务B的接口地址完成调用,但是当服务间的调用关系复杂起来的时候,比如服务A还需要调用服务CDE,那么服务A需要维护它调用的所有服务的地址,一旦地址的变更都需要手动去修改。当使用了Eureka这样的服务治理框架后,服务ABCDE可以一起注册到Eurek... 继续阅读 >
202101-09 SpringCloud Gateway使用redis实现动态路由的方法 1.将actuator端点暴露出来management:endpoints:web:exposure:include:"*"2.redis配置https://www.jb51.net/article/203766.htm3.将原内存路由持久化到redis@ComponentpublicclassRedisRouteDefinitionRepositoryimplementsRouteDefinitionRepository{/***hash存储的key*/publicstaticfinalStringGATEWAY_ROUTES="gateway_dynamic_route";@ResourceprivateStringRedisTemplateredisTemplate;/***获取路由信... 继续阅读 >
202012-22 SpringCloud+Tornado基于jwt实现请求安全校验功能 项目背景在实际项目中,Tornado项目作为一个微服务纳入SpringCloud体系,该过程中涉及到Tornado与Spring体系的安全验证,也就是权限调用校验,在该项目中Tornado是通过SpringCloud中的Feign调用的,经过一系列实验,最后选用jwt来实现这个权限效验的过程。实现思路用户进行登陆认证(后台微服务),认证成功后调用Tornado项目的认证接口生成token,该值返回到后台微服务保存在会话中,下一次请求时带上该token值让服务器进行校验,校... 继续阅读 >
202012-17 springcloud pom.xml完整配置详解 1、父工程<packaging>pom</packaging><name>Maven</name><!--FIXMEchangeittotheproject'swebsite--><url>http://maven.apache.org/</url><inceptionYear>2001</inceptionYear><distributionManagement><site><id>website</id><url>scp://webhost.company.com/www/website</url></site></distributionManagement><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><ma... 继续阅读 >
202012-17 seata-1.4.0安装及在springcloud中使用详解 seata-1.4.0安装及使用 1、简介Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。详见官方文档:https://seata.io/zh-cn/docs/overview/what-is-seata.html网上的多是0.9.0版本的安装方式,这里记录安装seata-1.4.0版本的方式,在win10环境下安装,centos7与此相同。下载需要下载seata-1.4.0.zip... 继续阅读 >
202012-14 SpringCloud-Alibaba-Sentinel服务降级,热点限流,服务熔断 前言:除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方API等。例如,支付的时候,可能需要远程调用银联提供的API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,... 继续阅读 >