热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IDEA+SpringCloudAlibaba微服务搭建

目录SpringCloudAlibaba注册中心-NacosNacos下载以及安装Windows环境演示:单机启动2、集群模式5)启动star

目录

Spring Cloud Alibaba

注册中心-Nacos

Nacos下载以及安装

Windows 环境演示:

单机启动

 2、集群模式

5)启动startup.cmd

一、新建微服务父项目

1、new project 选择maven

2、填写项目基本信息,完成parent项目初始化

 3、删除不需要的src文件夹

二、新建微服务

1、new module(可以选择Spring)

 2、填写微服务模块信息​编辑

3、pom.xml

4、application文件


Spring Cloud Alibaba


注册中心-Nacos


Nacos下载以及安装

下载地址:https://github.com/alibaba/nacos/releases

选择版本可参考:

版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub

Nacos 1.4.X

Nacos 2.X用的是grpc

 找到对应版本点击下载、解压


Windows 环境演示:

 进入nacos目录,


单机启动

第一种方法:startup.cmd -m standalone 

第二种方法:修改启动脚本改为单机模式:

set MODE="standalone"   

PS: 单机版不需要配置mysql

 启动成功,访问路径:http://localhost:8848/nacos/#/login

默认用户名密码:nacos / nacos


 2、集群模式

1)创建数据库nacos

2)将conf目录下的nacos-mysql.sql导入到数据库中

 3)修改conf目录下,的application.properties

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&cOnnectTimeout=1000&socketTimeout=3000&autoRecOnnect=true&useUnicode=true&useSSL=false&serverTimezOne=UTC
db.user.0=root
db.password.0=root

4)修改配置文件名:cluster.conf.example 改为cluster.conf

#example
192.168.16.101:8848
192.168.16.102:8848

5)启动startup.cmd


Springboot服务搭建


一、新建微服务父项目


1、new project 选择maven


2、填写项目基本信息,完成parent项目初始化

 


 3、删除不需要的src文件夹


二、新建微服务


1、new module(可以选择Spring)


 2、填写微服务模块信息


3、pom.xml

4.0.0com.tmallproduct0.0.1-SNAPSHOTtmall-product-8020Demo project for Spring Boot

1.8

UTF-8

UTF-8Hoxton.SR92.2.6.RELEASE2.3.2.RELEASEorg.springframework.cloudspring-cloud-dependencies${spring.cloud.version}pomimportcom.alibaba.cloudspring-cloud-alibaba-dependencies${spring.cloud.alibaba.version}pomimportorg.springframework.bootspring-boot-dependencies${spring.boot.version}pomimportorg.springframework.bootspring-boot-starter-webcom.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery


org.apache.maven.pluginsmaven-compiler-plugin3.8.11.81.8UTF-8

org.springframework.bootspring-boot-maven-plugin2.3.2.RELEASEcom.tmall.product.TmallProduct8020Applicationrepackagerepackage

4、application文件

# 应用名称
server.port=8010
spring.application.name=tmall-member-8010
spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

5、启动服务


 6、nocas服务列表


Feign 的RPC调用

Spring Cloud openfeign 对Feign增强了

Feign的负载均衡是通过Ribbon实现的

Feign实战

例如:tmall-order微服务调用tmall-product

1、两个微服务pom.xml

org.springframework.cloudspring-cloud-starter-openfeign

2、两个微服务启动类上添加@EnableFeignClients

3、tmall-order新增openFeigh接口

@FeignClient(value="tmall-product",path = "/product")
public interface ProductFeignService {@RequestMapping("/queryProductDetailByOrderId/{orderId}")public String queryProductDetailByOrderId(@PathVariable("orderId") Long orderId);
}

4、tmall-order新增调用接口

@RestController
@RequestMapping("/order")
public class OrderController {public static Logger logger = LoggerFactory.getLogger(OrderController.class);@Autowiredprivate ProductFeignService productFeignService;@RequestMapping(value = "/queryOrderDetail" , method = RequestMethod.POST)public String queryOrderDetail(@RequestBody Map requestMap, HttpServletRequest request){logger.info("queryOrderDetail 入参:"+ JSONObject.toJSONString(requestMap));Long orderId = Long.valueOf(String.valueOf(requestMap.get("orderId"))) ;return productFeignService.queryProductDetailByOrderId(orderId);}
}

5、tmall-product新增对应接口

@RestController
@RequestMapping("/product")
public class ProductController {public static Logger logger = LoggerFactory.getLogger(ProductController.class);@RequestMapping(value = "/queryProductDetailByOrderId/{orderId}" , method = RequestMethod.GET)public String queryProductDetailByOrderId(@PathVariable("orderId") Long orderId, HttpServletRequest request){logger.info("queryOrderDetail 入参:"+ JSONObject.toJSONString(orderId));return "lalala i'm product";}
}

6、测试结果

 


Ribbon负载均衡

@LoadBalanced


 Ribbon相关接口


 IRule

最经常修改的是负载均衡策略,也可以自定义choose方法,自己写算法

默认是ZoneAvoidanceRule:默认负载均衡策略 

 pom.xml

因为spring-cloud-starter-alibaba-nacos-discovery会自动引入ribbon依赖所以不需要添加

 


推荐阅读
author-avatar
安仔小窝forever
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有