如果在使用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 包如下:(其他不需要的直接可以删除了)
- "1.0" encoding="UTF-8"?>
"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">
-
4.0.0 -
-
com.stone.cn -
springcloud-all -
pom -
1.0-SNAPSHOT -
- <module>springcloud-prividermodule>
- <module>springcloud-consumermodule>
-
-
-
-
-
org.springframework.boot -
spring-boot-dependencies -
2.3.12.RELEASE -
import -
pom -
-
-
org.springframework.cloud -
spring-cloud-dependencies -
Hoxton.SR12 -
import -
pom -
-
-
com.alibaba.cloud -
spring-cloud-alibaba-dependencies -
2.2.8.RELEASE -
import -
pom -
-
-
-
-
-
org.projectlombok -
lombok -
1.18.24 -
-
-
org.springframework.boot -
spring-boot-starter-test -
test -
-
-
org.junit.vintage -
junit-vintage-engine -
-
-
-
-
-
-
-
org.apache.maven.plugins -
maven-compiler-plugin -
3.8.1 -
-
-
8 -
-
-
-
-
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
启动类上添加@EnableFeignClients
定义Http请求API,基于此API借助OpenFeign访问远端服务
创建FeignConsumerController中并添加feign访问