创建一个springbootcloud项目

前提软件安装

nacos 服务治理:

github下载地址:https://github.com/alibaba/nacos/tags

码云下载地址:https://gitee.com/mirrors/Nacos

百度云盘:链接:https://pan.baidu.com/s/1KSMbDfWU0lhQxrkojwqoCQ 提取码:xalg

nacos快速开始:https://nacos.io/zh-cn/docs/quick-start.html

下载完成之后,解压,进入项目目录。

创建一个springbootcloud项目

进入解压后的 bin目录,运行 startup.cmd启动 nacos

创建一个springbootcloud项目

创建一个springbootcloud项目

访问地址: http://192.168.32.1:8848/nacos/index.html

nacos 默认用户名、密码均为 nacos

nacos已成功安装运行!

zipkin 链路追踪:

下载:
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

启动命令

java -jar D:/software/zipkin-server-2.12.9-exec.jar

访问地址:http://localhost:9411/zipkin/

Sentinel 分布式系统的流量防卫兵

不安装该软件,项目也可以运行,只是无法访问控制台,进行监控。

GitHub 地址:https://github.com/alibaba/Sentinel

百度云地址:链接:https://pan.baidu.com/s/1OKg-Q8lXtHhT7ihIUhPtxA 提取码: 3oaq

命令启动:

java -jar D:/software/sentinel-dashboard-1.7.1.jar

访问地址: http://localhost:8080/ , Sentinel 登录页面,输入默认登录账号密码均为 sentinel,都是小写。

创建一个springbootcloud项目

创建springbootcloud项目

1. 新建个 maven 根项目。

File –> New –> Project。选择Maven、下一步。

后面就是输入项目名称,选择本项目地址就不一一描述了。

2. 建立子项目。maven项目。

点击项目名称右键。 New –> Module,后面操作步骤同上面差不多。

3. 根项目的pom.xml


    4.0.0

        org.springframework.boot
        spring-boot-starter-parent
        2.1.3.RELEASE

    com.blackcat
    demo-springbootcloud-alibaba
    pom
    1.0-SNAPSHOT

        consumer
        provider

        1.8
        UTF-8
        UTF-8
        Greenwich.RELEASE
        2.1.0.RELEASE
        2.4.0

                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import

                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring-cloud-alibaba.version}
                pom
                import

                io.springfox
                springfox-swagger2
                ${swagger.version}

                io.springfox
                springfox-swagger-ui
                ${swagger.version}

                com.alibaba.cloud
                spring-cloud-starter-alibaba-nacos-discovery

                com.alibaba.cloud
                spring-cloud-starter-alibaba-nacos-config

            org.springframework.cloud
            spring-cloud-starter-sleuth

            org.springframework.cloud
            spring-cloud-starter-zipkin

4. 提供者示例

nacos 添加配置文件,填完发布。

创建一个springbootcloud项目

创建一个springbootcloud项目

nacosprovider-dev-yaml

server:
  port: 8081
spring:
  application:
    name: provider
  zipkin:
    base-url: http://localhost:9411
    discoveryClientEnabled: false
  sleuth:
    sampler:
      probability:  1.0
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

创建一个springbootcloud项目

项目添加bootstrap.xml

spring:
  application:
    name: provider # nacos中配置文件名称。如:provider-dev.yaml
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 # nacos服务端地址
        file-extension: yaml # 配置格式
  profiles:
    active: dev # 环境配置 如:provider-dev.yaml 中的dev

项目结构

创建一个springbootcloud项目

源码后面会附出,就不每个类的代码就一一附出了。

项目启动后,查看nacos。

每启动一个服务,就会在服务列表中看到。

创建一个springbootcloud项目

5. 消费者示例

项目结构

创建一个springbootcloud项目

nacos 的consumer-dev-yaml

server:
  port: 8082
spring:
  application:
    name: consumer
  zipkin:
    base-url: http://localhost:9411
    discoveryClientEnabled: false
  sleuth:
    sampler:
      probability:  1.0 #采样百分比  0.0 - 1.0
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    sentinel:
      transport:
        port: 8888 #默认8888端口,假如被占用会自动从8888开始依次+1扫描,直至找到未被占用的端口
        dashboard: localhost:8080 #指定Sentinel DashBoard服务地址
remote:
  server: provider
#开启feign对sentinel的支持
feign:
  sentinel:
    enabled: true

主要代码

package com.blackcat.springbootcloud.feign;
import com.blackcat.springbootcloud.feign.fallback.ConsumerServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
/**
  *  描述 :
  * @author : blackcat
  * @date  : 2020/8/28 16:14
 *
 *  ${remote.server} 为配置文件中的配置
 *  server:为提供者服务名称,如:provider-dev.yaml
 */
@FeignClient(value = "${remote.server}",fallback = ConsumerServiceFallback.class)
public interface ConsumerService {
    /**
     *  描述 :
     * @author : blackcat
     * @date  : 2020/8/28 16:16
     *
     * /provider/test 为提供者示例的方法链接
    */
    @RequestMapping("/provider/test")
    String test();
}

ConsumerServiceFallback:为当访问 /provider/test访问不到,就会调用该类的方法。

package com.blackcat.springbootcloud.feign.fallback;
import com.blackcat.springbootcloud.feign.ConsumerService;
import org.springframework.stereotype.Service;
@Service
public class ConsumerServiceFallback implements ConsumerService {
    @Override
    public String test() {
        return "访问失败";
    }
}

访问结果

创建一个springbootcloud项目

zipkin 控制台

Zipkin 是一个开放源代码分布式的跟踪系统,每个服务向 zipkin报告计时数据, zipkin会根据调用关系通过Zipkin UI生成依赖关系图。

访问方法后,点击查询,会显示查询记录。

创建一个springbootcloud项目

点击方法记录,会有详细的调用信息,用时。

根据下发示例,可以看出那个两个方法用时,就知道每个方法的用时,就知道问题出在何处。

创建一个springbootcloud项目

sentinel 控制台

创建一个springbootcloud项目

创建一个springbootcloud项目

示例源码

https://gitee.com/kylin_lawliet/demo-springbootcloud-alibaba.git

Original: https://www.cnblogs.com/Kylin-lawliet/p/13588643.html
Author: 黑猫的黑猫黑猫
Title: 创建一个springbootcloud项目

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/593607/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • C++基础-类与对象(3)

    C++类与对象(3)—多态 一个接口有多种形态,传入的对象不一样,同一个接口执行的操作不同 多态的基本概念 多态分为两类 静态多态:函数重载和运算符重载属于静态多态,复用函数名 动…

    Java 2023年6月5日
    069
  • springboot读取配置文件中的集合对象

    配置文件如下: food-category.properties 不难看出,配置文件中是多个对象集合,我们只有要建立对应的类进行读取即可。 1.创建对应的实体类,建立映射并读取配置…

    Java 2023年5月30日
    062
  • 高可用架构(上)

    1. 背景 在学习完各种高性能发实现方案后,就需要对三大复杂度一直的高可用进行开刀了,在高可用方面主要有哪些东西是我们需要考虑的呢?接下来将从三个方面逐一分析。 2. 理论 在设计…

    Java 2023年6月15日
    055
  • [Java]Map接口有关面试题

    Map接口 1、HashMap和Hashtable的区别 线程安全方面。 HashMap是非线程安全的, Hashtable是线程安全的。因为 Hashtable内部方法基本都经过…

    Java 2023年6月5日
    0135
  • 服务端高并发分布式架构演进之路

    1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了…

    Java 2023年5月30日
    064
  • 开源C# WPF控件库推荐

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【 推荐】按钮。如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【 关注我】。(●’◡’…

    Java 2023年5月30日
    053
  • 3、封装和继承

    隐藏细节 通过访问修饰符private,有些细节不需要用户直接访问,将他隐藏起来。只能间接访问,通过提供一些共有的接口(给外部提供一个可以调用的方法) 会写JavaBean fin…

    Java 2023年6月6日
    059
  • 导入导出笔记-easyExcel初探(表格导入和模板化导出)

    前言 本文使用的EasyExcel Alibaba和EasyPoi Apache技术栈分析 EasyExcel Dependency EasyPoi Dependency 1、需求…

    Java 2023年6月5日
    066
  • java_day03

    变量是什么:就是可以变化的量 Java是一种强类型语言,每个变量都必须声明其类型 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域 type varName…

    Java 2023年6月5日
    098
  • Spring Cloud Alibaba 介绍及工程准备

    SpringCloud Alibaba是阿里巴巴集团开源的一套微服务架构解决方案。 微服务架构是为了更好的分布式系统开发,将一个应用拆分成多个子应用,每一个服务都是可以独立运行的子…

    Java 2023年6月5日
    050
  • git的基本操作

    Git的基本操作 1 Git本地操作总结 初始化工作区 git init 查看状态 git status 提交 工作区提交暂存区 git add 文件 或 git add . &#…

    Java 2023年6月9日
    0154
  • 保姆级服务,一键 Git Worktree,这样满意吗?

    前言 上一篇文章Git Worktree 高级使用 整体反应不错,这完全是日常开发中可以用到的奇淫技巧。微服务环境下,通常我们都会有多个 repo,高级用法好归好,但每个 repo…

    Java 2023年6月5日
    075
  • Redis八:Windows环境下的Redis集群搭建-官方Redis Cluster 方案(服务端路由查询)

    一、准备工作 本次Redis 集群搭建使用官方提供的Redis Cluster的管理工具:redis-trib.rb; 一共需要4个部件: Redis Ruby语言运行环境 Red…

    Java 2023年6月8日
    078
  • springCloud中增加gateway(超详细)

    地址:https://blog.csdn.net/qq_42815754/article/details/94622244 此博客只是为了记忆相关知识点,大部分为网络上的文章,在此…

    Java 2023年5月30日
    073
  • MySQL中的 ”SELECT FOR UPDATE“ 一次实践

    最近工作中遇到一个问题,两个不同的线程会对数据库里的一条数据做修改,如果不加锁的话,会得到错误的结果。 就用了MySQL中for update 这种方式来实现 本文主要测试主键、唯…

    Java 2023年6月8日
    050
  • Stream 流

    1.stream.forEach() 与 collection.forEach() 虽然都是迭代方法,但执行结果完全不同。 List strl=Arrays.asList(&quo…

    Java 2023年6月8日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球