微服务注册中心现在常用的主流有三个
Nacos,Eureka与ZooKeeper
Nacos是阿里开源的,Nacos 支持基于 DNS 和基于 RPC 的服务发现。在Spring Cloud中使用Nacos,只需要先下载 Nacos 并启动 Nacos server,Nacos只需要简单的配置就可以完成服务的注册发现。
Nacos除了服务的注册发现之外,还支持动态配置服务。动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
Nacos = Spring Cloud注册中心 + Spring Cloud配置中心
进入正题,nacos下载 https://github.com/alibaba/nacos/releases?page=1
我这边是简单测试下下载的window下运行的
解压到自己的电脑目录下
点击startup.cmd直接启动,下载后直接启动会报错,因为默认模式是集群方式。在启动文件中做修改
startup.cmd中找到 set MODE="cluster" 修改为 set MODE="standalone"
然后启动
打开浏览器输入http://本机IP:8848/nacos/index.html#/login
默认登录账号 nacos nacos
到这里单机版的nacos注册中心就起来了
下面开始简单的搭建微服务
先创建个user服务如下
启动类
package com.user.wbuser;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableDiscoveryClient
public class WbUserApplication {
@Bean
@LoadBalanced//负载均衡+动态路路由
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(WbUserApplication.class, args);
}
}
yaml文件配置
server:
port: 8000
spring:
cloud:
nacos:
discovery:
service: user-server
server-addr: localhost:8848
添加 web 依赖和 Spring-boot-admin-starter-server 依赖。
org.springframework.boot spring-boot-starter-parent2.1.5.RELEASE com.user wb-user0.0.1-SNAPSHOT wb-user 1.8 2.1.1.RELEASE org.springframework.boot spring-boot-starter-webcom.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery2.1.1.RELEASE org.springframework.boot spring-boot-starter-testtest
运行
WbUserApplication.main
启动以后再nacos里面就可以看到注册的服务了,然后切到nacos管理后台
继续创建第二个服务
创建过程maven引用同上wb-user
创建好order启动order
简单的实现order服务调用user服务
到这里简单的springboot nacos搭建就完成了,要想实现负载均衡+动态路由,
我这里拿user服务做演示多启动几个更改下端口号如下
这个时候在去nacos管理控制台查询user服务的详情会多出来一个节点
再去试试order请求到user 负载均衡的一个效果
连续请求了3次 观察命中率
在nacos控制台下线掉8000 然后再请求看下效果
三次都是命中到8006上来了
将下线的项目服务重新上线
负载均衡测试,应该和正常请求一样这里就不演示了。



