Maven安装手册 1.准备安装包 安装包: apache-maven-3.5.4-bin.zip  (最好JDK 1.7及以上版本) 集成包: eclipse-maven3-plugin.zip 2.maven安装 2.1 将下载好的maven安装包解压到你想放的硬盘目录下 例:H:\maven\apache-maven-3.5.4 2.2 配置环境变量 MAVEN_HOME = H:\maven\apache-maven-3.5.4 path = %MAVEN_HOME%\bin: 2.3…
项目的简单介绍: 项目采用maven聚合工程 用spring boot 搭建 spring cloud的微服务 模块式开发 项目的截图: 搭建开始: 能上图 我少打字 1.首先搭建maven的聚合工程 1.1创建聚合工程的父模块 1.2设置父模块的POM文件 主要是配置 spring boot版本,spring cloud 版本,和一些通用的依赖 比如这里的 lombok依赖 <?xml version="1.0" encoding="UTF-8"?>…
spring cloud微服务项目搭建 =================================== 示例版本: 1.spring boot 2.0版本 2.开发工具 IntellJ IDEA =================================== 一些特别注意的点: 1.创建spring boot项目 2.在父级项目下创建子级module[这一点曾经纠结了我好久] 3.父子级项目之间建立关系 4.eureka集群的创建 5.打包子级module必须保证父级项目已经打包…
使用eclipse中使用maven构建spring cloud微服务,springcloud通过maven构建项目.springcloud项目搭建. 工具/原料   eclipse maven spring boot spring cloud 方法/步骤     新建一个maven项目   文件->新建->项目   选择Maven project,然后点击下一步   再点击下一步   选择maven-archetype-quicktype   输入group id, artifact id等信…
前言:在互联网应用中,特别是电商,高并发的场景非常多,比如:秒杀.抢购.双11等,在开始时间点会使流量爆发式地涌入,如果对网络流量不加控制很有可能造成后台实例资源耗尽.限流是指通过指定的策略削减流量,使到达后台实例的请求在合理范围内.本章将介绍spring cloud gateway如何实现限流. 前情回顾请参考: Spring Cloud 微服务一:Consul注册中心 Spring Cloud 微服务二:API网关spring cloud zuul Spring Cloud 微服务三: AP…
本篇我们来看看怎么实现spring cloud的配置中心. 在分布式系统中,特别是微服务架构下,可能会存在许多的服务,每个服务都会存在一个或多个的配置文件.那怎么多的配置文件的管理就会成为一个大问题.同时,微服务运行过程中还需要动态的修改配置参数.所以spring cloud config就是在spring cloud微服务架构中解决配置文件的管理,刷新,查看等问题的. 注:这一个系列的开发环境版本为 java1.8, spring boot2.x, spring cloud Greenwich…
0.前言 什么是Spring Cloud Alibaba? Spring Cloud Alibaba 是阿里开源的,致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务.   包含哪些组件? 各组件请上官网详细了解,这里我们主要介绍两个重量级组件:nacos.Sentinel nacos:服务注册发现组件,类似于Consul.Eureka,同时它又提供了分布式配置中心的功能,这点和c…
本demo后台采用spring cloud微服务,前端选用vue,进行前后端分离搭建.具体项目见git:光头才能强 创建文件夹,并分别创建以下jar工程 创建公共模块(后续有需要,还会增加).无论是dubbo还是spring cloud,公共模块都相似,只不过spring cloud的公共模块大多都是spring cloud自身提供的,而dubbo部分模块需要借助三方组件 服务注册中,使用eureka,见工程vue-spring-cloud-eureka 创建服务监控中心,使用spring bo…
采用Maven 聚合工程搭建 Spring Cloud 使用工具: IntelliJ IDEA    版本: 2019.2.2 maven             版本: 3.6.0 JDK                 版本:1.8.0_181 1.搭建聚合工程的父模块 2.配置父模块POM <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apac…
挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU2MA==&mid=2247483807&idx=1&sn=061f9a4f6711d7c4550c4f9012d9ad4e&chksm=fa80d008cdf7591edd2373aae91c76b4b13ec8a30a6f55d4f851556a288ca4c25f4289…
在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka 服务治理下的应用,同时也从 Eureka 服务中获取所有其他微服务的实例信息.搭建 OAuth2 认证授权服务,并不是给每个微服务调用,而是通过 API 网关进行统一调用来对网关后的微服务做前置过滤,所有的请求都必须先通过 API 网关,API 网关在进行路由转发之前对该请求进行前置校验,实现对微服…
martin fowler大神提出微服务的概念后,各种微服务的技术满天飞,现在用的比较多的是spring cloud和阿里的dubbo,由于dubbo 在16年10月份就停止更新了,这里我们讲解spring cloud技术 组件有:注册中心+普通服务+断路器+服务网关+分布式追踪+性能监控+消息总线+配置中心 运用的java框架:Intellij idea + spring boot + mybatis + mysql + maven 官网文档:http://spring.io/docs/ref…
服务治理:Spring Cloud Eureka 一.服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现. 1.服务注册: 在服务治理框架中,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号. 版本号.通信协议等一些附件信息告知注册中心,注册中心按服务名称分类组织服务清单,例如: 2.服务发现: 调用方需要向服务注册中心咨询服务,并获取所有服务的实例清单,以实现对具体服务实例的访问. 二.Netflexi Eura…
上一篇搭建了一个OAuth2认证服务器,可以生成token,这篇来改造下之前的订单微服务,使其能够认这个token令牌. 本篇针对订单服务要做三件事: 1,要让他知道自己是资源服务器,他知道这件事后,才会在前边加一个过滤器去验令牌(配置@EnableResourceServer 配置类) 2,要让他知道自己是什么资源服务器(配置资源服务器ID) 3,配置去哪里验令牌,怎么验令牌,要带什么信息去验 (配置@EnableWebSecurity 配置TokenServices,配置Authentica…
0-为什么需要熔断器 在分布式系统中,各个服务相互调用相互依赖,如果某个服务挂了,很可能导致其他调用它的一连串服务也挂掉或者在不断等待中耗尽服务器资源,这种现象称之为雪崩效应: 未来防止系统雪崩,熔断机制必不可少,就是当一个服务挂掉后,调用它的服务能快速熔断,不再耗费资源,快速失败并提供回退方案:  [Hystrix]:是spring cloud的熔断器组件,提供了熔断器功能,能够阻止联动故障,并提供故障的解决方案,提供系统弹性: [Hystrix Dashboard]:是熔断器的监控面板,通过…
0.前言 sentinel的限流.降级功能强大,可以在控制面板中任意制定规则,然后推送到微服务中: 可以根据URL单独制定规则,也可以根据资源名批量制定规则: 需要注意的地方是:1.GITHUB文件在国外的亚马逊服务器已经彻底被墙,无法下载,只能想法找国内的分享,自求多福 2.控制面板制定的规则只保存在内存中,重启就会消失,需要配合其他方式实现持久化存储规则,这点在生产环境中需要注意 1.运行sentinel sentinel只是一个JAR包,下载下来后,直接命令运行该JAR就行,默认的端口是8…
前期架构设计图: 参考博文: Eureka相关: Eureka注册与发现(高可用注册中心.注册服务.Feign服务调用):https://blog.csdn.net/qq_32529383/article/details/79951511 Eureka配置:https://blog.csdn.net/amon1991/article/details/79347660 SpringBoot单元测试:https://blog.csdn.net/sz85850597/article/details/8…
martin fowler大神提出微服务的概念后,各种微服务的技术满天飞,现在用的比较多的是spring cloud和阿里的dubbo,由于dubbo 在16年10月份就停止更新了,不过好像前些天又更新了下,这里我们讲解spring cloud技术 dubbo源码地址:https://github.com/alibaba/dubbo spring cloud源码地址:https://github.com/spring-cloud 组件有:注册中心+普通服务+断路器+服务网关+分布式追踪+性能监控…
微服务的最后一个组件, 调用链监控,一个请求进来以后,经过N多个微服务,例如a调用了b.b又调用了c,那么在这个过程中看到,整个的调用的链路,然后每一段调用所耗费的时间,帮你去分析你的系统如果出现瓶颈以后,瓶颈到底在什么地方. pinpoint 点击看一下在线的demo 提供的一些应用的列表 选择order.这张图就是order这个服务的调用图. 出去调用的一层,分别调用了product和payment还有mysql数据库 outbound选择两层的话 图就会刷新.每一个箭头上都有数字,数字就是…
微服务是现在比较流行的技术,对于程序猿而言,了解并搭建一个基本的微服务框架是很有必要滴. 微服务包含的内容非常多,一般小伙伴们可以根据自己的需求不断添加各种组件.框架. 一般情况下,基本的微服务框架包含:框架:注册中心.负载均衡.声明式服务(feign).容错(hystrix).网关(权限)gateway 和 配置(resource) 注册中心:现在比较常用的有eureka.nacos 负载均衡:包括feign.ribbon等技术,相关对比可以参考另一位老哥的博客:<负载均衡之feign与rib…
0-前言 eureka实际上已经集成了负载均衡调度框架Ribbon: 我们有了各个微服务了,那怎么来调用他们呢,一种方法是可以使用 RestTemplate(如:String str= restTemplate.getForObject("http://localhost:8763/user/hello",String.class); 使用RestTemplate的话要使用负载均衡调度(ribbon)需要增加@LoadBalanced注解,如: @Bean @LoadBalanced…
0-前言 上一篇我们介绍了nacos作为服务注册发现组件的功能,nacos还具有配置中心的功能,而且支持热加载: 在此之前,配置中心有Spring Cloud Config,实际上,用这个有很多风险和隐忧,有了nacos,我们可以大舒一口气了,Spring Cloud Config从此只存在垃圾桶: 1.运行nacos 跟上篇 2.集成nacos配置中心 2-1.添加依赖: 新建nacos-user-config模块,添加依赖: <!-- 集成nacos 服务发现 --> <depend…
0-前言 spring cloud feign 默认使用httpclient,需要okhttp3的可以进行切换 当然,其实两者性能目前差别不大,差别较大的是很早之前的版本,所以,喜欢哪个自己选择: 1-实现 1-1.增加okhttp3依赖; <!-- feign 依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-star…
0-前言 我们一个个微服务构建好了,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务.当添加API网关后,在第三方调用端和服务提供方之间就创建了一个代理层,这个代理层直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端. Zuul:就是一个API中间代理层,可以用来执行认证.动态路由.服务前移.负载均衡.安全.动态响应处理等:比如/api/user转发到到user服务,/api/order转…
Prmetheus 主要用来做来Metrics的监控和报警,这张图是官方的架构图. 这是他的核心 它的作用是根据我们的配置去完成数据的采集.服务的发现,以及数据的存储. 这是服务的发现,通过Service discovery,prmethesu就会知道去哪里采集数据.Service discovery有两种形式,一种是是静态的,就是通过文件去配.告诉它你要去哪拿这个Metrics的数据,另一种就是动态的,通过zookeeper或者其他的一些配置中心,配置中心里面的数据变化的时候,Promethe…
认证服务器已经搭建好了. 可以通过认证服务器拿到令牌 下面改造订单服务,让它可以用这个令牌. 争对订单服务要做三个事, 1.让订单服务知道它自己是Oauth协议里面的资源服务器.,它知道这个事后,它才会在自己的应用前面去加一个过滤器,然后去校验这个令牌. 2.让它知道自己是什么资源服务器.让它声明一下,因为我们之前在认证服务器上,下面这个地方配置了发出去的令牌只能访问order-server这样一个资源服务器.所以我让它自己知道它是order-server 3.在订单服务上,配置怎么去验证这个令…
Feign 一.Feign概述 Feign是一个声明式的Web Service客户端.在Spring Cloud 中使用Feign,可以做到 使用HTTP请求访问远程服务,就像调用本地方法一样,同时它整合了Ribbon和Hystrix. 入门案例: 主要依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo…
采集不可聚合的离散的.日志信息的e ELK是三个系统的简称 LogStash:用来做日志的收集.过滤.格式转换 Kibana:和普罗米修斯的grafana一个意思.主要用来展示数据. 用docker来装ELK的环境 把这个项目克隆到本地 说明里面 告诉你怎么使用. 进入到docker-elk的文件夹下.然后保证当前目录有这个docker-compose.yml这个文件. 第一次安装会下载很多东西. 这样就说明elk的环境就启动起来了. 收集日志的是5000端口 tcp的端口是看不到页面的.我们可…
因为后面运行的这些可视化的工具都是用docker去run 的.为了避免对docker完全没有概念的同学听不懂,帮助大家从概念上去理解docker是个什么东西. 最核心的东西就是镜像,把它理解为SpringBoot打成的可执行的Jar包,分别是可执行的jar包是java语言写的东西, 镜像是包含了你应用程序所需要的所有东西的一个包. 容器是镜像的一个实例,每run一个镜像,就产生一次容器.一个镜像可以产生无数个容器, 安装docker的环境 CE是社区版,EE是企业版本.网站需要登陆才能做这些操作…
现在可以访问我们的认证服务器,应用我们已经配置好了. 下面配置让用户可以访问我的认证服务器.再来重写一个方法. EndpointConfigure端点的配置. authenticationManager用来校验,我们传进来的用户信息是不是合法的 authenticationManager那么它从哪来呢?注入进来. 单独写一个类来配置. 继承这个类 WebSecurityConfigurerAdapter, 这是web应用的安全配置的适配器. 同样在上面要写两个注解,@EnableWebSecur…