c .net网站开发视频教程,修改wordpress文章发布时间,seo自学教程seo免费教程,短链短网址在线生成工具说明#xff1a;在微服务框架中#xff0c;各个服务之间都是独立的。理论上来说#xff0c;各个服务之间是可以直接通信的#xff0c;但实际上因为服务之间通信需要管理和规划#xff0c;如请求怎么负载均衡、请求怎么降级处理等等#xff0c;所以就需要使用一个技术在微服务框架中各个服务之间都是独立的。理论上来说各个服务之间是可以直接通信的但实际上因为服务之间通信需要管理和规划如请求怎么负载均衡、请求怎么降级处理等等所以就需要使用一个技术对这些服务做到统一管理称为注册中心Eureka、Nacos就是这类技术。 环境搭建
在center_module模块下创建两个子模块订单模块端口8081、用户模块端口8082两个模块之间没有联系现在需要查询订单根据订单中的用户ID查询该订单对应的用户信息。详细参考http://t.csdn.cn/gwnXI
订单服务配置文件application.properties
mybatis.configuration.map-underscore-to-camel-casetrue
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
spring.datasource.urljdbc:mysql://localhost:3306/db_spring_cloud
spring.datasource.usernameroot
spring.datasource.password123456# 设置端口号
server.port8081# 设置微服务名称
spring.application.nameorderservice用户服务配置文件application.properties
mybatis.configuration.map-underscore-to-camel-casetrue
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
spring.datasource.urljdbc:mysql://localhost:3306/db_spring_cloud
spring.datasource.usernameroot
spring.datasource.password123456# 设置端口号
server.port8082# 设置微服务名称
spring.application.nameuserservice# 关联eureka的地址
eureka.client.serviceUrl.defaultZonehttp://localhost:8083/eureka/Eureka
在微服务之上创建一个Eureka模块里面只有启动类、pom.xm文件、application配置文件不写业务代码
启动类需加EnableEurekaServer注解
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;SpringBootApplication
EnableEurekaServer
public class Start {public static void main(String[] args) {SpringApplication.run(Start.class, args);}
}pom.xml文件依赖 dependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactIdversion2.2.5.RELEASE/version/dependency/dependenciesapplication.yml配置文件
# 配置端口号
server.port8083# 如果当前Eureka服务器只有一台 写自己的地址即可
eureka.client.serviceUrl.defaultZonehttp://localhost:8083/eureka/# 配置Eureka不抓取自己的服务
eureka.client.fetch-registryfalse# 配置Eureka不注册自己
eureka.client.register-with-eurekafalse关联的订单服务、用户服务需要添加对应的依赖 !--添加eureka服务依赖--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency并在配置文件中关联注册中心
# 关联eureka的地址
eureka.client.serviceUrl.defaultZonehttp://localhost:8083/eureka/启动所有服务打开注册中心http://localhost:8083注意不要加eureka可以看到两个服务已经上线 此时就可以直接用对应的服务名对微服务发送请求 负载均衡策略参考http://t.csdn.cn/neb3n
Nacos
安装启动
可在官网https://nacos.io/zh-cn/提供的下载链接https://github.com/alibaba/nacos/releases中下载下载后解压到一个没有中文、没有数字的路径下。打开目录的bin文件夹在此目录下打开CMD输入startup.cmd -m standalone 命令启动Nacos这种方式为单级模式、非集群模式启动直接双击startup.exe为集群模式。 出现下面界面为启动成功 此时可以打开浏览器输入http://localhost:8848/nacos/进入nacos平台首次登录需要账号密码都是nacos。 使用
在订单服务、用户服务的pom.xml文件中添加nacos注册依赖 !--nacos配置管理依赖【注册】--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency订单服务配置application.yml
# 配置服务器端口
server:port: 8081# 1.spring配置
spring:# 1.1 配置数据库连接池datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/db_spring_cloudusername: rootpassword: 123456# 1.2 配置微服务名称application:name: orderservice# 1.3 配置Nacos注册中心地址cloud:nacos:discovery:server-add: localhost:8848# 2. feign配置
feign:# 微服务保护组件 熔断器hystrix:enabled: true# 3. mybatis配置
mybatis:configuration:map-underscore-to-camel-case: true用户服务配置application.yml
# 配置服务器端口
server:port: 8082# 1.spring配置
spring:# 1.1 配置数据库连接池datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/db_spring_cloudusername: rootpassword: 123456# 1.2 配置微服务名称application:name: userservice# 1.3 配置Nacos注册中心地址cloud:nacos:discovery:server-add: localhost:8848# 2. feign配置
feign:# 微服务保护组件 熔断器hystrix:enabled: true# 3. mybatis配置
mybatis:configuration:map-underscore-to-camel-case: true启动这两个服务打开nacos平台可以看到这两个服务 此时使用Feign技术可以使用服务名直接访问到其他服务 降级处理方案参考http://t.csdn.cn/BaYEe
总结
目前市面上微服务框架开发注册中心和微服务通信有这两套EurekaRibbon、NacosFeign因为都是阿里巴巴的称为alibaba springcloud一般后者使用较多。
而注册中心技术Eureka、Nacos在使用上的两点区别如下
1服务名 Eureka服务名称区分大小写 Nacos服务名称不区分大小写
2注册中心 Eureka需要另外创建一个模块 Nacos不需要另外创建模块但需要在配置的服务端另外添加一个依赖