下载Nacos Server服务中心
点击下载Nacos Serve
下载解压成功后
使用本地Mysql存储数据(非强制修改)
1.在mysql server 新建数据库:springcloud_alibaba(名字随意)
2.在nacos server的 conf目录下找到nacos-mysql.sql 文件,并在创建的springcloud_alibaba数据库下执行表nacos-mysql.sql中的SQL语句
结果如下
3.修改nacos server application.properties配置文件,修改后如下
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://数据库IP:端口号/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=数据库用户名
db.password=数据库密码
启动服务操作
进入\nacos\bin
右键==》在windows终端打开
输入==》startup.sh -m tandalone
访问 Console:后面的网址,出现Nacos的可视化界面
默认账号:nacos
默认密码:nacos
java代码部分
父工程导入pom
<dependencyManagement>
<dependencies>
<!--Alibaba-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${alibaba-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--cloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring-boot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${boot-version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
Nacos官方版本兼容图
服务提供方
子工程服务提供方导入
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
编写提供方application.yml文件
server:
# 服务端口
port: 24102
spring:
# 数据库数据源
datasource:
# 驱动
driver-class-name: com.mysql.cj.jdbc.Driver
# 数据库地址
url: jdbc:mysql://127.0.0.1:3306/springcloud?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
# 用户
username: root
# 密码
password: 123456
application:
# 服务名
name: user-provider
cloud:
nacos:
discovery:
# nacos服务地址
server-addr: 192.168.116.1:8848
编写提供方启动类
@SpringBootApplication
@MapperScan(basePackages = "com.guigu.cloud.mapper")
public class UserProviderApplication24102 {
public static void main(String[] args) {
SpringApplication.run(UserProviderApplication24102.class,args);
}
}
编写提供方Controller层
@RestController
@RequestMapping("user")
public class UserController {
@Resource
UserService userService;
@SneakyThrows
@RequestMapping("find/{id}")
public TbUser findById(@PathVariable Integer id){
log.info("provide:id:"+id);
return userService.getUserId(id);
}
}
启动类运行成功后访问Nacos Server的可视化界面
出现以下结果则服务发布成功
服务消费方
子工程服务消费方导入
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
编写消费方application.yml文件
server:
port: 7777
spring:
application:
name: user-consumer
cloud:
nacos:
discovery:
server-addr: 192.168.116.1:8848/
编写消费方配置类
@Configuration
public class NacosConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
编写消费方启动类
// 排除mybatis的自动配置类 注:(导入了api子模块,api子模块导入了Mybatis,但是服务消费方不需要mybatis)
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class UserConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(UserConsumerApplication.class,args);
}
}
编写消费方Controller层
@Slf4j
@RestController
@RequestMapping("nacos")
public class UserController {
@Resource
/*发送请求对象*/
private RestTemplate restTemplate;
@RequestMapping("getUser/{id}")
public TbUser findById(@PathVariable Integer id){
//发送请求
String url = "http://user-provider/user/find/"+id;
TbUser tbUser = restTemplate.getForObject(url, TbUser.class);
log.info(String.valueOf(tbUser));
return tbUser;
}
}