Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现
昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现。首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-goods,lyn-order四个西模块。
这四个模块将作为Dubbo服务的提供者,里面主要写对应模块的Service接口及实现及Mapper等。把这四个模块作为提供者,那可能大家得问了,消费者是谁呢?这里的消费者就是昨天写的接口服务lyn-web。
现在,我们以商品服务模块lyn-goods为例创建并实现提供者。
右击“lyn-goods”,选择“New”>>>"Module",进入下面的页面
点击“Next”
先建一个api依赖的模块goods-api,然后点击“Next”
点击“Finish”。再以相同的方式创建goods-service模块。创建完成如下:
以上面相同的方式为lyn-sys,lyn-customer,lyn-order三个模块创建服务接口***-api和服务实现***-service。
二,分环境部署及端口号统一配置
新建一个lyn-commom模块作为放公共资源,并在resoures下添加application.properties。如下图:
spring.profiles.active 是配置的SpringBoot的分环境部署;
lyn.***.port 这几个配置是几个要启动的服务的端口号;
统一配置需要在对应模块的resources下创建application-dev.properties和application-pro.properties,并在这两个配置里添加service.port=${lyn.***.port},然后让此模块依赖lyn-common即可。当服务启动时,首先会找到lyn-common下的application.properties文件,并读取里面的属性,再根据读到的spring.profiles.active值去匹配加载对应本模块下的application-***.properties。并将读到的lyn.***.port值赋值给本模块service.port属性。具体模块下的配置以lyn-customer为例。
三,Dubbo提供者及消费者配置
1,提供者配置及实现
先在四个提供者模块里的***-service下的pom里配置Dubbo依赖,并依赖自己模块里的***-api。如图下(其他几个模块依赖相似)
添加提供者配置信息。需要注意点:dubbo.applicaiton.name可以以模块命名,dubbo.protocol.port从20880递增,每个提供者的这个值不可重复。
然后在这四个提供者的业务接口***-api里写service接口服务。并且每个模块下的***Service里都写一个相同的方法:test(String name)。
然后在对应的每个模块的***-service里写service接口的实现。
再写四个提供者的启动类(其他模块的一样,都在***-service下),注意一定要有@EnableDubbo注解,用来开启Dubbo服务。
2,消费者配置及实现
在消费服务lyn-web下的pom里添加Dubbo依赖及提供者的Service接口依赖。
添加消费者配置
编写消费者启动类:
编写测试Controller接口
四,测试
启动四个提供者和消费者服务,然后根据Controller下的接口进行测试。
打开浏览器访问接口(四个接口各自对应不同的提供者为其提供服务)
总结:本期主要讲解了基于SpringBoot实现分布式微服务下的统一配置、分环境部署配置。以及服务端模块的分离(每一个提供者就是一个独立的微服务)、微服务落地、Dubbo提供者及消费者的配置实现。
获取项目源代码,请扫码关注公众号,并发送Springboot获取。

Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现的更多相关文章
- Spring Boot微服务电商项目开发实战 --- 分布式开发要避的那些坑
今天已经进入第七讲了,整个微服务架构的搭建工作也基本完成.那到目前为止究竟使用了那些技术及实现了什么功能呢?我们先回顾一下. 使用的技术:SpringBoot.Dubbo.Zookeeper.Redi ...
- Spring Boot微服务电商项目开发实战 --- 基础配置及搭建
根据SpringBoot实现分布式微服务项目近两年的开发经验,今天决定开始做SpringBoot实现分布式微服务项目的系列文章,帮助其他正在使用或计划使用SringBoot开发的小伙伴们.本次系列文章 ...
- SpringBoot微服务电商项目开发实战 --- Redis缓存雪崩、缓存穿透、缓存击穿防范
最近已经推出了好几篇SpringBoot+Dubbo+Redis+Kafka实现电商的文章,今天再次回到分布式微服务项目中来,在开始写今天的系列五文章之前,我先回顾下前面的内容. 系列(一):主要说了 ...
- SpringBoot微服务电商项目开发实战 --- 分布式文件系统实现
SpringBoot分布式开发系列文章已经持续了一段时间了,每一篇都有核心内容讲给大家.比如:分环境部署配置及服务端口号统一配置,子模块版本号管理及第三方jar依赖管理,单点登录实现,接口安全(签名+ ...
- SpringBoot微服务电商项目开发实战 --- 模块版本号统一管理及Redis集成实现
上一篇文章总结了基于SpringBoot实现分布式微服务下的统一配置.分环境部署配置.以及服务端模块的分离(每一个提供者就是一个独立的微服务).微服务落地.Dubbo整合及提供者.消费者的配置实现.本 ...
- SpringBoot微服务电商项目开发实战 --- api接口安全算法、AOP切面及防SQL注入实现
上一篇主要讲了整个项目的子模块及第三方依赖的版本号统一管理维护,数据库对接及缓存(Redis)接入,今天我来说说过滤器配置及拦截设置.接口安全处理.AOP切面实现等.作为电商项目,不仅要求考虑高并发带 ...
- SpringBoot微服务电商项目开发实战 --- 全局异常处理
上一篇文章讲了Redis缓存的安全防范及Kafka的接入及消息实现,今天接着前面的内容基础说说项目的优化和基础配置,今天要讲的内容主要是Spring Boot项目中的全局异常处理.为什么要做这件事呢? ...
- SpringBoot微服务电商项目开发实战 --- Kafka集成接入
kafka作为消息中间件的一款产品,她比较轻量级,在吞吐量方面很优秀,默认消息持久化到硬盘当中 168小时=7天,log.retention.hours=168,比较适合来做运营的统计.其他的不多讲, ...
- Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构
Java 开发环境:idea https://www.jianshu.com/p/7a824fea1ce7 从无到有构建大型电商微服务架构三个阶段SpringBoot+SpringCloud+Solr ...
随机推荐
- 操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP)
原文:操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP) 不管是用 PHP 还是 C#, 在操作 XML 的时候我们除了一个节点一个节点去取值之外, 还有一个非常方便的表达式, 就是 ...
- 使用NAudio实现Wav转Mp3
转换成MP3: using Microsoft.Win32; using NAudio.MediaFoundation; using NAudio.Wave; using System.Windows ...
- C#调用Microsoft.DirectX.DirectSound.dll时出错
1.修改工程的编译选项.我的开发运行环境是Windows 10 x64系统.需要修改一下工程的编译选项,把AnyCPU改成x86的. 未能加载文件或程序集“Microsoft.DirectX.Dire ...
- MFC 中 Tooltip 实现的几种方式
方法一:利用CWnd本身自身支持的tooptip来实现,这种方法适用给控件增加tooltip,非常方便和简单方法如下:1.在窗口中增加消息映射ON_NOTIFY_EX(TTN_NEEDTEXT, 0, ...
- asp.net mvc中使用jquery H5省市县三级地区选择控件
地区选择是项目开发中常用的操作,本文讲的控件是在手机端使用的选择控件,不仅可以用于实现地区选择,只要是3个级别的选择都可以实现,比如专业选择.行业选择.职位选择等.效果如下图所示: 附:本实例asp. ...
- netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源
AntMgr https://github.com/yuzd/AntMgr 基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统 特色: 用户管理 菜单管理 角色管理 权限管理 ...
- Hexo+NexT(二):Hexo站点配置详解
阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...
- spring 5.x 系列第2篇 —— springmvc基础 (代码配置方式)
文章目录 一.搭建hello spring工程 1.1 项目搭建 1.2 相关注解说明 二.配置自定义拦截器 三.全局异常处理 四.参数绑定 4.1 参数绑定 4.2 关于日期格式转换的三种方法 五. ...
- Zookeeper_ACL
getAcl path 查看某个node的权限 设置权限1 world方式 setAcl <path> world:anyone:<acl>例如 setAcl /node1 w ...
- php5.3之命名空间
在php5.3之后,php像c++那样新 命名空间. 1.在同一个文件中不能实例化同一个名字相同的类和同时包含两个不同目录下的相同文件,中包含相同的函数和常量.为了解决这个问题,因此引入了命名空间. ...