
micro service architecture
文章平均质量分 79
主要包含spring boot和spriing cloud相关内容
乌托邦钢铁侠
Practice makes perfect, fighting with my time .
1. Java
2. English foolish
3. Love riding
展开
-
Spring Data JDBC 详解
早期的JPA能够懒加载和关联查询,一下能查出所有的关联信息,但我们开发者在查询SQL的时候往往只需要某几个字段,而JPA甚至关联表的所有字段查询出来,如果不需要那么多message,那么查询的性能会大大降低。 Spring官网为此提供了另一个解决方案——Spring-boot-data-jdbc, 另一种形式的Java持久化的API工具集,相比JPA来讲,更简单,更高效,没有session, 一次查询查询出指定的结果,没有多余数据,Spring 官网提供了为什么使用它的理由...原创 2021-12-14 21:22:38 · 9964 阅读 · 1 评论 -
Spring Cloud Alibaba 分布式服务调用篇
目录一、Dubbo Spring Cloud 应用1. 基于Dubbo Spring Cloud 搭建服务消费方和服务提供方服务提供方服务消费方2. 搭建common-interface模块定义dubbo服务接口3. 将API模块部署到本地仓库二、 Dubbo 迁移Spring Cloud 应用 Dubbo Spring Cloud 基于Spring Cloud Commons 抽象实现Dubbo 服务注册与发现,无需添加任何外部化的配置,就能桥接到所有原生的...原创 2021-07-17 17:52:44 · 1261 阅读 · 0 评论 -
Dubbo源码学习系列(三) 整合zookeeper注册中心并提供watcher机制
1. 使用zookeeper注册中心替换map 在上一篇文章中,用到了RemoteRegistryMap替换了zookeeper实现服务的缓存,此方式的缺点是需要通过文件来共享map,如果服务提供者接口列表发生变化,那么也不能及时修改,那么我们怎么使用zookeeper注册中心实现服务注册和发现功能? zookeeper 本身是一个文件系统,可以在将服务的url相关信息挂载到指定节点目录下,然后通过watch机制监听服务提供者接口服务是否发生变化,如果有变化,那么watcher将...原创 2021-05-02 06:58:35 · 893 阅读 · 5 评论 -
springboot整合spring cloud bus 、rabbitmq、spring cloud config实现动态刷新配置(含docker部署方法)
二、部署远程config-server1. 将配置文件存放到远程配置仓库 git2. 本地config-server 连接上远程配置仓库 git3. 将打包后的镜像推送至远程仓库三、部署rabbitmq到远程服务器上 可以通 docker logs rabbitmq 查看一些rabbitmq启动信息, 根据这些信息,我们可以根据需要来找到挂载连接。config 文件所在路径: /etc/rabbitmq/rabbitmq.confhome data: /var/lib/rabbitm原创 2021-04-28 12:36:26 · 936 阅读 · 0 评论 -
Dubbo 源码学习系列(一) 浅析远程调用的核心流程
一、Dubbo 官方架构图 官方给的架构图主要分为了4个版块: 注册中心Registry、监视器Monitor、服务提供者Provider、服务消费者Consumer。二、功能解析在学习Dubbo 源码前,需要了解Dubbo是一个用Java实现的高可用的RPC框架, 主要功能包含服务注册与发现、集群容错、远程调用、负载均衡、高度可扩展、运行期流量调度、可视化的服务治理与运维等功能。三、从消费方解析Dubbo 源码首先我们先看一下Cons...原创 2021-04-27 18:03:45 · 1485 阅读 · 0 评论 -
微服务架构网关组件Spring Cloud Gateway 用法详解和实战案例
一、Spring boot整合Spring Cloud Gateway Spring Cloud 官网对gateway的用法和说明如下:原文翻译Spring Cloud Gateway featuresSpring Cloud GateWay 特性Built on Spring Framework 5, Project Reactor and Spring Boot 2.0基于Spring 5,Reactor项目和Spring Boot 2.0版本构建Able t原创 2021-04-23 10:45:43 · 2135 阅读 · 5 评论 -
如何用docker发布多个Springboot、Python应用环境(含开发、测试、生产)
作为一个开发人员,我们至少会接触到两种环境或三种,比如我们需要先在开发环境上开发测试功能,开发完毕后,同步到测试环境,测试环境通过后,再发布到线上环境,也就是正式环境或生产环境。1. springboot应用 springboot应用,可以直接通过application.yml文件名的application后缀来区分开发、测试和生产的配置,方法如下: 在resource 里 application-dev.yml , application-uat.yml,application-pr原创 2021-04-19 17:46:01 · 12620 阅读 · 2 评论 -
线上调试神器arthas
一、Arthas入门 Arthas 是阿里巴巴开发出的一款线上调试工具,他的厉害之处就是我们不需要停止线上的服务就可以排查问题,监控方法。Arthas使用简单,上手快等优点让我觉得十分方便, 强力推荐。启动官网给的测试应用curl -O https://arthas.aliyun.com/math-game.jarjava -jar math-game.jar使用相同用户启动arthascurl -O https://arthas.aliyun.com/arthas-boot.j原创 2021-04-16 18:21:51 · 980 阅读 · 1 评论 -
Spring Cloud Config 启动报错: c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource
config 文件所在路径: /etc/rabbitmq/rabbitmq.confhome data: /var/lib/rabbitmq启动成功:原创 2021-04-15 11:21:26 · 6500 阅读 · 0 评论 -
Sprinboot整合Security+jwt实现认证和授权原理解析
我们可以通过重写WebSecurityConfigurerAdapter 的configure() 方法配置Web的安全性, 可以通过Ctrl+Ins键查看override方法,如下:方法描述configure(AuthenticationManagerBuilder auth)通过重载,配置user-detail 服务configure(WebSecurity web)通过重载, 配置Spring security的Filter链configure(HttpSec原创 2021-04-06 20:00:57 · 1026 阅读 · 0 评论 -
docker 实战篇
文章目录一、搭建Harbor远程私有仓库二、使用maven插件一键打包构建docker镜像三、基于docker搭建mysql集群四、 用docker部署springboot应用+mysql一、搭建Harbor远程私有仓库https://blog.csdn.net/qq_33036061/article/details/115293724二、使用maven插件一键打包构建docker镜像https://blog.csdn.net/qq_33036061/article/details/11529927原创 2021-03-30 17:01:58 · 269 阅读 · 2 评论 -
docker 部署springboot应用+mysql
文章目录一、从远程仓库拉取镜像二、 配置 profile三、 启动应用一、从远程仓库拉取镜像 docker pull 116.62.146.90/my-shop/my-shop:0.0.8-SNAPSHOT二、 配置 profile远程mysql, 必须要用ip地址才可以访问。server: port: 8080# mysql sourcespring: datasource: url: jdbc:mysql://116.62.146.90:3306/my_shop?us原创 2021-03-30 16:57:31 · 276 阅读 · 0 评论 -
使用maven插件将springboot应用打包生成docker镜像并上传到Harbor远程仓库
tcp端口配置好后,可以通过systemctl status docker.service 命令查看运行状况。原创 2021-03-30 16:37:18 · 1624 阅读 · 0 评论 -
springboot整合mybatis和mybatis-generator用法详解
一、Springboot整合mybatis项目目录:application.yml文件:server: port: 8080spring: datasource: url: jdbc:mysql://localhost:3306/my_shop?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: 123456m原创 2021-03-26 16:35:52 · 2561 阅读 · 0 评论 -
快速搭建Spring Cloud Alibaba+Nacos
文章目录1. Spring Cloud Alibaba 简介2. Spring Cloud Alibaba +Nacos搭建微服务架构集成nacos1. 启动nacos server2. 微服务客户端集成spring cloud alibaba +nacos server1)在pom.xml文件中添加依赖2)在application.properties|application.yml| bootstrap.yml(选一即可)添加nacos客户端配置3) 开启服务发现注册3. 微服务的使用1. Sprin原创 2021-02-17 21:01:05 · 2091 阅读 · 0 评论 -
Springboot+web拦截器+JWT实现token方案
文章目录原创 2020-12-29 16:36:35 · 533 阅读 · 0 评论 -
Spring Cloud Feign客户端
一、Feign介绍原创 2020-07-27 09:49:09 · 526 阅读 · 0 评论 -
springboot启动报错 java.lang.annotation.AnnotationFormatError
使用低版本的mybatis-spring-boot-starter依赖:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version></dependency>...原创 2020-07-02 11:29:10 · 850 阅读 · 2 评论 -
oauth2的token认证接口/oauth/token、/oauth/check_token、/oauth/authorize在哪个包里
在org.springframework.security.oauth2.provider.endpoint里的TokenEndpoint类里//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package org.springframework.security.oauth2.provider.endpoint;import java.原创 2020-07-02 09:11:01 · 25773 阅读 · 0 评论 -
spring boot扩展XML请求和响应的支持
一、场景分析 传统Spring应用中,往往会通过XML文件来包装一些对象的信息,我们可以使用SAXReader来解析XML文档,然后将信息读写出来。在有些场景中,需要将XML报文当参数来做请求,那么对于XML格式的请求要如何的在Controller里包装成对象,以及如何以XML的形式来返回一个对象, Sping boot能够扩展此类的特殊请求,以满足开发需要。 二、扩展实现 1.实现原理: 消息转换器(Message Converter) ...原创 2020-06-24 09:35:44 · 816 阅读 · 0 评论 -
springboot 整合Swagger2构建接口文档
一、Swagger2 在项目中,经常需要通过接口来与前端对接,对字段之类的,swagger2的出现能够有效的提示对接效率,降低沟通成本。swagger2可以在实体,类,方法,参数上添加中文注解,以标注对应的接口、字段、参数等对应的含义。二、项目搭建 1.添加依赖:<dependency> <groupId>io.springfox</groupId> <artifactId>spri...原创 2020-06-23 09:01:17 · 1288 阅读 · 0 评论 -
kafka启动报错 找不到主类
启动zookeeper:启动kafka报错:.\bin\windows\kafka-server-start.bat .\config\server.properties经查发现是下载源码导致的:重新到官网下载:http://kafka.apachecn.org/downloads.html重新下载一个tgrz的包,然后解压,在kafka目录按shirt+鼠标右键,重新执行启动命令:启动成功!...原创 2020-06-23 06:36:01 · 969 阅读 · 0 评论 -
Spring Cloud Config构建分布式配置中心
一、 Spring cloudconfig介绍 Spring cloud config是一个分布式的配置中心,用来给服务端和客户端实现外部的配置支持。可以充当为一个配置服务器来使用,为各应用提供一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource的抽象映射,所以它适用于Spring构建的应用程序,也可以在任何其他语言构建的应用程序中使用。 配置服务器默认采用git来存储配置信息,可以通过git来对配置进行...原创 2020-06-12 16:16:20 · 263 阅读 · 0 评论 -
Springboot整合logback滚动生成日志文件
在properties文件中添加配置:logging.config = classpath:log/logback-local.xml文件配置:<?xml version="1.0" encoding="UTF-8"?><configuration scan="true"> <include resource="org/springframework/boot/logging/logback/base.xml"/> <!--..原创 2020-06-12 13:46:29 · 1341 阅读 · 0 评论 -
springcloud bus集成rabbitmq详细桌面配置
所有的服务:绑定路由:原创 2020-06-10 16:31:14 · 525 阅读 · 0 评论 -
Spring cloud 组件hystrix在ribbon和feign的使用
一、什么是断路器? 断路器在生活中,起到保护线路的作用,当电路发生负载、过热等情况下,断路器会开启熔断机制,切断线路及时的保护用电,以免发生火灾。 在分布式环境下,经常会出现某个服务调用另外一个服务出现一直等待而不能及时的拿到响应的情况,比如网络延迟或者其他故障导致的。特别是在高并发的场景下,一旦发生类似的情况,很容易引起服务的调用方的请求积压,严重的情况下会直接导致服务调用方出现阵亡的情况。 Hystrix就是为了解决这个问题而出现的。 二...原创 2020-06-09 17:17:21 · 349 阅读 · 0 评论 -
springboot整合actuator检测应用健康情况
一、为项目整合Spring Boot Actuator Spring Boot Actuator 提供了很多监控的端点,可以通过http://{ip}:{port}/{endPoint}的形式来访问这些端点,通过访问这些端点来查看应用的健康状况。原创 2020-05-15 00:06:11 · 1296 阅读 · 0 评论 -
如何在springboot里配置多个mysql数据源?
如果项目中,需要加载多个数据源,即在一个应用中访问不同的mysql数据库,那么需要通过配置多个数据源来实现加载。一、application.properties文件spring.datasource.one.url=jdbc:mysql://localhost:3306/db3?useUnicode=true&characterEncoding=utf-8&am...原创 2020-04-02 17:32:29 · 6570 阅读 · 0 评论 -
Spring Boot 整合rabbitmq
一、队列准备 1. 先进入到rabbitmq的管理页面,然后在管理页面新建一个虚拟主机,默认的虚拟主机为"/" ,不同的环境使用不同的虚拟主机,如开发环境可以设置为dev,生产环境可以设置为prod。 2. 在默认的虚拟主机下,新增一个队列rabbitmqtest二、实现步骤 1. 添加rabbitmq依赖 :...原创 2020-03-04 20:58:52 · 1287 阅读 · 0 评论 -
RabbitMQ消息队列下载安装(Windows版本)
官网&网盘下载RabbitMQ官网下载址:http://www.rabbitmq.com/install-windows.htmlRabbitMQ是用Erlang编程语言进行开发,所以先要安装Erlang语言开发包Erlang官网下载地址:http://www.erlang.org/downloads百度网盘下载链接:https://pan.baidu.com/s/1XpwV8...转载 2020-03-04 17:19:02 · 1979 阅读 · 1 评论 -
使用Spring Boot发邮件
一、环境准备 1. 2个邮箱账号,一个QQ账号,另外一个就本人的公司账号,需要QQ邮箱启用SMPT服 2.成功开启后,会给一个授权码的弹窗,该授权码为后面用到的password二、 实现步骤 1.添加依赖: <!--邮件依赖--> <dependency> &l...原创 2020-03-02 14:53:11 · 344 阅读 · 0 评论 -
在Spriing Boot里使用Filter处理失效请求并返回至登录页面
一、场景分析 在实际的web应用中,一般给用户设置了使用时长,如果超出该使用时长,那么客户端会自动退出登录,需要用户重新输入密码才能进入到系统。二、实战 项目目录,同时使用过滤器过滤/web/下的资源请求。 1) 使用@Component和@WebFilter注解来使过滤器生效,urlPatterns="/"。 ...原创 2020-03-01 16:25:17 · 870 阅读 · 0 评论 -
怎么访问springboot中的maven项目jsp资源?
1. 添加jsp相关依赖: <!-- 集成jsp--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomca...原创 2020-02-17 16:13:31 · 603 阅读 · 0 评论 -
Spring boot使用 itextpdf 制作pdf文件实战
一、PDF PDF是一种我们在工作中一种常见的文件格式,在打印一些单据或者传输数据,需要使用到它。二、实现步骤 1. 添加依赖 <!--pdf依赖--> <dependency> <groupId> com.itextpdf</groupId > ...原创 2020-02-12 20:40:46 · 5465 阅读 · 0 评论 -
Spring boot 使用QRCodeWriter 制作二维码
一、二维码 在项目中,需要在系统的首页添加一个二维码图片,通过扫描此二维码可以进入到系统的说明页面。 就比如下面二维码: 二、实现步骤 1. 添加依赖:<!--二维码依赖--><dependency> <groupId>com.google.zxing<...原创 2020-02-11 19:36:05 · 6067 阅读 · 9 评论 -
springcloud之zuul的内置过滤器
一、过滤器类型与请求生命周期 Zuul大部分功能是通过过滤器来实现的。Zuul中定义了4种标准类型,这些过滤器类型对应的典型生命周期。 PRE: 这种过滤器在请求路由之前调用。可利用这种过滤器来实现身份认证,在集群中选择请求的微服务、记录调试信息等。 ROUNTING: 这种过滤器将请求路由到微服务,将请求路由到服务时执行。 ...原创 2020-01-09 08:51:57 · 661 阅读 · 0 评论 -
springcloud使用zuul 上传文件
1. Zuul简介 本文介绍使用zuul上传文件,将文件上传到服务器的指定路径。 第一步,添加zuul依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/...原创 2019-12-26 09:11:43 · 454 阅读 · 0 评论 -
Springcloud使用Zuul转发请求
一、Zuul简介 Zuul是Netflix开源的微服务网关,它可以与eureka,ribbon,hystrix等组件配合使用。Zuul的核心是一系列的过滤器,这些过滤器可以完成一下的功能: 1)身份认证与安全: 识别每个资源的验证要求,并拒绝那些与要求不符合的请求。 2)审查与监控:在边缘位置追踪有意义的数据和统计结果,从而...原创 2019-12-21 23:39:38 · 3756 阅读 · 0 评论 -
怎么用Ribbon+Eureka实现负载均衡?
一、Ribbon简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端行为。为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种负载均衡算法,自动地帮助服务消费者去提供请求。 在springcloud中,当Ribbon配合Eureka使用时,Ribbon可自动从Eureka Server获取服务提供者的地址列表,...原创 2019-12-19 15:10:32 · 1718 阅读 · 0 评论 -
使用Ribbon+RestTemplate来实现微服务间的调用
一、Ribbon Ribbon是Spring Cloud下的一个组件,是一个基于HTTP和TCP的客户端负载均衡工具,是一个负载均衡框架,是基于Netflix实现。我们可以通过Ribbon来实现服务间的调用,同时还可以实现各客户端服务间的负载均衡。1.现有2个服务,一个为expense,另一个为payment服务,准备使用ribbon实现服务间的调用,payment服务调ex...原创 2019-12-18 07:54:20 · 749 阅读 · 0 评论