Nacos Spring Cloud入门

Nacos Spring Cloud

项目地址:https://github.com/alibaba/nacos/

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

文档地址:https://nacos.io/en-us/docs/quick-start-spring-cloud.html

unzip nacos-server-1.0.0.zip
cd nacos/conf

vim application.properties
server.servlet.contextPath=/nacos
server.port=8848

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
sh startup.sh -m standalone

默认账号/密码:nacos/nacos

Configuration Service && Service Discovery

1.添加依赖

Version 2.1.x.RELEASE 适配 Spring Boot 2.1.x

Version 2.0.x.RELEASE 适配 Spring Boot 2.0.x

Version 1.5.x.RELEASE 适配 Spring Boot 1.5.x

<properties>
    <spring-boot.version>2.1.13.RELEASE</spring-boot.version>
    <alibaba-cloud.version>2.1.0.RELEASE</alibaba-cloud.version>
    <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${alibaba-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.bootstrap.properties

server.port=7002
spring.application.name=knowledge-graph-financial
spring.cloud.nacos.config.server-addr=10.252.202.53:8848
spring.cloud.nacos.discovery.server-addr=10.252.202.53:8848

其他配置

spring.cloud.nacos.config.namespace=6d4bacd9-cbca-411b-876e-a459cca56d38
spring.cloud.nacos.config.sharedDataids=mysql.yml,redis.yml,printlog.yml,es.yml
spring.cloud.nacos.config.refreshableDataids=mysql.yml,redis.yml,es.yml
spring.cloud.nacos.discovery.namespace=6d4bacd9-cbca-411b-876e-a459cca56d38

** dataId格式

${prefix}-${spring.profiles.active}.${file-extension}

prefix 默认是 spring.application.name

3.启动类

package com.grgbanking.financial;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.context.config.annotation.RefreshScope;

@SpringBootApplication
@RefreshScope
@EnableDiscoveryClient
public class FinancinalApplication {
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(FinancinalApplication.class);
        springApplication.run(args);
    }
}

4.客户端消费

    <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  	</dependency>
    <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-openfeign</artifactId>
     </dependency>
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 10.252.202.53:8848
#feign
feign:
  hystrix:
    enabled: false
  okhttp:
    enabled: true
  httpclient:
    enabled: false
@SpringBootApplication
@EnableFeignClients
@EnableDiscoveryClient
public class BaikeInfoApplication {
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(BaikeInfoApplication.class);
        springApplication.run(args);
    }
}
@FeignClient(value = "knowledge-graph-financial")
public interface CloudFinancialClient {

    @GetMapping(value = "/gzkg/financial/dateRange")
    Result getDateRange();

    @GetMapping(value = "/gzkg/financial/organization/{date}/list")
    List<OrganizationVO> selectOrganization(@PathVariable("date")  Integer date);
}
@RestController
@RequestMapping(value = "${mainconfig.api.prefix}/organization")
public class OrganizationController extends SuperController {
    @Autowired
     private CloudFinancialClient financialClient;
    /**
     * 获取第一级企业
     * @return
     */
    @RequestMapping(value = "/getFirstLevelOrganization", method = RequestMethod.GET)
    public Result getFirstLevelOrganization() {
        Result dateResult= financialClient.getDateRange();
        Integer date=null;
        if(dateResult!=null && dateResult.getData()!=null){
            date=Integer.parseInt(((Map)dateResult.getData()).get("maxMonth").toString());
        }
        if (date!=null){
            List<OrganizationVO> orgList= financialClient.selectOrganization(date);
            return ResultUtil.success(orgList.stream().filter(t->t.getLevel()<=3 && t.getCode().equals(t.getEnterpriseId().toString())).collect(Collectors.toList()));
        }else {
            throw CustomException.create("接口调用失败");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值