docker启动nacos
docker run --name mynacos -itd -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.0.3
这里注意,Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
也就是说,如果要使用docker启动nacos,你需要额外暴露两个端口,不然可能就会访问失败哦!
当然,如果你用的云服务器操作上述内容,以阿里云服务器举例,你要在安全组里将相关端口打开。我就是好久不用这些,今天突然一弄,我丢,打不开页面,我还以为官方有更新了呢!!!
新建命名空间
此处无相关描述,因为我相信你一定可以!修改完成之后,我们用新建的账号登录:issa。
如果不会配置,去看我上一篇文章,写的还挺全的,无脑教程。
配置用户角色权限
搭建环境
这里不列出所有代码,需要代码搜公众号【步尔斯特】,回复「1024」,即可获取
版本:懂得都懂
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
<!-- spring-cloud-2020.0.0 移除了诸多Netflix组件,这里只是为了更好的应用ribbon -->
<!-- <spring-cloud.version>2020.0.0</spring-cloud.version> -->
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>
配置:
spring:
application:
name: service-name
cloud:
nacos:
# docker启动nacos:
# docker run --name mynacos -itd -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.0.3
discovery:
server-addr: ip:8848
namespace: 78e10147-ff76-4e56-8b19-2e2bbd39f750
group: OSSA_GROUP
主要代码:
@GetMapping("/{id}")
// @SentinelResource(value = "producerById", fallback = "error")
public ResponseEntity<ProducerVO> producerById(@PathVariable(value = "id") String id) {
ProducerVO producerVO = new ProducerVO();
producerVO.setId(id);
producerVO.setPort(port + ": " + UUID.randomUUID().toString());
producerVO.setConfigBody(config);
return ResponseEntity.ok(producerVO);
}
/**
* 生产者
*
* @author issa
**/
@EnableDiscoveryClient
@SpringBootApplication
public class ProducerApplication {
public static void main(String[] args) {
SpringApplication.run(ProducerApplication.class, args);
}
}
@GetMapping("/{id}")
public String consumerById(@PathVariable(value = "id") String id) {
// ResponseEntity<ProducerVO> responseEntity = producerFeign.producerById(id);
return restTemplate.getForObject("http://ossa-service-producer/producer/" + id, String.class);
}
/**
* 消费者
*
* @author issavior
*/
//@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
启动
两个服务都已经注册上了
测试
消费者调用生产者已经成功
文章评论