Java之SpringCloud nocos注册中心讲解

一、nacos是什么?

Nacos是用来发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助快速实现动态服务发现服务配置、服务元数据流量管理

二、使用步骤

1.安装nacos 服务器

直接运行 startup.cmd 访问 localhost:8848/nacos
初始密码 nacos nacos

2.导入依赖和配置yaml

父项目依赖pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.csdn</groupId>
    <artifactId>springcloud_nacos</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springcloud_share_6002</module>
        <module>springcloud_user_6001</module>
        <module>springcloud_common</module>
    </modules>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <junit.version>4.12</junit.version>
        <lombok.version>1.18.16</lombok.version>
        <log4j.version>1.2.17</log4j.version>
        <logback-core.version>1.2.3</logback-core.version>
        <mysql-connector-java.version>8.0.21</mysql-connector-java.version>
        <druid.version>1.1.23</druid.version>
        <mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version>
        <spring-boot-dependencies.version>2.3.8.RELEASE</spring-boot-dependencies.version>
        <spring-cloud-dependencies.version>Hoxton.SR9</spring-cloud-dependencies.version>
        <spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version>
        <swagger.version>2.7.0</swagger.version>
        <pagehelper.version>1.2.3</pagehelper.version>
        <jodatime.version>2.10.1</jodatime.version>
        <jjwt.version>0.10.7</jjwt.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--很重要的包:springcloud的依赖-->
            <!-- <scope>import</scope>解决单继承问题,类似parent标签, -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring-cloud-alibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--springboot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--数据库-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector-java.version}</version>
            </dependency>
            <!--数据源-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <!--mybatis的springboot启动器-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis-spring-boot-starter.version}</version>
            </dependency>
            <!--日志测试-->
            <!--junit-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <!--lombok-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <!--log4j-->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>${logback-core.version}</version>
            </dependency>
            <!--swagger-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <!--swagger ui-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <!--druid alibaba-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>${pagehelper.version}</version>
            </dependency>
            <!--日期时间工具-->
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${jodatime.version}</version>
            </dependency>

            <!-- JWT -->
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-api</artifactId>
                <version>${jjwt.version}</version>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-impl</artifactId>
                <version>${jjwt.version}</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-jackson</artifactId>
                <version>${jjwt.version}</version>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <!--打包插件-->
    </build>
</project>

在需要被nacos发现的微服务个module加上nacos依赖

<!--服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

springcloud_common的pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springcloud_nacos</artifactId>
        <groupId>com.csdn</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud_common</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <!--spring默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor了-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <!--服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--服务容错-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!--feign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!-- JWT -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-jackson</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
</project>

@Configuration
@EnableSwagger2
public class Swagger2Config {

    /**
     * 定义接口的总体信息
     *
     * @return
     */
    private ApiInfo webApiInfo() {

        return new ApiInfoBuilder()
                .title("Swagger API 文档")
                .description("即使再小的帆也能远航")
                .version("1.0")
                .contact(new Contact("liar", "http://www.jsxllht.com", "**********6@qq.com"))
                .build();
    }

    private ApiInfo adminApiInfo() {

        return new ApiInfoBuilder()
                .title("Swagger Admin 文档")
                .description("即使再小的帆也能远航")
                .version("1.0")
                .contact(new Contact("liar", "http://www.jsxllht.com", "**********6@qq.co"))
                .build();
    }

    @Bean
    public Docket webApiConfig() {

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi") // 用户组
                .apiInfo(webApiInfo()) // 组的信息
                .select()
                //只显示api路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/api/.*")))  // 用户接口的判断
                .build();

    }

    @Bean
    public Docket adminApiConfig() {

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi") // 管路⚪组
                .apiInfo(adminApiInfo()) // 组的信息
                .select()
                //只显示admin路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
                .build();

    }
}
/**
 *  业务异常类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AppException extends RuntimeException{

    private String code;
    private String message;

    public AppException(ResponseEnum responseEnum){
        this.code = responseEnum.getCode();
        this.message = responseEnum.getMessage();
    }
}
// 这是一个controller 的增强类【专门在controller 抛出异常的时候  增强】
@ControllerAdvice
public class ControllerExceptionAdvice {

    /**
     *  如果抛出的是 AppException 的增强
     *  返回值 就是返回的页面
     *  参数: controller 抛出的异常
     */
    @ExceptionHandler(AppException.class)
    @ResponseBody
    public R appExceptionHandler(AppException ex, HttpServletRequest request){
       return new R(ex.getCode(),ex.getMessage(),null);
    }

    /**
     *  如果抛出的是Exception 的增强
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public R exceptionHandler(Exception ex, HttpServletRequest request){
        ex.printStackTrace();
        return new R(ResponseEnum.SYSTEM_ERROR,null);
    }
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
// 创建统一的返回格式
public class R<T> {

    private String code;
    private String message;
    private T data;

    public R(ResponseEnum responseEnum, T data) {
        this.code = responseEnum.getCode();
        this.message = responseEnum.getMessage();
        this.data = data;
    }
}
public enum ResponseEnum {
    SUCCESS("200","成功003"),
    USERNAME_NOT_FOUND("300","用户名不存在"),
    USERNAME_OR_PASSWORD_INVALIDATE("301","用户名或者密码错误"),
    ROLE_NO_MENUS("302","此角色没有任何菜单权限,请尽早分配"),
    HAS_NO_TOKEN("303","还没有登录"),
    TOKEN_ERROR("304","别想试图伪造令牌"),
    TOKEN_TIMEOUT("305","对不起登录状态已经失效,请重新登录"),
    HAS_NO_RIGHT("306","权限不足"),
    SYSTEM_ERROR("500","发生未知异常。。。"),
    FEIGN_BSUY("307","系统正忙,稍后再试。。"),
    FLOW_BLOCK("308","流量被限制了,请稍后再使"),
    DEG_BLOCK("309","系统很忙,稍后再试。。。"),
    SMS_ERROR("310","短信发送失败,请稍后再试。。。"),
    SMS_SEND_ERROR_BUSINESS_LIMIT_CONTROL("311","发送短信太频繁,过会再发。。。"),
    CODE_ERROR("312","验证码错误请重试"),
    CODE_EXCPTION("313","验证码超时"),
    ACCOUNT_NO_EXISTS("314","用户不存在"),
    STATUS_BE_MODIFIED("315","用户已被审核")
    ;
    private String code;
    private String message;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    ResponseEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }
}

springcloud_user_6001的yaml(在注册中心服务的名字 不能一样)

server:
  port: 6001
#数据源
spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/hub_user_center?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: 123456
      initial-size: 10
      max-active: 50
      min-idle: 10
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # mysql 数据库的特征  会关闭已经连接了8个小时的连接
      validation-query: SELECT 1 FROM DUAL
  application:
    name: user-6001
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
# mybatis 配置
mybatis:
  # 扫描映射文件
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 开启驼峰映射配置
    map-underscore-to-camel-case: true
# log
# 整个工程只答应info 以及以上级别的日志
logging:
  level:
    root: info
    com.csqf.mapper: debug

springcloud_share_6002的yaml(在注册中心服务的名字 不能一样)

server:
  port: 6002
#数据源
spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/hub_share_center?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: 123456
      initial-size: 10
      max-active: 50
      min-idle: 10
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # mysql 数据库的特征  会关闭已经连接了8个小时的连接
      validation-query: SELECT 1 FROM DUAL
  application:
    name: share-6002
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
# mybatis 配置
mybatis:
  # 扫描映射文件
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 开启驼峰映射配置
    map-underscore-to-camel-case: true
# log
# 整个工程只答应info 以及以上级别的日志
logging:
  level:
    root: info
    com.csqf.mapper: debug

2.RestTemplate

RestTemplate是Spring Resources中一个访问第三方RESTful API接口的网络请求框架。RestTemplate的设计原则和其他Spring Template(例如JdbcTemplate、JmsTemplate)类!,都是为执行复杂任务提供了一个具有默认行为的简单方法。

设置RestTemplate为Bean

springcloud_user_6001中写一个查询方法代码如下(示例):

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public String getUserById(Integer id) {
        User user = userMapper.selectByPrimaryKey(id);
        if ("".equals(user)){
            return "";
        }
        return user.getUserName();
    }
}

在springcloud_share_6002写一个DTO(示例):
继承Share实力类,加上user中返回的userName

@Data
public class ShareDto extends Share {
    private String userName;
}

在springcloud_share_6002中使用RestTemplate调用user并得到userName

@RestController
@RequestMapping("/api/share")
public class ShareContoller {
    @Autowired
    private ShareServiceImpl shareService;
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/{id}")
    public R getShareById(@PathVariable("id") Integer id){
        Share share = shareService.getShareById(id);
       R r = restTemplate.getForObject("http://localhost:6001/api/user/" + share.getUserId(), R.class);
        String s = r.getData().toString();
        ShareDto shareDto = new ShareDto();
        BeanUtils.copyProperties(share,shareDto);
        shareDto.setUserName(s);
        return new R(ResponseEnum.SUCCESS,shareDto);
    }
}

最后访问swagger(http://localhost:6002/swagger-ui.html)测试得到dto实体类中的对象

总结

nacos的作用就是一个注册中心,用来管理注册上来的各个微服务。

到此这篇关于Java之SpringCloud nocos注册中心讲解的文章就介绍到这了,更多相关Java之SpringCloud nocos内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot项目接入Nacos的实现步骤

    前言 项目中没有使用nacos官方提供的方式使用SpringBoot的集成方式来进行集成,而是使用了Alibaba Spring Cloud的依赖包进行集成. 原因是因为官网提供的SpringBoot集成方式中,同时使用配置中心和服务发现功能,会使得服务发现功能配置的部分属性冲突不生效.最直接的就是配置中心和服务发现功能不可以配置2个不同的namespace,会默认选择使用配置中心中配置的namespace作为服务发现的namespace. 另外一点就是可以很好的和Spring的注解兼容,无需额

  • SpringCloud Alibaba项目实战之nacos-server服务搭建过程

    目录 1.Nacos简介 1.1.什么是Nacos 1.2.Nacos基本原理 2.Nacos-Server服务部署 2.1.standalone 模式 2.2.cluster 模式 源码地址:https://gitee.com/fighter3/eshop-project.git 持续更新中-- 大家好,我是三分恶. 这一节我们来学习SpringCloud Alibaba体系中一个非常重要的组件--Nacos. 1.Nacos简介 Nacos官方网站:https://nacos.io/zh-c

  • .NET Core结合Nacos实现配置加解密的方法

    目录 背景 简单原理说明 自定义 ConfigFilter 简单应用 写在最后 背景 当我们把应用的配置都放到配置中心后,很多人会想到这样一个问题,配置里面有敏感的信息要怎么处理呢? 信息既然敏感的话,那么加个密就好了嘛,相信大部分人的第一感觉都是这个,确实这个是最简单也是最合适的方法. 其实很多人都在关注这个问题,好比说,数据库的连接字符串,调用第三方的密钥等等这些信息,都是不太想让很多人知道的. 那么如果我们把配置放在 Nacos 了,我们可以怎么操作呢? 想了想不外乎这么几种: 全部服务端

  • Docker+nacos+seata1.3.0安装与使用配置教程

    在此之前我搞了一天,虽然seata好用,用起来也超级简单,但是安装配置是真的麻烦,遇见了各种坑,下面来进入正题.o(╥﹏╥)o 一 . 版本 注意:如果版本不匹配也会有各种报错,可以根据官网匹配版本. seata:1.3.0 alibaba.cloud:2.2.3.RELEASE nacos:2.0.2 二. docker安装搭建seata服务端 2.1 下载seata镜像 docker pull seataio/seata-server:1.3.0 2.2 在Linux目录下创建registr

  • Java springboot 整合 Nacos的实例代码

    Nacos注册中心使用 1)工程添加依赖包 <!-- nacos注册中心依赖包 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- 监控检查--> <dependency&g

  • SpringBoot如何整合nacos详解

    一.什么是nacos nacos支持基于dns和基于rpc的服务发现,可以作为springCloud的注册中心.动态配置服务.动态dns服务. nacos注册中心分为server和client,server采用java编写,为client提供注册发现与配置服务. 二.快速使用 下载中间件:https://nacos.io/zh-cn/docs/quick-start.html 因为推荐使用的是2.0.1版本,我这里下载2.0.1版本. 注意:下载文件放在英文目录下 三.启动nacos 解压nac

  • 解决nacos升级spring cloud 2020.0无法使用bootstrap.yml的问题

    nacos升级spring cloud 2020.0无法使用bootstrap.yml 之前用spring cloud整合nacos,需要一个bootstrap.yml作为spring启动的初始化配置 bootstrap.yml内容大概如下: spring: application: # 应用名称 name: xxx profiles: active: dev cloud: nacos: config: file-extension: yml server-addr: localhost:884

  • 浅析Alibaba Nacos注册中心源码剖析

    Nacos&Ribbon&Feign核心微服务架构图 架构原理 微服务系统在启动时将自己注册到服务注册中心,同时外发布 Http 接口供其它系统调用(一般都是基于Spring MVC) 服务消费者基于 Feign 调用服务提供者对外发布的接口,先对调用的本地接口加上注解@FeignClient,Feign会针对加了该注解的接口生成动态代理,服务消费者针对 Feign 生成的动态代理去调用方法时,会在底层生成Http协议格式的请求,类似 /stock/deduct?productId=100

  • Java之SpringCloud nocos注册中心讲解

    一.nacos是什么? Nacos是用来发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助快速实现动态服务发现.服务配置.服务元数据及流量管理. 二.使用步骤 1.安装nacos 服务器 直接运行 startup.cmd 访问 localhost:8848/nacos 初始密码 nacos nacos 2.导入依赖和配置yaml 父项目依赖pom文件 <?xml version="1.0" encoding="UTF-8"?> <p

  • Java之SpringCloud Eurka注册错误解决方案

    学习SpringCloud时,在Eurka中注册时出现的错误: Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-10-04 11:15:19.703 ERROR 34860 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ***************

  • springcloud实现注册中心Eureka

    Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组件之一. 背景介绍 服务中心 服务中心又称注册中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等,比如dubbo admin后台的各种功能. 有了服务中心调用关系会有什么变化,画几个简图来帮忙理解 项目A调用项目B 正常调用项目A请求项目B 有了服务中心之后,任何一个服务都不能直接去掉用

  • Spring-Cloud Eureka注册中心实现高可用搭建

    前言: spring-cloud为基础的微服务架构,所有的微服务都需要注册到注册中心,如果这个注册中心阻塞或者崩了,那么整个系统都无法继续正常提供服务,所以,这里就需要对注册中心进行集群,换言之,高可用(HA) 前提: 阅读并完成第一个注册中心的项目,环境无需改变.本文是 模拟的高可用 , 可以复制两个注册中心的项目单独修改各自的配置文件达到同样的效果 修改hosts,在文件末添加两行如下: 127.0.0.1 peer1 127.0.0.1 peer2 推荐使用notepad++,如果是win

  • 浅析SpringCloud Alibaba-Nacos 作为注册中心示例代码

    文档地址 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md 1. 下载nacos-server https://github.com/alibaba/nacos/releases 2.启动nacos-server 默认使用nacos nacos 登录 Linux/Un

  • SpringCloud通过Nacos实现注册中心与远程服务调用详解流程

    目录 1. 基于Nacos实现服务注册与发现 1.1 pom依赖 1.2 yaml配置 1.3 添加启动注解 1.4 启动服务查看控制台 2.基于Nacos实现远程服务调用 2.1 客户端创建RestTemplate Bean 2.2 客户端调用代码 2.3 服务端暴露接口 2.4 服务调用测试 本文主要记录基于Nacos实现服务注册中心和远程服务调用 1. 基于Nacos实现服务注册与发现 基于pring-boot-starter-parent 2.6.8,pring-cloud-depend

  • Spring cloud Eureka注册中心搭建的方法

    前提  系统安装jdk1.8及以上,配置好maven的ide(这里用idea进行演示,maven版本3.5,配置阿里云源) 项目搭建 新建一个maven项目,创建最简单的那种就好,项目名这里为EurekaServerDemo,包名什么的随意,项目打包方式为jar, 也可以使用spring官方的生成器,官方的生成器会创建基础的springboot项目结构.这里为了演示,都可以 修改pom文件,参考如下,版本推荐和本文相同,springboot和cloud版本的坑很多 <?xml version=&qu

  • SpringCloud Nacos配置中心管理超详细讲解

    目录 一.Nacos配置管理 1.1 统一配置管理 1.1.1在nacos中添加配置文件 1.1.2 从微服务拉取配置 1.2 配置热更新 1.2.1 方式一 1.2.2 方式二 1.3 配置共享 一.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来用 1.1 统一配置管理 当微服务部署越来越多,达到数十,数百时,逐个修改微服务配置就会很麻烦,且容易出错.我们需要一种统一配置管理方案,可以集中管理所有实例的配置. Nacos一方面更可以将配置集中管理另一方面在配置变更时,及

  • SpringCloud使用Zookeeper作为注册中心

    服务注册 引入相关依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

  • SpringBoot项目改为SpringCloud项目使用nacos作为注册中心的方法

    本章讲解的是在不改变原有业务的情况下将springboot改为springcloud项目使用nacos作为注册中心 首先在官网下载好nacos注册中心,在bin目录中startup.cmd文件为启动命令默认端口号是8888 接下来修改原有项目依赖 在父依赖模块添加springcloud依赖版本,若没有父依赖直接在项目指定也一样 首先指定版本 <properties> <cloud.version>Hoxton.RELEASE</cloud.version> <al

随机推荐