SpringCloud技术栈
注册中心:eureka(闭源)、zookeeper、consul、nacos
服务调用:ribbon、loadBalancer、feign、openFeign
服务降级:hystrix、resilience4j、sentienl
服务网关:zuul(阻塞异步)、zuul2(未整合)、gateway(非阻塞异步)
服务配置:config、nacos
服务总线:bus、nacas
eureka虽然2.x版本闭源了,但是1.x版本依旧可以使用,下面列出eureka的常规配置,可根据自己的需要进行修改
1.1、添加eureka依赖客户端:
org.springframework.cloud spring-cloud-starter-netflix-eureka-client
服务端:
1.2、配置文件org.springframework.cloud spring-cloud-starter-netflix-eureka-server
服务端配置文件(application.yml):
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名字
client:
#表识不向注册中心注册自己
register-with-eureka: false
#表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置与eureka server交互的地址,查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7002.com:7002/eureka/
server:
#fasle: 表示eureka server7001关闭自我保护机制,保证不可用服务被及时踢除
enable-self-preservation: false
eviction-interval-timer-in-ms: 20000 #自我保护时间
客户端配置文件(application.yml):
server:
port: 8001
spring:
application:
name: cloud-payment-service
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db2020
username: root
password: root
eureka:
client:
register-with-eureka: true
fetchRegistry: true
service-url:
defaultZone: http://eureka7001.com:7001/eureka, http://eureka7002.com:7002/eureka
instance:
instance-id: payment8001 #主机名称
prefer-ip-address: true #访问信息有IP信息提示
#心跳检测与续约时间
#开发时没置小些,保证服务关闭后注册中心能及时剔除服务
#Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
lease-renewal-interval-in-seconds: 1
#Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务
lease-expiration-duration-in-seconds: 2
1.3、启动类配置
a)服务端启动类需要加上@EnableEurekaServer注解
b)客户端启动类需要加上@EnableEurekaClient注解
zookeeper是一个分布式协调工具,可以实现注册中心功能;
2.1、安装虚拟机及JDK(1)安装虚拟机(virtual box、VMware):略
(2)下载CentOS7镜像:略
(3)安装镜像:略
(4)安装JDK及配置环境变量:略
(5)下载zookeeper安装包
https://zookeeper.apache.org/releases.html
推荐阿里提供的镜像
地址:https://mirrors.aliyun.com/centos/
可供选择版本:(建议选【DVD】标准版本)
【DVD】标准版本
【Everything】集成所有软件版本
【LiveGNOME】GNOME桌面版本
【LiveKDE】KDE桌面版本
【Minimal】最小安装版本
【NetInstall】网络安装镜像版本
使用Xshell连接虚拟机(略)
开始安装:
(1)切换到/opt目录并上传zookeeper安装包
cd /opt #切换到opt目录 #将zookeeper安装上传到opt目录(直接将安装包拖入) ls #查看当前当前目录下的子目录或文件
(2)解压zookeeper安装包
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz ls #查看当前当前目录下的子目录或文件
(3)对解压后的文件(apache-zookeeper-3.6.3-bin)重命名
mv apache-zookeeper-3.6.3-bin zookeeper #重命名文件 ls #查看当前当前目录下的子目录或文件
(4)删除zookeeper压缩包
rm -rf apache-zookeeper-3.6.3-bin.tar.gz #删除文件 ls #查看当前当前目录下的子目录或文件
(5)创建zoo.cfg文件
cd zookeeper/conf #切换到zookeeper的配置文件目录下 cp zoo_sample.cfg zoo.cfg #创建zoo.cfg配置文件 ls #查看当前当前目录下的子目录或文件2.2.2、启动zookeeper
(1)切换到bin目录
cd /opt/zookeeper/bin #切换到zookeeper的bin目录 ls #查看当前当前目录下的子目录或文件
(2)查看zookeeper启动状态
./zkServer.sh status #查看状态 start:启动;stop:停止;status:运行状态
(3)启动zookeeper
./zkServer.sh start
(4)客户端连接测试
./zkCli.sh
若是连接不成功,看看是不是端口被占用
官方下载网址:https://www.consul.io/downloads
3.2、安装consul(1)构建consul目录
mkdir /opt/consul #创建目录consul cd /opt/consul #切换到consul目录 unzip #确认安装了unzip
(2)上传并解压consul安装包
unzip consul_1.10.2_linux_amd64.zip 解压安装包
关闭防火墙
systemctl stop firewalld
启动consul
./consul agent -dev -ui -node=consul-dev -client=192.168.179.131 #启动consul
访问: http://192.168.179.131:8500



