ventana acoplable iniciar nacos
docker run --name mynacos -itd -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.0.3
Tenga en cuenta aquí que la versión Nacos 2.0 agrega un nuevo método de comunicación gRPC en comparación con 1.X, por lo que se deben agregar 2 puertos. El puerto recién agregado se genera automáticamente con un cierto desplazamiento basado en el puerto principal configurado (servidor.puerto).
Es decir, si desea utilizar la ventana acoplable para iniciar nacos, debe exponer dos puertos adicionales, de lo contrario, el acceso puede fallar.
Por supuesto, si usa un servidor en la nube para operar el contenido anterior, tome el servidor en la nube de Alibaba como ejemplo, debe abrir los puertos relevantes en el grupo de seguridad. Simplemente no los he usado durante mucho tiempo, y de repente lo recibí hoy, lo perdí y no podía abrir la página. ¡Pensé que había una actualización oficial! ! !
Nuevo espacio de nombres
No hay descripción aquí, ¡porque estoy seguro de que puedes! Una vez completada la modificación, iniciamos sesión con la cuenta recién creada: issa.
Si no sabes cómo configurarlo, ve a mi último artículo, que es un tutorial bastante completo y sin cerebro.
Configurar permisos de rol de usuario

entorno de construcción
No todos los códigos se enumeran aquí, debe buscar la cuenta pública [Burster] por código, responder "1024", puede obtenerlo
Versión: saber todo
<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>
Configuración:
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
Código principal:
@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();
}
}
puesta en marcha
Ambos servicios están registrados.

prueba
La llamada del consumidor al productor ha sido exitosa
