0

0

SpringCloud Alibaba完整使用

絕刀狂花

絕刀狂花

发布时间:2025-07-10 13:28:11

|

506人浏览过

|

来源于php中文网

原创

大家好,又见面了,我是你们的朋友全栈君。

今天我要分享一套精彩的SpringCloudAlibaba视频教程,以及如何使用Docker搭建各种环境的资料。这里有一个必学的Docker容器技术和牛逼的SpringCloudAlibaba学习视频的下载链接:点击下载白嫖版(访问密码:2822)。

首先,我们需要在Linux环境下搭建几个关键组件:

  1. Nacos注册中心 - 文档和jar包。
  2. Sentinel - 用于流量控制和断路,提供文档和JAR下载地址。
  3. Apache SkyWalking APM - 用于链路跟踪。
  4. RocketMQ - 使用项目下载地址。

接下来,让我们详细介绍一下Nacos命名空间的使用:

SpringCloud Alibaba完整使用

SpringCloud Alibaba完整使用

SpringCloud Alibaba完整使用

创建带有分组的配置、通过配置设置使用的那个分组、然后访问测试显示dev

SpringCloud Alibaba完整使用

项目如下:

首先创建pom工程  ***Alibaba-Cloud***|

    4.0.0
    com.hxx.alibaba
    Alibaba-Cloud
    1.0-SNAPSHOT
    
        Alibaba-Cloud-Member
        Alibaba-Cloud-Provder
        Alibaba-Gateway-Api
    
    pom
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
        
    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.SR1
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-alibaba-dependencies
                0.2.2.RELEASE
                pom
                import
            
        
    
    
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-sentinel
        
        
            org.projectlombok
            lombok
            1.18.2
            true
        
    
|工程名称  Alibaba-Cloud-Provder
package com.hxx.alibaba.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 使用说明: 使用了 yaml配置中心后我的请求一直访问不到资源是404  出现这个情况的话 在Controller类在加一个@RequestMapping("/alibaba")
 * @author huangxiangxiang
 * @version 2.0.0
 * @createTime 2019年09月10日 13:25:00
 */
@RestController
@RequestMapping("/alibaba")
public class ProvderController {
    @RequestMapping("/getNmae")
    public String getNmaeList(String name) {
        System.out.println("生产者");
        return name + "生产者";
    }
}
package com.hxx.alibaba;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**

乐彼多用户商城系统LBMall(.net)
乐彼多用户商城系统LBMall(.net)

乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET+MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化设计,管理窗口识别客户端分辨率自动调整,独立配置的菜单操作锁,使管理操作简单便捷。待办事项1、新订单、支付、付款、短信提醒2、每5分钟自动读取3、新事项声音提醒 店铺管理1

下载
  • 启动类
  • 使用说明:生产者生产东西
  • @author huangxiangxiang
  • @version 2.0.0
  • @createTime 2019年09月10日 13:22:00 */ @SpringBootApplication @EnableDiscoveryClient public class ProvderApp { public static void main(String[] args) { SpringApplication.run(ProvderApp.class, args); } }

将本地的配置放到配置中心后,启动项目即可拉取配置,以yml的方式,默认是properties。

SpringCloud Alibaba完整使用

创建消费者工程 Alibaba-Cloud-Member
package com.hxx.alibaba.controller;

import com.hxx.alibaba.consum.ConsumService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;

/**

  • 使用说明:

  • @author huangxiangxiang

  • @version 2.0.0

  • @createTime 2019年09月10日 13:32:00 */ @RestController @RequestMapping("/aonsum") public class ConsumController { @Autowired private ConsumService consumService;

    @RequestMapping("/getNmae") public String getNmae(@RequestParam("name") String name) { String nmaes = consumService.getNmae(name); System.out.println(".......消费者fegin调用.....配置中心................." + nmaes); return nmaes; } }

import com.hxx.alibaba.exceptionhandler.SentinelExceptionHandler;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**

  • 使用说明:远程调用fegin --- 加入fallback 熔断器 解决连锁反应 被调用服务挂的的时候 和服务崩溃的情况
  • @author huangxiangxiang
  • @version 2.0.0
  • @createTime 2019年09月10日 13:30:00 */ @FeignClient(value = "alibaba-cloud-prod-provder",fallback = SentinelExceptionHandler.class) public interface ConsumService { @RequestMapping("/alibaba/getNmae") public String getNmae(@RequestParam("name") String name); }
package com.hxx.alibaba.exceptionhandler;

import com.hxx.alibaba.consum.ConsumService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component;

/**

  • 使用说明:实现限流的异常处理

  • @author huangxiangxiang

  • @version 2.0.0

  • @createTime 2019年08月22日 18:07:00 */ @Component public class SentinelExceptionHandler implements ConsumService { final static Logger logger = LoggerFactory.getLogger(SentinelExceptionHandler.class);

    @Override public String getNmae(String name) { logger.info("sentinel 熔断处理 {}", "SentinelExceptionHandler"); return "Sentinel {由于你的访问次数太多,已为你限流、您已进入保护模式,请稍后再试!}>>>熔断处理函数"; } }

bootstrap.properties 配置文件

端口已经配置到 -NACOS 注册中心

spring.application.name=alibaba-cloud-member

配置文件的地址

spring.cloud.nacos.config.server-addr=192.168.220.129:8848

注册中心的地址

spring.cloud.nacos.discovery.server-addr=192.168.220.128:8848

限流监控中心

spring.cloud.sentinel.transport.dashboard=192.168.220.128:8080

spring.cloud.sentinel.eager=true

spring.cloud.nacos.config.file-extension= yaml

配置中心:

SpringCloud Alibaba完整使用

启动后即可查看效果。

接下来,我们使用路由网管:

Alibaba-Gateway-Api 工程:

package alibaba.fielt;

import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Maps; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import java.util.Map;

/**

  • 使用说明: 鉴权过滤器

  • @author huangxiangxiang

  • @version 2.0.0

  • @createTime 2019年09月10日 15:55:00 */ @Component public class AuthFilter implements GlobalFilter, Ordered { @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { String token = exchange.getRequest().getQueryParams().getFirst("token"); if (token == null || token.isEmpty()) { ServerHttpResponse response = exchange.getResponse(); Map map = Maps.newHashMap(); map.put("code", 401); map.put("message", "非法请求!"); map.put("cause", "Token not is null"); ObjectMapper mapper = new ObjectMapper(); try { byte[] bytes = mapper.writeValueAsBytes(map); // 输出错误信息到页面 DataBuffer buffer = response.bufferFactory().wrap(bytes); response.setStatusCode(HttpStatus.UNAUTHORIZED); response.getHeaders().add("Content-Type", "application/json;charset=UTF-8"); return response.writeWith(Mono.just(buffer)); } catch (JsonProcessingException e) { e.printStackTrace(); } } return chain.filter(exchange); }

    //设置过滤器的执行顺序 @Override public int getOrder() { return Ordered.LOWEST_PRECEDENCE; } }

package alibaba;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**

  • 使用说明: 路由网管启动类
  • @author huangxiangxiang
  • @version 2.0.0
  • @createTime 2019年09月10日 14:27:00 */ @SpringBootApplication @EnableDiscoveryClient public class GatewayApp { public static void main(String[] args) { SpringApplication.run(GatewayApp.class, args); } }
#1、端口已经配置到 -NACOS 注册中心

--这个要和 Nacos 的 Data ID 前缀一致

spring.application.name=alibaba-cloud-gateway

2、配置文件的地址

spring.cloud.nacos.config.server-addr=192.168.220.129:8848

3、注册中心的地址

spring.cloud.nacos.discovery.server-addr=192.168.220.129:8848

4、限流监控中心

spring.cloud.sentinel.transport.dashboard=192.168.220.129:8080 spring.cloud.sentinel.eager=true

5、配置以yaml的形式----不配置就拉取不到

spring.cloud.nacos.config.file-extension=yaml

路由的网关 -id -uri 去掉- 在yml中不要在 路由中加 -

配置中心太长导致无法截图,所以复制如下:

server:

port: 9000 spring: cloud: gateway: discovery: locator: enabled: true routes:

  • id: ALIBABA-CLOUD-MEMBER uri: lb://alibaba-cloud-member predicates:
    • Method=GET,POST
  • id: alibaba-cloud-provder uri: lb://alibaba-cloud-provder predicates:
    • Method=GET,POST logging: level: org.springframework.cloud.gateway: debug

启动后访问localhost/路由/路径即可。

搭建Elasticsearch(ES),安装成功后访问IP + 9200出现JSON即为成功。

Apache SkyWalking APM比较复杂,先下载该组件:

修改application.yml配置文件:

SpringCloud Alibaba完整使用

创建一个文件夹,将下载的探针agent单独拷贝一份放到创建的文件夹下:

SpringCloud Alibaba完整使用

然后修改工程启动的VM参数:

SpringCloud Alibaba完整使用

注意:这里有几个容易出错的地方,第一行是刚才创建的agent文件夹位置要对应,第二行要与配置生产和消费的服务名称spring.application.name一致,不然出不来效果,第三行是Linux里的IP + 端口号。

-javaagent:D:\hxxcloud02\Alibaba-Cloud\Alibaba-cloud-external-skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=alibaba-cloud-prod-provder
-Dskywalking.collector.backend_service=192.168.220.129:8080

配置完成后,启动后出现日志即为成功,可以查看调用接口的效果。

SpringCloud Alibaba完整使用

SpringCloud Alibaba完整使用

SpringCloud Alibaba完整使用

SpringCloud Alibaba完整使用

SpringCloud Alibaba完整使用

还有一个MQ还没写,有空就更新下。

发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/ec23187ecc4e0c6eb40cd187db4a865c 原文链接:https://www.php.cn/link/c8377ad2a50fb65de28b11cfc628d75c

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

103

2025.08.06

504 gateway timeout怎么解决
504 gateway timeout怎么解决

504 gateway timeout的解决办法:1、检查服务器负载;2、优化查询和代码;3、增加超时限制;4、检查代理服务器;5、检查网络连接;6、使用负载均衡;7、监控和日志;8、故障排除;9、增加缓存;10、分析请求。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

567

2023.11.27

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

220

2023.12.07

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

412

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

310

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

75

2025.09.10

html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

616

2023.06.14

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

MongoDB 教程
MongoDB 教程

共17课时 | 2.2万人学习

C# 教程
C# 教程

共94课时 | 7.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号