<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.2.7.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
Nacos注册中心
下载nacos注册中心
https://github.com/alibaba/nacos/releases
下载zip文件 解压 进入 nacos-server-1.4.3\nacos\bin 双击startup.cmd 在windows下运行 成功如下 如果报错则 cmd运行如下命令
cd nacos-server-1.4.3\nacos\bin
startup.cmd -m standalone
#引入依赖 服务注册发现
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
在每一个微服务下指定注册中心的地址
#在项目application.yml中配置 注册中心地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#在项目中配置服务名
spring.application.name=gulimall-coupon
注册到注册中心
//在启动类中加入@EnableDiscoveryClient注解
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallCouponApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallCouponApplication.class, args);
}
}
Nacos 管理页面 登陆账号 密码 默认为nacos
http://192.168.56.1:8848/nacos/index.html
注册成功后 可查看 服务管理 服务名处 有配置的服务
Fegin是一个声明式http客户端
在调用方服务中引入依赖
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-openfeignartifactId>
dependency>
在被调用方编写一个请求
@RequestMapping("/member/list")
public R membercoupons(){
CouponEntity couponEntity = new CouponEntity();
couponEntity.setCouponName("满一百减十");
return R.ok().put("coupons",Arrays.asList(couponEntity));
}
在调用方编写Feign 接口
//标明远程客户端 注解 参数为被调用方的在注册中心中配置的服务名
@Service
@FeignClient("gulimall-coupon")
public interface CouponFenginService {
//与被调用方的请求 路径相同
@RequestMapping("/coupon/coupon/member/list")
//与被调用方的请求 方法相同
public R membercoupons();
}
在调用方服务中启动类开启调用功能
//参数为fegin的包的全包名
@EnableFeignClients(basePackages = "com.jhj.gulimall.member.fegin")
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallMemberApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallMemberApplication.class, args);
}
}
在调用方中 注入CouponFenginService 进行调用
@Autowired
CouponFenginService couponFenginService;
@RequestMapping("/coupons")
public R test(){
MemberEntity memberEntity=new MemberEntity();
memberEntity.setNickname("张三");
R membercoupons = couponFenginService.membercoupons();
return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));
}
Nacos配置中心
导入依赖
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
在resource 下创建bootstrap.properties文件 该文件会优先于application.properties 文件加载
#服务名
spring.application.name=gulimall-coupon
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
在nacos配置中 新增配置 文件名为服务名.properties 点击发布
在使用配置的类上加入@RefreshScope注解 即可完成配置 修改nacos中的配置内容 无须重启服务 配置修改成功 如果配置中心和配置文件中有相同的项,优先获取配置中心的配置
springboot中用@Value(“${配置名}”)获取值
用于配置隔离,默认是public
-
区分 开发 测试 生产配置
可以创建多个命名空间
注意使用时需要在项目中bootstrap.properties文件中配置#值为配置管理后面的一串命名空间的唯一id # 而不是命名空间的名字 spring.cloud.nacos.config.namespace=ed649994-9050-4bde-9e4f-d84e208073fd
-
每一个微服务之间互相隔离
每一个都创建自己的命名空间
*** 作与1相同
所有的配置的集合
配置中心 配置集ID 类似于配置文件名 即Data Id 配置中心 配置分组默认所有的配置集都属于DEFAULT_GROUP
注意使用时需要在项目中bootstrap.properties文件中配置
#值为分组名
spring.cloud.nacos.config.group=111
作者声明
如有问题,欢迎指正!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)