1、项目模块介绍
文章插图
2、 父项目主要依赖 spring-cloud 的 版本控制
<properties><!--springCloud 版本--><scd.version>Dalston.SR4</scd.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${scd.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
3、 eureka 模块3.1 主要依赖<!--eureka 注册中心 依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency>
3.2 配置信息【二 SpringCloud - Eureka注册中心,feign远程调用,hystrix降级和熔断】# 端口server:port: 8096# 服务名spring:application:name: edocmall-eureka# eureka 服务注册与发现 配置eureka:client:#Eureka 监控页面service-url:defaultZone: http://127.0.0.1:${server.port}/eurekaregister-with-eureka: false # 是否注册自己的服务到注册中心,默认为trueon-demand-update-status-change: false # 是否主动拉取其他注册的服务信息,默认也是true
3.3 主启动类上的注解@EnableEurekaServer //eureka服务端启动,可以就接受别人来注册
3.4 测试 访问启动项目,访问 http://localhost:8096文章插图
4、server 服务提供模块4.1 主要依赖
<!--eureka 客户端依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency>
4.2 配置信息# 端口server:port: 8097# 服务名配置,eureka注册信息,服务调用基于服务名,必须增加spring:application:name: edocmall-server#数据源配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/kh96_springboot_edocbd?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMTusername: rootpassword: root# mybatis-plus 配置mybatis-plus:configuration:map-underscore-to-camel-case: true# eureka 注册中心的配置eureka:client:service-url:defaultZone: http://127.0.0.1:8096/eureka# 注册中心的地址# 关闭自我保护机制,保证不可用的服务及时剔除server:enable-self-preservation: false
4.3 代码介绍文章插图
4.4 主启动类上的注解
@MapperScan("com.kgc.scd.mapper")@EnableEurekaClient // 开启 eureka 服务注册,将此服务注册到 eureka中
4.5 请求测试服务提供端的请求最好先单独测试一下,成功后再进行远程调用;文章插图
5、 web 服务消费模块5.1 使用restTemplate 调用5.1.1主启动类向容器中放入 restTemplate
@SpringBootApplicationpublic class Edocmall96WebApplication {public static void main(String[] args) {SpringApplication.run(Edocmall96WebApplication.class, args);}//往容器中添加 restTemplate@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}}
5.1.2请求中直接调用具体url下的请求@RestControllerpublic class WebEntryController {@Autowiredprivate RestTemplate restTemplate;// 根据文档编号,获取文档详情@GetMapping("/entryById")public RequestResult<EdocEntryVO> entryDetail(Integer id){log.info("------ 根据文档编号:{},获取文档详情 ------",id);//模拟发送http请求请求server端,获取文档详情//弊端:消费端,必须在程序内,记录提供者的ip地址,如果地址出现变更,还需要计时更新,如果服务者有多个及其,无法实现负载均衡EdocEntryVO edocEntryVO = restTemplate.getForObject("http://127.0.0.1:8097/entry?id="+id,EdocEntryVO.class);return ResultBuildUtil.success(edocEntryVO);}}
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2022年腊月初二是阳历几月几号
- 2022年腊月初二日子吉利吗
- 92猴男和96鼠女哪年结婚最好
- 2023年属鼠逢兔年运势如何
- 属鼠2023年适合做什么生意
- 这一拳二十年的功夫是什么电影?
- 焊工证个人信息查询入口 查询入口
- 2023年2月2日行船好不好 2023年农历正月十二行船吉日
- 2023年2月2日是买牛吉日吗 2023年农历正月十二宜买牛吗
- 2023年农历正月十二宜结婚吗 2023年农历正月十二结婚吉日