JAVA微服务部署
Springboot 和 SpringCloud
SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。
Spring Boot是整合了框架的框架,它让一切依赖都变得有序简单,你不用操心A.jar是什么版本,又依赖哪些版本的jar,它默认配置了很多框架的使用方式,就像 maven整合了所有的jar包,Spring Boot整合了所有的框架,第三方库的功能你拿着就能用。
Spring Cloud是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提供具体功能性的操作,更专注于服务之间的通讯、熔断、监控等。因此就需要很多的组件来支持一套功能。

docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard
# sentinel sentinel
docker run -d -p 8848:8848 --env MODE=standalone --name nacos nacos/nacos-server
# nacos nacos
# 分布式事务
docker run --name seata-server \
-p 8091:8091 \
-e SEATA_IP=192.168.80.80 \
-e SEATA_PORT=8091 \
seataio/seata-server
# sentinel
docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard
每个服务打成jar包 配置文件中写指定字符串 通过hosts进行解析 比如redis-server 192.168.80.80
PiggyMetrics 地址:https://github.com/sqshq/piggymetrics
分布式电商项目 地址:https://github.com/SiGuiyang/spring-cloud-shop
轻松阅读微服务项目 api:https://github.com/Zealon159/light-reading-cloud
SpringBlade 微服务开发平台 地址:https://gitee.com/smallc/SpringBlade
Cloud-Platform 地址:https://gitee.com/geek_qi/cloud-platform
互联网云快速开发框架 地址:https://gitee.com/JeeHuangBingGui/jeeSpringCloud
所有服务调用注册中心 通过注册中心 写入配置文件
将所有的配置文件写入数据库 nacos通过数据库获取数据
java -jar blade-gateway.jar --spring.profiles.active=dev --spring.cloud.nacos.config.server-addr=192.168.80.80:8848 --spring.cloud.nacos.discovery.server-addr=192.168.80.80:8848 --spring.cloud.sentinel.transport.dashboard=192.168.80.80:8858 --Xmx2048m --Xms2048m
部署规则 2台部署
81.144
- blade-admin
- blade-auth
- blade-desk
- blade-develop
- blade-log
- blade-report
- blade-resource
- blade-system
- blade-user
- blade-gateway
nohup java -jar blade-log.jar --spring.profiles.active=dev --spring.cloud.nacos.config.server-addr=192.168.80.80:8848 --spring.cloud.nacos.discovery.server-addr=192.168.80.80:8848 --spring.cloud.sentinel.transport.dashboard=192.168.80.80:8858 --Xmx2048m --Xms2048m &
nohup java -jar blade-report.jar --spring.profiles.active=dev --spring.cloud.nacos.config.server-addr=192.168.80.80:8848 --spring.cloud.nacos.discovery.server-addr=192.168.80.80:8848 --spring.cloud.sentinel.transport.dashboard=192.168.80.80:8858 --Xmx2048m --Xms2048m &
nohup java -jar blade-resource.jar --spring.profiles.active=dev --spring.cloud.nacos.config.server-addr=192.168.80.80:8848 --spring.cloud.nacos.discovery.server-addr=192.168.80.80:8848 --spring.cloud.sentinel.transport.dashboard=192.168.80.80:8858 --Xmx2048m --Xms2048m &
nohup java -jar blade-system.jar --spring.profiles.active=dev --spring.cloud.nacos.config.server-addr=192.168.80.80:8848 --spring.cloud.nacos.discovery.server-addr=192.168.80.80:8848 --spring.cloud.sentinel.transport.dashboard=192.168.80.80:8858 --Xmx2048m --Xms2048m &
nohup java -jar blade-user.jar --spring.profiles.active=dev --spring.cloud.nacos.config.server-addr=192.168.80.80:8848 --spring.cloud.nacos.discovery.server-addr=192.168.80.80:8848 --spring.cloud.sentinel.transport.dashboard=192.168.80.80:8858 --Xmx2048m --Xms2048m &
nohup java -jar blade-swagger.jar --spring.profiles.active=dev --spring.cloud.nacos.config.server-addr=192.168.80.80:8848 --spring.cloud.nacos.discovery.server-addr=192.168.80.80:8848 --spring.cloud.sentinel.transport.dashboard=192.168.80.80:8858 --Xmx2048m --Xms2048m &
容器化部署 docker-compose
设置环境变量
version: '3'
services:
blade-admin:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:admin1.0"
ports:
- 7002:7002
privileged: true
restart: always
blade-swagger:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:swagger1.0"
ports:
- 18000:18000
privileged: true
restart: always
blade-gateway1:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:gateway1.0"
ports:
- 80:80
privileged: true
restart: always
blade-auth1:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:auth1.0"
ports:
- 8010:8010
privileged: true
restart: always
blade-report:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:report1.0"
ports:
- 8108:8108
privileged: true
restart: always
blade-log:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:log1.0"
ports:
- 8103:8103
privileged: true
restart: always
blade-desk:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:desk1.0"
ports:
- 8105:8105
privileged: true
restart: always
blade-user:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:user1.0"
ports:
- 8102:8102
privileged: true
restart: always
blade-system:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:system1.0"
ports:
- 8106:8106
privileged: true
restart: always
blade-resource:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:resource1.0"
privileged: true
restart: always
blade-develop:
image: "registry.cn-shanghai.aliyuncs.com/sunzhe/blade:develop1.0"
ports:
- 7007:7007
privileged: true
restart: always
K8S部署
- 创建imagepull
kubectl create secret docker-registry aliyun-secret \
--docker-server=registry.cn-shanghai.aliyuncs.com \
--docker-username=hcmvnxnv \
--docker-password=Xa88215985 \
--docker-email=luxsun_chat@163.com
- 创建configmap
kubectl create configmap special-config --from-literal=special.nacos=192.168.80.80:8848 --from-literal=special.sentinel=192.168.80.80:8858
- 创建k8s配置文件
# -*- coding:utf-8 -*-
#
# File: c:\Users\developistrator\Desktop\SpringBlade-master\SpringBlade-master\blade-service\blade-user\blade-develop.yaml
# Project: c:\Users\developistrator\Desktop\SpringBlade-master\SpringBlade-master\blade-service\blade-user
# Created Date: 2021-08-02 4:53:24
# Author: sunzhe
# -----
# Last Modified: Mon Aug 02 2021
# Modified By: sunzhe
# -----
# Copyright (c) 2021 Weaver
# ------------------------------------
# Yaml will save your soul!
#
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: blade-develop
name: blade-develop
spec:
replicas: 3
selector:
matchLabels:
app.kubernetes.io/name: blade-develop
template:
metadata:
labels:
app.kubernetes.io/name: blade-develop
spec:
containers:
- image: registry.cn-shanghai.aliyuncs.com/sunzhe/blade:develop1.0
name: blade-develop
env:
- name: NACOS_SERVER_ADDR
valueFrom:
configMapKeyRef:
# The ConfigMap containing the value you want to assign to SPECIAL_LEVEL_KEY
name: special-config
# Specify the key associated with the value
key: special.nacos
- name: SENTINEL_DASHBOARD_ADDR
valueFrom:
configMapKeyRef:
# The ConfigMap containing the value you want to assign to SPECIAL_LEVEL_KEY
name: special-config
# Specify the key associated with the value
key: special.sentinel
ports:
- containerPort: 7007
imagePullSecrets:
- name: aliyun-secret
---
apiVersion: v1
kind: Service
metadata:
name: blade-develop
namespace: default
labels:
app: blade-develop
spec:
ports:
- port: 7007
targetPort: 7007
# nodePort: 7002
selector:
app: blade-develop
type: NodePort
参考资料: