致力微服务 SpringCloud Alibab 篇一 nacos 服务注册与发现
Nacos阿里巴巴开源项目,致力于微服务生态中的服务注册与发现以及配置管理,NacosSpringCloud基于SpringBoot最好的微服务框架SpringCloud + Nacosnacos下载安装与启动,Nacos 依赖Java环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置Maven环境,请确保是在以下版本环境中安装使用:64 bit ...
·
Nacos
阿里巴巴开源项目,致力于微服务生态中的服务注册与发现以及配置管理,Nacos
SpringCloud
基于SpringBoot最好的微服务框架
SpringCloud + Nacos
- nacos下载安装与启动,
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+;下载 & 配置。
Maven 3.2.x+;下载 & 配置。
从 Github 上下载源码方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
下载编译后压缩包方式
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
启动
##Linux/Unix/Mac
##启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
##Windows
##启动命令:
cmd startup.cmd
##或者双击startup.cmd运行文件
启动成功后,访问:http://localhost:8848/nacos,会跳转到登陆界面,默认的登陆用户名为nacos,密码也为nacos。
- 项目依赖,注意添加spring cloud版本依赖以及对应springboot版本,对应项目应添加项目场景启动起(spring-boot-starter-web),本人踩坑,一开始写的spring-boot-starter,后面没跟启动场景,导致启动项目时,一直没有注册成功
<!--自定义属性-->
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
<!--依赖管理-->
<dependencyManagement>
<dependencies>
<!-- spring cloud的版本以及spring cloud alibaba的版本,由于spring cloud alibaba还未纳入spring cloud的主版本管理中,所以需要自己加入 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- spring cloud alibaba nacos 服务注册与发现 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
</dependencies>
- 启动配置文件
#启动端口
server.port=8889
#应用名称
spring.application.name=third-server
#向nacos server注册的地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
server.port=8888
spring.application.name=love-master
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
- 启动类,加入注解@EnableDiscoryClient,支持服务发现客户端,启动成功
- 服务消费,注入Bean 为restTemplate 调用服务接口
消费服务的启动类
@SpringBootApplication @EnableDiscoveryClient // public class LoveMasterApplication { public static void main(String[] args) { SpringApplication.run(LoveMasterApplication.class, args); } /** * 使用RestTemplate消费服务 * RestTemplate可以使用Ribbon作为负载均衡组件,在nacos-consumer工程中引入ribbon的依赖 * @return */ @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
消费类
@Controller @RequestMapping("/master/file") public class HelloFileController { @Autowired private RestTemplate restTemplate; @ResponseBody @RequestMapping("/hello") public Object hello(){ ResponseEntity<String> hello = restTemplate.postForEntity("http://third-server/third/hello/hello",null, String.class); return hello.getBody(); } }
提供服务的启动类
@SpringBootApplication @EnableDiscoveryClient public class ThirdServerApplication { public static void main(String[] args) { SpringApplication.run(ThirdServerApplication.class, args); } }
提供的服务
@Controller @RequestMapping("/third/hello") public class HelloController { private static Logger logger = LoggerFactory.getLogger(HelloController.class); @RequestMapping("/hello") @ResponseBody public Object hello(){ return "Hello world !"; } }
源码
留言
下一篇 nacos 配置中心
更多推荐
已为社区贡献1条内容
所有评论(0)