gulimall-common的pom.xml
<dependencyManagement> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement>
Nacos注册中心
第一步:gulimall-common的pom.xml加入依赖<!-- 服务注册/发现--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
第二步:下载nacos地址:github.com/alibaba/nacos/releases版本:1.1.3
第三步:修改你要将那个服务注册上去的application.ymlspring: application: name: gulimall-coupon cloud: nacos: discovery: server-addr: localhost:8848
第四步:在启动类上标注注解@EnableDiscoveryClient
第五步:访问nacos路径:127.0.0.1:8848/nacos/#/login
OpenFeign远程调用
需求:gulimall-member会员服务调用gulimall-coupon优惠券服务
1.在gulimall-common pom.xml文件加入<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
2.//gulimall-coupon@RestController@RequestMapping(\"coupon/coupon\")public class CouponController { @RequestMapping(\"/member/list\") public R membercoupons(){ CouponEntity couponEntity = new CouponEntity(); couponEntity.setCouponName(\"满100减10\"); return R.ok().put(\"coupon\",Arrays.asList(couponEntity)); }}
3.//gulimall-member@FeignClient(\"gulimall-coupon\")public interface CouponFeignService { @RequestMapping(\"/coupon/coupon/member/list\") public R membercoupons();}
4.//开启远程调用功能:EnableFeignClients@EnableRedisHttpSession@EnableFeignClients(basePackages = \"com.xunqi.gulimall.member.feign\")@EnableDiscoveryClient@SpringBootApplicationpublic class GulimallMemberApplication { public static void main(String[] args) { SpringApplication.run(GulimallMemberApplication.class, args); }}
5.调用@RestController@RequestMapping(\"member/member\")public class MemberController { @Autowired private MemberService memberService; @Autowired CouponFeignService couponFeignService; @RequestMapping(\"/coupons\") public R test(){ MemberEntity memberEntity = new MemberEntity(); memberEntity.setNickname(\"张三\"); R membercoupons = couponFeignService.membercoupons(); return R.ok().put(\"member\",memberEntity).put(\"coupons\",membercoupons.get(\"coupons\")); }}
配置中心-简单实例
1.在gulimall-common pom.xml文件加入<!-- 配置中心来做配置管理--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
2.在gulimall-coupon创建bootstrap.ymlspring: application: name: gulimall-coupon cloud: nacos: config: server-addr: localhost:8848
3.在application.properties
//此方法有了注册中心后,不再使用application.propertiescoupon.user.name=zhangsancoupon.user.age=18
配置中心-命名空间
了解几个概念1.命名空间:配置隔离;默认是public2.配置集:所有配置的集合3.配置集id:类似于文件名4.配置分组
刚刚,我们创建的gulimall-coupon.properties是在public的命名空间,里面的内容是name=zhangsan,age=24
现在,我们在prop下也创建一个gulimall-coupon.properties
以上,演示完了命名空间,里面命名空间做环境的隔离;其实是通过dev、prop、public(开发、生成、默认)等角度来命名
现在,我们要给每一个微服务创建自己的命名空间。
配置分组的概念
最终版使用:每一个微服务创建自己的服务命名空间;使用配置分组来确定是dev、prop、test。
配置中心-加载多配置集
随着我们服务越来越多,一个yml文件里面需要配置mysql、redis、server.port等等的配置。现在,我们要将他们抽取出来。
拆分后
Gateway网关核心
Gateway创建测试网关
1.创建网关服务gulimall-gateway
2.application.propertiesspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848spring.application.name=gulimall-gatewayserver.port=88
3.bootstrap.ymlspring: application: name: gulimall-coupon cloud: nacos: discovery: server-addr: localhost:8848 config: server-addr: localhost:8848# file-extension: yml namespace: ea65d118-135f-4928-bbc6-c8ec85b3fd78
4.application.ymlspring: cloud: sentinel: transport: #配置sentinel dashboard地址 dashboard: localhost:8080 gateway: routes:# - id: test_route# uri: https://www.baidu.com# predicates:# - Query=uri,baidu## - id: qq_route# uri: https://www.qq.com# predicates:# - Query=uri,qq
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注趣讯吧的更多内容!