大家好,又见面了,我是你们的朋友全栈君。
今天我要分享一套精彩的SpringCloudAlibaba视频教程,以及如何使用Docker搭建各种环境的资料。这里有一个必学的Docker容器技术和牛逼的SpringCloudAlibaba学习视频的下载链接:点击下载白嫖版(访问密码:2822)。
首先,我们需要在Linux环境下搭建几个关键组件:
- Nacos注册中心 - 文档和jar包。
- Sentinel - 用于流量控制和断路,提供文档和JAR下载地址。
- Apache SkyWalking APM - 用于链路跟踪。
- RocketMQ - 使用项目下载地址。
接下来,让我们详细介绍一下Nacos命名空间的使用:



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

项目如下:
首先创建pom工程 ***Alibaba-Cloud***||工程名称 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 + "生产者"; } } 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
package com.hxx.alibaba;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
乐彼多用户商城系统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。

创建消费者工程 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
配置中心:

启动后即可查看效果。
接下来,我们使用路由网管:
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 //设置过滤器的执行顺序 @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配置文件:

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

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

注意:这里有几个容易出错的地方,第一行是刚才创建的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
配置完成后,启动后出现日志即为成功,可以查看调用接口的效果。





还有一个MQ还没写,有空就更新下。
发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/ec23187ecc4e0c6eb40cd187db4a865c 原文链接:https://www.php.cn/link/c8377ad2a50fb65de28b11cfc628d75c
- Method=GET,POST
logging:
level:
org.springframework.cloud.gateway: debug
- id: ALIBABA-CLOUD-MEMBER
uri: lb://alibaba-cloud-member
predicates:










