如果在使用nacos的时候,一定要搞好配置
注意!!! 不能直接执行官方的config目录下的 nacos-mysql.sql 文件 里面没有创建库的sql语句,只有创建表的语句
找到安装的mariadb 执行mysql -uroot -p
然后创建nacos_config (create database nacos_config)
这个时候再执行nacos文件里面的nacos-mysql.sql(use nacos_config 一定要选择这个库,才进行下一步执行sql 啊啊)
我的放在e盘里面了 执行语句:source:E:\software\windows\springcloud\nacos\conf\nacos-mysql.sql(看到执行成功,泪流满面)
最后单机启动 startup.cmd -m standalone
第一步:创建父类工程,直接通过maven进行创建 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.stone.cn</groupId>
<artifactId>springcloud-all</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>springcloud-privider</module>
<module>springcloud-consumer</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.12.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR12</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.8.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
2:创建子类工程 provider(主要是pom包)
3:创建子类工程consumer
创建将远程调用的bean交给spring
@Configuration public class RestTemplateConfig {
@LoadBalanced @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } }
创建消费者调用提供者(provider可以通过调用并发启动)
package com.stone.cn.controller;
@RestController
@CrossOrigin
@RequestMapping("/consumer")
public class ConsumerTest {
@Value("${server.port}")
private String port;
@Autowired
private RestTemplate restTemplate;
@Autowired
private LoadBalancerClient client;
@RequestMapping(value = "/get",method = RequestMethod.GET)
public User getOne(){
ServiceInstance choose = client.choose("springcloud-privider");
String url =String.format("http://%s:%s/user/get/%s",choose.getServiceId(),choose.getPort(),choose.getPort());
System.out.println(choose.getPort());
System.out.println(choose.getServiceId());
System.out.println(choose.getInstanceId());
return restTemplate.getForObject(url, User.class);
}
}
负载均衡也可以通过Feign
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类上添加@EnableFeignClients
定义Http请求API,基于此API借助OpenFeign访问远端服务
创建FeignConsumerController中并添加feign访问